1、瀑布模型
严格把软件开发分为各阶段开展:分析、设计、开发、测试、部署。严格定义了各个阶段的输入和输出,下一阶段的开展依赖上一阶段的输出因此也较为重视文档的维护和规范。
优点
- 简单易理解
- 当前阶段完成后只需要关注下一阶段
- 为项目提供了按照阶段进行检查的节点
缺点
- 各阶段会输出大量文档,增加了工作量
- 项目按阶段线性进行开发,到后期才能看到整体成果,不利于快速预览、交付
- 不适应客户需求的快速变化
2、敏捷开发模型
将项目划分为不同的周期,进行增量式的迭代开发,强调迭代,每个迭代中也是一个完整的软件开发周期
优点
- 早期交付,降低成本,提高竞争力
- 降低开发风险,可以及时根据市场因素影响变动需求