瀑布模型
特点
- 严格区分阶段,每个阶段因果关系紧密相连
- 只适合需求明确的项目
缺点 - 软件需求完整性、正确性难确定
- 严格串行化,很长时间才能看到结果
- 瀑布模型要求每个阶段一次性完全解决该阶段工作,这不现实。
原型模型
适合需求不明确的项目
原型模型两个阶段:
1、原型开发阶段
2、目标软件开发阶段
【抛弃型原型】与【演化型原型】
原型以及相关模型
优点
1.有助于启发和验证系统需求。
缺点
1.原型开发会忽略掉非功能性要求 ,如性能、安全性、可靠性等;
2.开发过程的快速更改意味着没有文档,唯一的设计描述是原型的代码,这不利于长期的维护。
适用范围
1.需求模糊。
2.开发人员对算法效率、操作系统的兼容性,人机交互形式等情况不明确。
V模型
V模型(V-model),瀑布模型的一个变体,强调在各个阶段进行测试和验证,以提升软件质量。
优缺点
V模型是瀑布模型的一种加强,可以提升软件质量,但也更消耗人力和时间。
迭代与增量
增量开发:增量开发是将整个系统划分为若干个功能模块或子系统,然后按照顺序逐步构建和交付。每个增量都是一个完整的、可运行的系统部分,能够独立地提供部分功能。随着项目的进行,不断地添加新的增量,逐步完善系统。典型的增量开发方法有原型法和螺旋法。优点包括有助于降低风险、提高客户满意度、更快地交付部分功能等。
迭代开发:迭代开发是将整个项目周期划分为若干个迭代周期,每个迭代周期都包含需求分析、设计、开发、测试和部署等阶段,但只完成部分功能或特性的开发。在每个迭代周期结束时,都会交付一个可用的软件版本,即使是最初的版本也具有基本的功能。然后,在接下来的迭代中逐步添加新的功能和改进。典型的迭代开发方法有敏捷开发和Scrum等。优点包括能够快速响应变化、更好地控制项目进度和质量、更频繁地与客户沟通等
螺旋模型
螺旋模型是一种风险驱动型的过程模型。采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。
以快速原型为基础+瀑布模型
考虑了风险问题
优点
实现风险管理,降低变更风险
确定一系列里程碑,确保利益相关者都能支持。
缺点
很难说服客户以合同形式合作。
依赖大量风险评估专家及风险评估工作。
适用范围
开发大型系统和软件。
预期存在较大风险的项目。
构建组装模型
【优点】易扩展、易重用、降低成本、安排任务更灵活。
【缺点】构件设计要求经验丰富的架构师、设计不好的构件难重用、强调重用可能牺牲其它指标(如性能)第三方构件质量难控制。
【示例】
方舱医院
乐高积木