软件构造的传统模型及其阶段
软件构造的模型,就是指对软件构造的流程的一个抽象概括。每个模型包含许多阶段,各阶段完成一定的任务,按照模型的顺序进行各阶段的任务,就能推进软件的构造,实现软件的开发和维护。
瀑布过程
瀑布模型是一种线性模型,不进行迭代。按照需求-设计-实现-验证-维护5各阶段一次推进,管理简单,但难以适应需求变化。
增量过程
增量过程是一种线性模型,它同样不进行迭代,但是通过将原先的“大瀑布”拆分成数个“小瀑布”,逐步地完成软件开发,增强了对变化需求的支持性。增量开发的五个阶段分别是沟通、计划、模型化、构建、部署。
V字模型
V字模型可以被视为是瀑布模型的一种扩展,它不是线性结构,而是在完成逐级构建之后,又通过逐步测试“上升”到开发阶段。V字模型突出了测试阶段和开发阶段的一一对应关系。V字模型的左侧是项目定义阶段,包含操作概念界定、需求和架构分析、细节设计。底部是代码实现。右侧是测试和集成阶段,包括集成与测试、系统验证、操作和维护。
V字模型从左到右是时间上的逐步完善,从下到上是设计上的逐步抽象。当进行到最右上时,经由反馈,重新回到最左上。
原型模型
原型模型包括分析、原型实现、设计、实现、测试、维护6个阶段,在瀑布中加入了一个原型阶段,该阶段将反复根据客户的需求进行迭代。
螺旋模型
螺旋模型是瀑布阶段和原型模式的结合,在一次螺旋中完成一个瀑布,产出一个原型,然后经过对原型的测试进入下一个阶段。螺旋模型的四个阶段分别是需求分析、风险分析、开发和测试、计划下一次迭代。
敏捷开发与极限编程
敏捷开发就是指通过快速迭代和小规模增量以快速适应变化,一次敏捷开发的迭代持续1~4周,进行迭代计划、测试和增量开发、迭代评审、迭代回顾、更新产品活动。
敏捷开发的核心是迭代和反馈,迭代是指在一次迭代中完成一次小规模的增量开发,反馈是指在迭代过程中,通过评审和回顾,及时发现问题,及时进行调整。
极限编程包括极限的用户参与,极限的小步迭代,极限的测试与验证。概括来说,就是对敏捷开发思想的提炼。