软件生存周期
计算机系统工程,需求分析,设计,编码,测试,运行和维护
瀑布模型
瀑布模型就像名字一样,一层接一层,上一层的输出作为后一层的输入,直到测试完成才能看到真正可运行的软件,需求是不确定的,瀑布模型在需求变动时修改软件的代价是巨大的
演化模型
增量模型
第一个增量通常是核心的产品,包含了最终产品的基本需求,以及虽然已确定但非核心的需求,以后的增量中慢慢加入不确定的需求。适合的场景:
- 需求经常发生变化
- 市场急需而开发人员和资金都不足以在时限内完成目标
- 还能有计划的管理技术风险
原型(prototype)模型
工程师与客户交流,定义软件的总体目标、标识需求,快速制定计划并构建原型,交给用户使用并收集反馈意见,这些反馈意见可以在下一轮迭代中对原型进行改进
- 探索型:弄清目标系统的要求
- 实验型:验证方案或算法的合理性
- 演化型:将原型作为目标系统的一部分
螺旋模型(增加了风险分析)
- 制定计划
- 风险分析
- 工程实施
- 客户评估
沿着螺旋线旋转,每旋转一圈,表示开发出一个更为完善的新软件版本。如果发现风险太大,开发者和客户无法承受,项目就有可能因此而终止