一、需求问题的提出
只有用户真正了解他们自己的需要需求的好坏,需求的好坏直接关系软件的成功与否。
五个与需求相关的败因:
- 不完整的需求
- 缺乏用户参与
- 不切实际的用户期望
- 需求变更频繁
- 提供了不再需要的需求
二、 需求的定义
1.需求定义的一些基本原则
- 真正的“需求”实际上在人们的脑海中
- 定义问题而不是解决方案
- 定义系统而不是项目
- 区分正式和非正式部分
- 避免重复
- 保持每个需求定义的大小在合适的范围内是良好的做法。
2.优秀需求的特征
1.完整性 2.正确性 3.无歧义性 4.可行性 5.有优先级 6.必要性 7.可验证性
三、需求定义实践
1、问题分析
- 在问题定义上达成共识
- 分析问题背后的问题
- 确定相关人员与用户
- 定义解决方案的界限
- 确定加在解决方案上的约束
2、需求定义的要素
1、目标 2、范围 3、相关人员与用户 4、相关事实与假定
三、需求的层次与分类
1、需求的层次
- 业务需求
- 用户需求
- 功能需求
2、需求的分类
- 功能需求:定义了开发人员必须实现的软件功能,是的用户能完成他们的任务,从而满足业务需求
- 非功能需求:作为功能需求补充的非功能需求,它描述了系统展现给用户的行为和执行的操作外部界面的具体细节、性能及质量属性。
- 设计约束: 指对开发人员在软件产品设计和构造上的限制,产品必须遵从的标准、规范、合约。非技术因素的技术选项,预期的软硬件环境
四、需求在方案中的地位
1、软件生命周期
- 问题定义和可行性研究
- 制定开发计划
- 需求捕获
- 分析
- 设计
- 规范
- 实现
- 测试
- 部署
- 维护
2、需求与其他软件项目过程的关系
需求阶段在系统开发的整个生命周期处于最基础最重要的位置