软件的需求分析
对系统描述=>构建分析模型=>构建设计模型
概述
- 起始:客户和开发人员初步的交流和合作
- 导出:范围问题、理解问题、易变问题
- 精化:形成分析模型,信息域、功能域、行为域
- 协商:需求工程师通过协商调解冲突
- 规格说明:描述功能和性能,以及系统开发约束
- 确认:正式的技术评审机制
- 管理:在项目迚展中标示、控制和跟踪需求以及变更。
功能和非功能需求
- 功能需求:对外提供的服务,为人们能做些什么
- 非功能需求
- 过程需求:交付方式、实现方式、验收标准
- 产品需求:性能、可移植性、安全性、存储空间
- 外部需求 :互操作性、道德、法律、成本
需求的描述
要求
-
无二义性:使用自然语言描述避免二义性
-
完整性:不遗漏需求
-
正确性:正确的反应用户需求
-
可行性:技术、经济、操作可行性
-
必要性:不自作主张添加需求
-
可验证性:对非功能性的度量
划分优先级:对所有需求进行排序,制定执行计划
方法
- 自然语言
- 图形化符号
- 数据流图
- UML语言
- 实体关系图
- 数学描述
需求分析方法
域分析:对领域知识进行分析,构建域分析模型
结构化分析方法(SA)
- 数据流图(DFD图):功能建模
- 包括
- 外部项
- 加工
- 数据存储
- 数据流
- 分为
- 关联图(系统边界)
- =>TOP图(系统与外部实体的交互)
- =>第一层图(细化数据输入输出关系)
- 数据字典
- 外部项的定义描述
- 加工的定义描述:策略树(面向编程)、策略表方式(面向测试,因果图)
- 数据存储的定义描述
- 数据流的定义描述
- 数据元素的定义描述
- 包括
- 业务流图(TFD图):业务处理过程
- 实体关系图(ER图):数据建模
- 状态迁移图:行为建模
Comments NOTHING