文档介绍:软件工程
第3章需求工程
漳州师范学院计算机科学与工程系软件工程课程
2
内容摘要
需求工程概述
需求获取
需求分析、协商与建模
需求规约与验证
需求管理
为什么要做需求分析?
在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,甚至直接关系到软件的成功与否。
例如,美国曾经在1995年开始对全国范围内的8 000多个软件项目进行跟踪调查。结果表明,有1/3的项目没能完成,而在完成的2/3的项目中,又有1/2的项目没有成功实施。他们仔细分析失败的原因后发现,与需求过程相关的占了45%,而其中缺乏最终用户的参与以及不完整的需求又是两大首要原因,各占13%和12%。
漳州师范学院计算机科学与工程系软件工程课程
3
漳州师范学院计算机科学与工程系软件工程课程
4
软件需求的重要性
需求分析可以帮助开发人员真正理解业务问题
需求分析是估算成本和进度的基础
需求分析可以避免建造错误的系统,从而减少不必要的浪费
软件规格说明有助于开发人员与客户在“系统应该做什么”问题上达成正式契约
软件需求是软件质量的基础,为系统验收测试提供了标准
需求分析形成了软件开发的基线,有助于管理软件的演化和变更
漳州师范学院计算机科学与工程系软件工程课程
5
需求工程:是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
需求开发过程
漳州师范学院计算机科学与工程系软件工程课程
6
需求获取:确定系统的需求;
需求分析与系统建模:开发、捕获和修订用户的需求;
需求规约:编写需求规格说明;
需求验证:分析需求规格的正确性和可行性。
需求管理:就是对需求开发过程的规划和控制。
漳州师范学院计算机科学与工程系软件工程课程
7
在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。
漳州师范学院计算机科学与工程系软件工程课程
8
内容摘要
需求工程概述
需求获取
需求分析、协商与建模
需求规约与验证
需求管理
漳州师范学院计算机科学与工程系软件工程课程
9
软件需求包括
功能需求
性能需求
用户或人的因素
环境需求
界面需求
文档需求
数据需求
资源使用需求
安全保密要求
可靠性需求
软件成本消耗与开发进度需求
其他非功能性要求
漳州师范学院计算机科学与工程系软件工程课程
10
需求获取方法与策略
建立顺畅的通信途径
访谈与调查
观察用户操作流程
组成联合小组
用况(Use Case)