第3章 软件需求与需求工程
什么是软件需求
需求的三个层次
- 业务需求|
业务需求是反映企业组织对软件系统的高层次目标要求,就是软件系统的建设目标 - 用户需求:值描述的时用户使用软件需要完成什么任务,怎么完成的需求,通常是在业务定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立用户角度的需求。用户需求是需求捕获的产物。
- 软件需求:用户需求具有零散、存在矛盾的特点,因此需求分析人员还需要对其分析、提炼、整理,从而生成知道开发的、更精确的软件需求。软件需求是需求分析与建模的产物。
需求的三种类型
- 功能需求,对于功能需求而言,最为关键的地方是如何对其进行组织,否则一句话、一句话地描述就是显得十分零散,而且很难保证开发人员注意满足这些需求
- 非功能需求,非功能需求最典型的两个问题:一个是信息传递的无效性,另一个是忽略了非功能需求的局部性
- 技术约束
优秀需求的标准:
- 完整性,就是使需求没有遗漏;也就是在需求变更中“新需求”所占的量不大,而且这些“新需求”都是因为外部环境的变化而产生的
- 不失真,需求的正确性和无歧义性是一组相关的要求,指的是确保需求在信息传递的过程中不知。加强需求的验证是关键手段;但是在做到需求验证时首先要认识到“验证是质量关”,尽可能多地暴露出问题才是关键。
- 优先级,想要更好地对项目进行管理,就需要有效地区分出优先级。
- 有技术早起介入
需求开发工作要点
- 需求获取,需求获取也称为需求捕获,它们都是主动动词
- 需求分析,需求分析是业务分析,需求分析的任务是对问题域进行研究,因此将从业务线索入手,而非系统结构;需求分析是一种提炼与整合活动,需要将用户的原始需求合并到雨雾活动中去,要将各个业务流程合并成全局业务流程图,要将每个业务时间相关的领域类图片面合并成全局领域类图,要将各个业务事件的用例图片断合并成全局的用例模型。
- 编写归约,是将需求分析结果文档化的过程。
- 需求验证
需求管理工作要点
- 统一、明确的需求项划分标准
a) 粒度均匀
b) 大小合适
c) 完整
- 引入基线管理
- 引入变更管理
- 引入需求跟踪
需求分析人员技能组成
- 需求分析人员的来源。需求分析人员的三大技能是夸文、理两大学科的。
- 各种能力培养的要点。
技能类型 |
培养要点 |
说明 |
业务能力 |
类比 |
例如,很多非销售型企业中也能找到“产、销、供”的线索 |
宏观思考 |
过于陷入细节就会影响宏观理解 |
|
技术能力 |
溯源 |
分析技术的发展历史,可以更好的了解其作用 |
优缺点 |
了解优缺点能够在正确的地方应用它 |
|
沟通能力 |
思维模式 |
通过改变思维模式、不断训练是可以提高的 |
总结:
本章中强调了需求的三种层次,说明了三种类型需求在整理时的要点,分析了优秀需求的标准,并且对需求工程中各项活动的关键问题予以了点评。