1.边做边改模型(Build and Fix Model)
当一个软件产品在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到他们得到正确稳定的产品。这种开发模型就是边做边改模型。
开发者们首先开发出一个产品的最初版本给客户验收,然后开发团队开发一个新的版本再次给客户验收。这个过程一直持续到客户感觉产品满意为止。
优点:
1)边做边改模型的优点就是适用于某些中小型项目的快速开发
2)软件产品的成果也会在最早的阶段显现出来
缺点:
1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改
2) 忽略需求环节,给软件开发带来很大的风险
3) 没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难
适用范围:
对于需求非常简单和容易明白,软件期望的功能行为容易定义,实现的成功或失败容易检验的工程可以使用这种模型。
2.瀑布模型(Waterfall Model)
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采 用结构化的分析与设计方法将逻辑实现与物理实现分开。将 软件生命周期 划分为制定计划、 需求分析 、 软件设计 、程序编写、 软件测试 和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
优点:
1)为项目提供了按阶段划分的检查点
2)当前一阶段完成后,您只需要去关注后续阶段
3)可在迭代模型中应用瀑布模型
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导
缺点:
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段
4)瀑布模型的突出缺点是不适应用户需求的变化
试用范围:
对很多类型的项目而言依然是有效的,如果正确使用,可以节省大量的时间和金钱
3.喷泉模型(fountain model)
是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
优点:
1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
2.可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺点:
1.各个开发阶段是重叠的,需要大量的开发人员,不利于项目的管理。
2.要求严格管理文档,使得审核的难度加大。
4.快速原型开发(Rapid Prototyping Model)
快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
优点:
1.克服瀑布模型的缺点。
2.减少由于软件需求不明确带来的开发风险。
缺点:
1.所选用的开发技术和工具不一定符合主流的发展
2.快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
适用范围:
这种模型适合预先不能确切定义需求的软件系统的开发。