导入:需求分析
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。
在需求分析阶段,需要确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。
需求:正在构建的系统必须符合的事务。
需求管理:是一种获取、组织并记录系统需求的系统化方案以及一个使客户与项目团队不断变更的系统需求达成并保持一致的过程。
传统需求分析:强调需求的记录,以一成不变的观点对待需求,不重视需求实现与维护。
现代需求过程:包括需求的获取、分析、处理、验证、实现和全过程的需求管理。需求管理覆盖软件工程的整个过程。
传统与现代需求方法的比较:
![6A8{4$5TR16F])3%}URU}Z0.png](https://p.ananas.chaoxing.com/star3/origin/1306595b41d64a991a1d4f82e73b2386.png)
需求管理存在的问题:
范围问题:系统目标、边界未被良好定义,用户和开发团队理解不一致。
理解问题:用户不能完全了解自己需要什么,对系统能力、局限更加不清楚;工程师不理解用户的问题域和应用环境。
易变问题:需求随时间发生变化。
需求工程:
20世纪80年代中期,形成了软件工程的子领域——需求工程。
进入20世纪90年代后,需求工程称为软件界研究的重点之一。
Alan Davis 把需求工程定义为“直到(但不包括)把软件分解为实际架构构件之前的所有活动”。
需求工程的阶段划分:

需求分析的任务
1、确定对系统的综合要求
(1)功能需求
(2)性能需求
(3)可靠性和可用性需求
(4)出错处理需求
(5)接口需求
(6)约束
(7)逆向需求
(8)将来可能提出的要求
2、分析系统的数据要求
(1)建立数据模型——ER图
(2)描绘数据结构——层次方框图和Warnier图
(3)数据结构规范化
3、导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
4、修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。

