第17章.需求管理PPT课件下载推荐.ppt
《第17章.需求管理PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《第17章.需求管理PPT课件下载推荐.ppt(34页珍藏版)》请在冰豆网上搜索。
n控制迭代式开发中的变化;
n辅助项目管理1.需求管理活动主要内容1.需求管理2.需求基线3.需求跟踪4.需求变更控制5.需求管理的实践调查2.需求基线n已经通过正式评审和批准的规格说明或产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制过程才能修改它n是被明确和固定下来的需求集合,是项目团队需要在某一特定产品版本中实现的特征和需求集合2.需求基线描述内容n标识符(ID),为后续的项目工作提供一个共同的交流参照。
n当前版本号(Version),保证项目的各项工作都建立在最新的一致需求基础之上。
n源头(Source),在需要进一步深入理解或者改变需求时,可以回溯到需求的源头。
n理由(Rational),提供需求产生的背景知识。
n优先级(Priority),后续的项目工作可以参照优先级进行安排和调度。
n状态(Status),交流和具体需求相关的项目工作状况。
n成本、工作量、风险、可变性(Cost、Effort、Risk、Volatility),为需求的设计和实现提供参考信息,驱动设计和实现工作。
n需求创建的日期;
n和需求相关的项目工作人员,包括需求的作者、设计者、实现者、测试者等;
n需求涉及的子系统;
n需求涉及的产品版本号;
n需求的验收和验证标准;
n2.需求基线维护活动:
配置管理n标识配置项q递增数值,例如1,2,x;
q层次式数值编码,例如1.1.1,1.2.1,x.y.z;
q层次式命名编码,例如Order.Place.Date,Order.Place.Register,Task.Step.Substepn版本控制q每一条单独的需求需要进行版本控制q相关的需求文档也需要进行版本控制n变更控制n访问审计q记录和审计访问的情况n状态报告q反映需求基线的成熟度(变化的幅度越大,成熟度越低)、稳定性(改变的次数越多,稳定性越差)等2.需求基线维护活动:
状态维护状态定义已提议(Proposed)该需求已被有相应权限的人提出已批准(Approved)该需求已经被分析,它对项目的影响已进行了估计,并且已经被分配到某一特定版本的基线中。
关键涉众已同意包含这一需求,软件开发团队已承诺实现这一需求已实现(Implemented)实现这一需求的系统组件已经完成了设计和实现。
这一需求已经被跟踪到相关的设计元素和实现元素已验证(Verified)已在集成产品中确认了这一需求的功能实现是正确的。
这一需求已经被跟踪到相关的测试用例。
这一需求目前可以被认为是已完成了已删除(Deleted)已批准的需求又从需求基线中取消了。
要解释清楚为什么要删除这一需求,以及是谁决定删除的已否决(Rejected)需求已被提议,但并不在下一版本中实现它。
要解释清楚为什么要否决这一需求,以及是谁决定否决的主要内容1.需求管理2.需求基线3.需求跟踪4.需求变更控制5.需求管理的实践调查3.需求跟踪n避免在开发过程或者演化过程中与需求基线不一致或者偏离的风险n前向跟踪是指被定义到软件需求规格说明文档之前的需求演化过程q向前跟踪到需求:
说明涉众的需要和目标产生了哪些软件需求q从需求向后回溯:
说明软件需求来源于哪些涉众的需要和目标n后向跟踪是指被定义到软件需求规格说明文档之后的需求演化过程q从需求向前跟踪:
说明软件需求是如何被后续的开发物件支持和实现的q回溯到需求的跟踪:
说明各种系统开发的物件是因为什么原因(软件需求)而被开发出来的3.需求跟踪用途
(1)n需求的后向跟踪可以帮助项目管理者:
q评估需求变更的影响;
q尽早发现需求之间的冲突,避免未预料的产品延期;
q可以收集没有被实现的需求,并估算这些需求需要的工作量;
q发现可以复用的已有组件,从而降低新系统开发的时间和精力;
q明确需求的实现进度,跟踪项目的状态。
n需求的后向跟踪可以帮助客户和用户:
q评价针对用户需求的产品的质量;
q可以确认成本上没有(昂贵的)镀金浪费;
q确认验收测试的有效性;
q确信开发者的关注点始终保持在需求的实现上。
3.需求跟踪用途
(2)n需求跟踪中针对具体需求的设计方案选择、设计假设条件以及设计结果等信息可以帮助设计人员:
q验证设计方案正确的满足了需求;
q评估需求变更对设计的影响;
q在设计完成很久之后仍然可以理解设计的原始思路;
q评估技术变化带来的影响;
q实现系统组件的复用;
n需求跟踪信息还可以帮助维护人员:
q评估某一个需求变化时对其他需求的影响;
q评估需求变化时对实现的影响;
q评估未变化需求对实现变更的允许度。
3.需求跟踪内容n最低层次:
低端用户q捕获各个系统组件之间的关系n更高层次:
高端用户q捕获组件之间的联系q捕捉各个组件的工作背景n例如实现的理由、实现方案的选择、实现技术的假设、决策依据、变化历程等等n最高层次:
高端用户q捕获更高层次信息q捕获项目的组织过程n例如负责人、时间安排、资源消耗、最终成果等3.需求跟踪实现方法n矩阵、实体关系模型和交叉引用用户需求功能性需求设计组件实现组件测试用例UC-28Catalog.query.sortClasscatalogCatalog.sort()Search.7Search.8UC-29Catalog.query.importClasscatalogCatalog.import()Catalog.validate()Search.12Search.13Search.143.需求跟踪建立过程n明确需求跟踪需要解决的问题n说明需求跟踪过程的目标n明确需要捕获的跟踪联系n组织提供资源支持和技术支持n制定有效的过程策略n便利需求跟踪信息的使用3.需求跟踪需求依赖n大多数的需求并不是完全独立的,它们在一种复杂的机制中互相影响n需求依赖联系的特殊性并不在于它的重要性,而在于它是难以发现、建立和维护的n需求交互作用管理q用于发现、管理和部署(disposition)需求之间关键联系的活动依赖R1R2R3R4R5R6R1*R2*R3*R4*R5*R6主要内容1.需求管理2.需求基线3.需求跟踪4.需求变更控制5.需求管理的实践调查4.需求变更控制需求变化n需求的变化是正当和不可避免的q问题发生了改变q环境发生了改变q需求基线存在缺陷q用户变动q用户对软件的认识变化q相关产品的出现4.需求变更控制变更控制过程n以可控、一致的方式进行需求基线中需求的变更处理,包括对变化的评估、协调、批准或拒绝、实现和验证4.需求变更控制变更控制过程4.需求变更控制变更控制委员会n变更控制委员会(CCB)q评价需求的变更,做出批准或者拒绝变化的确定,并确保已批准变化的实现q变更控制委员会可能由来自下列部门的人员组成n项目或程序管理部门;
n产品管理或者需求分析部门;
n开发部门;
n测试或者质量保障部门;
n市场或客户代表;
n编写用户文档的部门;
n技术支持或帮助部门;
n配置管理部门。
4.需求变更控制注意事项
(1)n认识到变更的必要性,并为之制定计划q定义明确的变更控制过程,建立变更控制的有效渠道q所有提交的需求变更请求都要进行仔细的评估q是否进行变更的决定应该由变更控制委员会统一做出q必须对变更的实现结果进行验证q需求的变化情况要及时的通知到所有会受到影响的项目涉众4.需求变更控制注意事项
(2)n维护需求基线,审计变更记录n管理范围蔓延q根据业务目标、产品前景和项目范围,评估每一项提议的新增需求和特性n灵活应对变更请求q推迟产品的交付时间。
q要求增派人手:
在有限的情况下有效q要求员工加班工作:
只能适度的使用。
q推迟或者去除尚未实现的优先级较低的需求q容许产品质量的降低:
尽量不使用4.需求变更控制注意事项(3)n使用辅助工具q工具应该具有以下几个特性,以支持需求变更过程:
n可用定义变更请求中的数据项。
n可用辅助项目涉众完成变更控制过程中的协作。
n可以帮助维护需求基线,审计变更记录。
n能够将变更情况及时的通知到相关人员。
n可以生成标准的和定制的报告和图表。
主要内容1.需求管理2.需求基线3.需求跟踪4.需求变更控制5.需求管理的实践调查5.需求管理的实践调查需求的变更n有效处理变更非常重要n新增(Added)需求影响最大n缺陷修复最为频繁n范围蔓延常见n需求可变性很高n变更控制还需要继续完善5.需求管理的实践调查需求跟踪n重视和关注了对后向跟踪联系的处理n忽视了对前向跟踪联系的处理n最低层次需求跟踪策略存在广泛n高端用户的需求跟踪实现仍需努力n需求之间的依赖关系困难和复杂q只有大概20的需求是完全独立的q20左右的需求产生了所有依赖关系的75。
5.需求管理的实践调查需求管理工具n非常需要需求管理工具n通用的文本处理器(WordProcessor)和电子表格(Spreadsheet)使用最为广泛n部分组织自己开发了专用需求管理工具n很少有组织使用专用的商业需求管理工具q无法和软件的开发过程以及其他辅助工具进行有效的集成实例分析n经常出现一个模块的需求刚刚整理完毕或者程序编写了一半,业务已经发生变化的情况。
在一年的开发过程中,我们陆续接到的业务变更行政命令多达几十条,这给整个软件开发和推广都带来了很大困惑。
为了保证软件正常运行,省局信息中心不得不专门成立了软件推广维护小组,不断就新业务改写程序,各地也不得不在后续的过程中不停的从省局下载新的升级包,这件事情已经经历了很多年,大家都已经习惯了。
本章小结n需求管理是发生在需求开发之后的需求工程活动,贯穿于余下的产品生命周期,用于确保需求作业的有效实现n需求管理是一项重要的活动,包括维护需求基线、需求跟踪和需求变更控制n实践调查表明需求管理工作仍然有待人们的努力思考题n如何有效的处理需求的变化是很多现代软件开发技术的主题,对此现象你有什么看法?
结合本章内容,你将怎样做以控制一个需求多变的项目?