一.过程模型
瀑布模型
指导思想:清楚地区分逻辑设计和物理设计,尽可能推迟程序的物理实现。
适用范围:瀑布模型适用于需求相对稳定、项目规模较小、实现简单且易于控制的项目。
特点:
- 阶段间具有顺序性和依赖性
- 推迟实现的观点
- 质量保证的观点
优点:
- 可强迫开发人员采用规定的方法
- 规定了每个阶段必须提交的文档
- 每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
缺点:在可运行的产品交付给用户之前,用户只能通过文档来了解未来产品是怎样的,因此最终开发岀来的软件可能不能满足用户需求。
快速原型模型
快速模型是快速建立起来的可以在计算机上运行的程序,它所完成的功能往往是最终产品能完成的功能的一个子集。
适用范围:需求不明确或不断变化的项目。
优点:
- 有助于保证用户的需求得到满足
- 软件产品的开发基本上是线性顺序进行的。
增量模型
增量模型也称为渐增模型,是把软件产品作为一系列的增量构件来设计、编码、集成和测试。
优点:
- 能在较短的时间内向用户提交可完成部分工作的产品
- 可以使用户有充裕的时间学习和适应新产品,减少一个全新的软件可能给客户组织带来的冲击
遵守的约束条件:
当把新构件集成到现有的软件中时,所形成的产品必须是可测试的。
增量模型的困难:
在把每个新的增量构件集成到现有软件中时,必须不破坏原来已经开发出的产品。
螺旋模型
基本思想:使用原型及其他方法来尽量降低风险。
适用范围:螺旋模型适用于大型、复杂、高风险的软件开发项目。
优点:
- 有利于已有的软件重用。
- 有利于把软件质量作为软件开发的重要的目标之一。
- 减少了测试不足或测试过多带来的风险。
- 软件开发和维护没有本质区别。
缺点:要求开发人员要有丰富的风险评估知识和经验。
喷泉模型
喷泉模型,是典型的面向对象的软件过程模型之一。
体现了面向对象软件开发过程迭代和无缝的特性。
优点:
- 提高开发效率
- 适合面向对象开发
- 灵活性