1.1问题的提出
需求的好坏直接关系到软件的成功与否。
客户提出的需求是软件系统的来源,他定义了软件系统的意图和目的。
为了得到有效的需求,需要采用的有效的方法与用户的交流是很重要的。
1.2不同项目的需求视图
不同项目的需求在有着根本上的差异,不同的产品需要从不同的角度进行需求的获取。
1.3需求的定义
1需求的定义:从用户需求出发,挖掘用户的真正目标,并转化为产品需求的过程。
2需求定义的基本原则:
需求是所有项目风险承担着在描述需求的那些名词的理解上务必达成的共识。
定义问题而不是解决方案。
定义系统而不是定义项目。
区分正式和非正式部分。
避免重置。
保持每个需求定义的大小在合适的范围内是良好的做法。
3.优秀需求的特性:
完整性。
真确性。
无歧义性。
可行性。
有优先级。
必要性。
可验证性。
1.4需求定义的实践
1.需求定义的任务概述:
问题与机会。需求定义应该从内部寻根和外部溯源同时进行,大体分为找到目标,发现问题,列出可选方案,选出合适方案4个步骤。
2.问题分析的五步法:
1)在问题定义上达成共识。
2)分析问题背后的问题。
3)确定相关人员和用户。
4)定义解决方案的界限。
5)确定加载解决方案上的约束。
3.需求定义的要素:
问题定义的要素包括:目标,范围,相关人员与用户,相关事实与假定。
4.需求定义的范围:是通过程序分解结构给出,“清晰第一,效率第二”是当前软件开发的特点。合理的功能分解可以极大提升软件开发的效率。
1.5需求的层次和分类
1.层次:业务需求,用户需求,功能需求。
2.分类:功能需求,非功能需求,设计约束。
1.6需求在总体方案中的位置
1.软件的生命周期
1.问题定义和可行性研究
2.制定开发计划
3.需求捕获
4.分析
5.设计
6.规范
7.实现
8.测试
9.部署
10.维护
2.需求与其他软件项目过程的关系
需求阶段是系统开发的整个生命周期中最基础的、最重要的部分。需求分析是联系其他软件项目过程的枢纽。