软件需求分析的任务(借助当前系统的逻辑模型推导出目标系统的逻辑模型)
深入描述软件的功能和性能
确定软件设计的约束和接口,同其它系统元素的接口细节
定义软件的其它有效性需求
需求分析的过程
(1)问题识别
软件的需求包括
功能需求 ,资源使用需求,性能需求,成本消耗需求,环境需求,开发进度需求,可靠性需求,预先估计以后系统可能达到的目标,安全保密要求,用户界面需求
(2)分析与综合
从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系,接口特性和设计上的约束,分析他们是否满足功能要求,是否合理
常用的分析方法
面向数据流的结构化分析方法(SA)
面向数据结构的Jackson方法(JSD)
结构化数据系统开发方法(DSSD)
面向对象的分析方法(OOA)
(3)编制需求分析阶段的文档
软件需求说明书
数据要求说明
初步的用户手册
修改,完善与确定软件开发实施计划
(4)需求分析的评审
系统定义的目标是否与用户的要求一致
系统需求分析阶段提供的文档资料是否齐全
文档中所有描述是否完整,清晰,准却反应用户的要求
与所有其他系统成分的重要接口是否都已经描述
(5)需求分析的流程(DFD图)
(6)软件需求分析的原则
需要能够表达和理解问题的信息域和动能域
要能以层次化的方式对问题进行分解和不断细化
在开始建立分析模型前先理解问题
开发原型,使得用户能够了解将如何发生人机交互
记录每个需求的起源以及原因
使用多个需求视图
给需求赋予优先级
努力删除含糊性
分解法
(7)软件需求规格说明的原则
从现实中分离功能,即描述要“做什么”而不是“怎样实现”
要求使用面向处理的规格说明语言(或称系统定义语言)