需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答"系统必须做什么?"这个问题。
虽然在可行性研究阶段已经粗略地了解了用户的需求,甚至还提出了一些可行的方案,但是,可行性研究的基本目的是用较小的成本在较短的时间内确定是否存在可行的解法,因此许多细节被忽略。然而在最终的系统中却不能遗漏任何一个微小的细节,也就是对目标系统提出完整、准确、清晰、具体的要求。
通常对软件系统有下述几方面的综合要求:
1.功能需求
2.性能需求
3.可靠性和可用性需求
4.出错处理需求
5.接口需求
6.约束
7.逆向需求
8.将来可能提出的要求
与用户沟通获取需求的方法
1.访谈
通过正式和非正式的访谈
2.面向数据流自顶向下求精
3.简易的应用规格说明技术
4.快速建立软件原型
需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。
验证软件需求
从4个方面进行验证
1.一致性
2.完整性
3.现实性
4.有效性