软件工程第二章——软件生命周期
前言
视频地址:中国大学MOOC搜索软件工程(电子科技大学)
https://www.bilibili.com/video/BV1YZ4y1x7LX?p=1
生命周期组成(顺序)
- 问题定义
- 可行性研究
- 需求分析
- 总体设计
- 详细设计
- 编码
- 测试
- 维护
对应文档
- 项目计划报告
- 可行性研究报告
- 需求规格说明书
- 总体设计说明书
- 详细设计说明书
- 源程序
- 软件测试报告
- 软件维护说明
软件过程
软件过程是在工作产品构建过程中,所需完成的工作活动、动作和任务的集合。
活动
活动主要实现宽泛的目标,与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。
动作
动作包含了主要工作产品生产过程中的一系列任务。
任务
任务关注小而明确的目标,能够产生实际产品。
软件过程模型
或称:软件开发模型,软件生存周期模型,软件工程范型
是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略
CMM能力成熟度模型
瀑布模型
1970年提出,规定了各项软件工程活动,以及它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落
是一种线性模型
下层依赖上层
具有阶段间顺序性和依赖性
有推迟实现的观点
是一种使用广泛,以文档为驱动的模型
每个阶段都有与其相关联的里程碑和可交付产品
每个阶段结束前完成文档审查,及早改正错误
在实际应用时应该使用带反馈的瀑布模型
即后一阶段发现前一阶段的错误需要向上反馈修改返回
适用场合:
用于系统需求明确且稳定、技术成熟、工程管理较严格的场合
瀑布模型的缺点
- 增加工作量
- 开发风险大
- 早期错误发现晚
- 不适应需求变化
V模型(瀑布模型的变种)
原型模型
先部分开发产品,使客户和开发人员能够对计划开发的系统的相关方面进行检查。
目的:
- 明确并完善需求,如演示原型
- 研究技术选择方案,如技术验证原型