文档介绍:第三章软件需求
本章学****内容
重视需求的作用
理解软件需求
需求的质量
重视需求的作用
“还真不能马虎这个胶囊”
需求驱动软件开发过程
通过对各种通用过程模型的了解,可以看出“需求定义与分析”是软件开发过程的“源头”,所有其他活动都必须服务于通过“软件需求”所定义的总体目标。
软件需求代表了项目开始阶段对目标产品的概念认识,作为其他开发活动的“信息输入源”,也是所有项目参与人员开展工作的“基础”。
软件需求
系统分析员
项目经理
维护人员
设计人员
测试人员
客户、用户
项目经理根据需求制定计划,估算工作量、进度、成本并安排资源。
设计人员根据需求理解“问题”并给出解决方案。
测试人员根据需求制定测试计划并设计测试用例和测试过程。
发布和维护人员根据需求编写使用手册、在线帮助等用户文档。制定培训计划和培训材料。
……
需求用来干什么
软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的“祸根”(Leffingwell 1997)
关于软件项目失败原因的调查统计
Factors %
1. plete Requirements %
2. Lack of User Involvement %
3. Lack of Resources %
4. Unrealistic Expectations %
5. Lack of Executive Support %
6. Changing Requirements & Specifications %
7. Lack of Planning %
8. Didn‘t Need It Any Longer %
9. Lack of IT Management %
10. Technology Illiteracy %
11. Others %
——Source: Standish Group 1995
理解软件需求
……
IEEE软件工程标准词汇表(1997)中定义需求为:
用户解决问题或达到目标所需的条件或权能(Capability)
系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。
一种反映前两项所描述的条件或权能的文档
需求的定义还是……
需求是“用户所需要的并能触发一个系统开发工作的说明”——Jones 1994
需求是“从系统外部能发现系统所应具有的可以满足于用户的特点、功能及属性等”。 ——需求分析专家Alan Davis 1993
需求关于必须实现什么的规格说明。它描述了系统的行为、特性或属性,也可以是在开发过程中对系统的约束。
——Sommerville 1997
需求是“想获得的东西”
尽管前面从作用、产品、系统等多个角度对软件需求作出了不一致的定义,但简单的说,“需求”就是对“想获得的东西”的说明。
要完整的理解软件需求,必须回答两个问题?
“谁”想获得?
想获得什么?