一、瀑布式开发
瀑布式开发是一种相对传统的计算机软件开发方法,1970年,著名的“瀑布模型”由Winston Royce明确提出,一直到八十年代还被人们广泛采用。
瀑布模型将软件的生命周期划分为六个阶段:制定计划、需求分析、软件设计、程序编写、软件测试、运行维护。并且规定它们的顺序是自上而下、相互衔接的,如同瀑布流水一般,快速达成客户的期望。
二、迭代开发
迭代模型也可称为迭代进化式开发或迭代增量式开发,是一种可以弥补瀑布式模式缺点的软件开发过程,它具有更高的生产率以及成功率。
在迭代开发模式中,整个开发工作可分为一系列固定长度的、短小的小项目,被称为一系列的迭代。每一次的迭代过程都包括了需求分析、软件设计和软件测试等基本活动,采用这种开发模式,软件开发项目可以在客户需求完全确定之前启动,并在每一次迭代中完成系统的一部分功能和业务逻辑的开发工作。然后再根据客户的反馈来进一步细化需求,并开始新一轮的迭代过程。
三、螺旋式开发
螺旋模型是一种演化软件定制开发过程的模型,它既具有快速原型的迭代特征,又有瀑布式开发的系统化。它引入了其他开发模式所不具备的风险分析,使软件在面临风险时能及时停止,减少损失,非常适合大型复杂的软件应用开发。
螺旋模型沿着螺线进行若干次迭代,活动的过程可分为四个阶段。第一阶段:制定计划。确定软件开发的方案和目标,弄清限制条件。第二阶段:风险分析。分析评估所选方案,考虑如何规避风险。第三阶段:计划实施。进行软件开发和验证等。第四阶段:客户评价。评价开发工作,提出反馈或修改建议,进行下一步工作。
四、敏捷开发
敏捷开发是一种以人为中心、迭代、循序渐进的开发模式。在这种模式中,一个大的软件项目可以划分为许多个小的子项目,每个子项目的结果都要进行测试,使其具有集成和可运行的特点。换句话说,就是把一个大项目分割成多个相互关联但也可以独立运行、单独完成的小项目。在这个过程中,软件始终处于可使用的状态。