需求分析
需求分析
- 是否成功关键因素
- 帮助开发理解业务。
- 估算成本和进度
- 避免错误,减少浪费
- 规格说明:开发与客户在“系统应该做什么”上达成契约。
- 管理软件演化和变更。
- 质量基础,验收标准。
综合需求
- 功能需求
- 性能需求
- 可靠性,可用性需求
- 异常处理
- 接口需求
- 约束
- 逆向
- 未来需求
数据要求
逻辑模型
开发计划
业务需求:
- 软件开发出来是为谁服务?
- 目标客户是谁?
- 产品属于哪类业务范畴?
- 产品区别于其他竞争产品的特性是什么?
用户需求:
用户能做什么?
分析建模
模型:抽象事物理解,无歧义的书面描述
三种模型:数据模型(E-R),功能模型(DFD),行为模型(状态)
数据模型:描述信息的数据域(E-R图)
实体
属性
联系1:1 1:M M:N
例题:
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
功能模型:定义软件要完成的功能(DFD图)
行为模型:外部事件导致的软件行为(状态转换图)
其他工具:
层次方框图:树形结构的一系列矩形框,描述数据层次结构
层次越多,越详细
例:
Warnier图:树形结构描述信息层次
表明信息逻辑组织,出现条件以及重复出现
IPO图:输出/处理/输出
描述数据,数据处理,输出数据之间的关系
软件需求验证
- 一致性: 需求不能相互矛盾 ->自然语言,形式化语言,软件工具
- 完整性: 规格说明包含用户需要的所有功能和性能 -.软件原型
- 现实性: 必须可实现 ->开发经验
- 有效性: 确保可以解决用户问题 ->软件原型
需求分析的软件工具:
PSL/PSA(问题陈述语言/问题陈述分析程序)系统