为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深人理解是软件开发工作获得成功的前提条件。
任务
确定对系统的综合要求
- 功能需求 系统必须提供的服务
- 性能需求 系统必须满足的定时/容量约束,速度、主存/磁盘容量、安全性等
- 可靠性和可用性需求 可靠性:给定时间段内,系统成功运行的概率。可用性:给定时间点内,系统成功运行的概率。量化了用户可以使用系统的程度
- 出错处理需求
- 接口需求 描述应用系统与它的环境通信的格式
- 约束 设计约束和实际约束 在过程中应遵循的限制条件 精度、工具或语言约束
- 逆向需求 说明系统不应该做什么 确定系统的边界
- 将来可能提出的需求 维护
分析系统的数据要求
构建数据库/数据要求
导出系统的逻辑模型
修正系统开发计划
与用户沟通获取需求的方法
访谈
- 正式 事先准备问题
非正式 开放性问题
发放调查表,书面回答比起口头表达更加准确
情景分析技术 给出具体情景
面向数据流自顶向下求精
结构化分析方法(SA)
面向数据流自顶向下逐步求精进行需求分析的方法
通过功能分解完成数据流图的细化
简易的规格说明技术
前两种用户比较被动
快速建立软件原型
- 快速
- 容易修改
分析建模与规格说明
分析建模
- 数据模型 ER
- 功能模型 DFD
- 行为模型 状态图
软件需求规格说明
软件需求规格说明书,需求阶段得出的最主要的文档
验证软件需求
- 一致性 复查软件规格说明书
- 完整性
- 现实性
- 有效性