软件危机
- 成本高
- 进度拖延
- 质量不满足需求
软件工程->工业化产品
- 预期时间
- 预期成本
- 满足要求
软件过程模型
- 瀑布模型——需求明确、工业化的系统——嵌入式系统
- 原型模型——需求不明确——交互式系统
- 增量模型——要求快速发表、需求变化
需求分析 | 设计 | 实现 | 测试 | 管理 | |
目标 | 功能需求 非功能需求 数据需求 | 结构设计 接口设计 数据库设计 算法设计 界面设计 | 易维护代码 | 尽可能找出程序中的错误 | 成本 进度 人员 质量 风险 |
方法 | 面向对象分析OOA 结构化分析SA | 面向对象设计OOD 结构化设计SD | 规范 | 静态 动态:黑盒(功能性测试)、白盒(结构测试) | COCOMO-成本 PERT-进度 选择因素-人员 定性-质量 |
模型 | 三层DFD 用例图 活动图UML | SD-SC图 顺序图 类图 | 等价分类法 路径测试法 |
计划时期:问题定义+需求分析
问题定义的内容
- 问题的背景,为什么要开发、是否具备开发条件
- 提出开发系统额问题要求以及总体要求
- 明确问题的性质、类型和范围
- 明确代开发系统要实现的目标、功能和规模
- 提出开发的条件要求和环境要求
三、软件需求分析