软件开发过程模型是为了获得高质量的软件系统所需完成的一系列任务框架,它规定了完成各项任务的工作步骤。通常使用生命周期模型简洁的描述软件过程,生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
1、瀑布式模型
瀑布式开发模型是最早的、依据软件生命周期而提出的软件开发模型,特点有很多,阶段间具有顺序写和依赖性,各阶段必须完成规定的文档,从而在审查文档的基础上保证软件的质量,瀑布式模型只是提供了一个完成软件开发和维护任务的指导性框架,缺乏具体的实施方法和技术,它也并非以线性的方式进行,因为在实际的开发中还存在着反反复复。
2、快速原型模型
快速原型模型是针对瀑布模型存在的不足而提出的改进模型。快速原型是在完成最终可运行软件系统之前快速建立实验性的、可在计算机上运行的程序,然后给予评价的过程。快速原型模型的基本思想是快速建立一个实现了若干功能的可运行模型来启发、揭示和不断完善用户需求。采用快速原型模型开发的软件产品基本是线性顺序进行的。
3、增量模型
增量模型的基本思想是从核心功能开始,通过不断的改进和扩充从而获得所需软件系统。采用快速原型模型和瀑布式模型开发软件时,目标是一次就把满足所有需求的产品提交给用户,而增量模型恰恰相反,它分批地逐步向用户提交产品。采用这种方法开发软件,不同的构件将并行地构建,有可能加快工程进度,但是将冒构件无法集成到一起的风险。
4、螺旋式模型
螺旋式模型的基本思想是,使用原型及其它方法来尽量降低风险。它将瀑布模型和快速原型模型结合在一起,加上风险分析。理解这种模型最简便的方法是把它看作在每个阶段之前都增加风险分析。螺旋模型适用于内部开发的大规模软件项目。
5、喷泉模型
迭代是软件开发过程中普遍存在的一种内在属性,在面向对象范型中比结构化范型中更常见。面向对象作为一种软件开发方法已经广泛应用于许多领域。所谓面向对象就是应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念,对问题进行分析和求解的软件开发技术。因此,整个开发过程都是吻合一致的,自然很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。喷泉模型是典型的面向对象的软件过程模型之一。为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程作为目标,也应记住,面向对象范型本身要求经常对开发活动进行迭代或求精。