|
|
经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在项目开始时就对产品和可交付成果进行定义,对任何范围变化都要进行仔细管理。
|
|
|
瀑布模型一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,通过顺序执行各个阶段的活动来完成项目。瀑布模型适用于需求明确或很少变更的项目,适用于充分了解拟交付的产品,有厚实的行业实践基础,或者整批一次性交付产品有利于干系人的项目。
|
|
|
|
迭代方法是通过一系列重复的循环活动来开发产品,而增量方法是渐进地增加产品的功能。一次迭代中,将执行所有项目管理过程组中的活动。每次迭代结束时,将完成一个或一组可交付成果。后续迭代可能对这些可交付成果进行改进,也可能创造新的可交付成果。
|
|
|
RUP是迭代模型的一种,可分四个阶段:初始、细化、构造、移交,这四个阶段的顺序执行就形成了一个周期。各阶段的主要任务有:
|
|
|
.初始阶段:系统地阐述项目的范围,选择可行的系统构架,计划和准备业务案例。
|
|
|
.细化阶段:细化构想,细化过程和基础设施,细化构架并选择构件。
|
|
|
.构造阶段:资源管理、控制和过程最优化,完成构件的开发并依据评价标准进行测试,依据验收标准评估产品的发布。
|
|
|
.移交阶段:同步并使开发的构造增量集成到一致的实施基线中,根据完整的构想和需求集的验收标准评估与实施有关的工程活动的实施基线。
|
|
|
迭代和增量模型适用于组织需要管理不断变化的目标和范围,组织需要降低项目的复杂性,或者,产品的部分交付有利于一个或多个干系人,且不会影响最终或整批可交付成果的交付。大型复杂项目通常采用迭代方式来实施,这使项目团队可以在迭代过程中综合考虑反馈意见和经验教训,从而降低项目风险。
|
|
|
|
敏捷方法也被称为适应型生命周期或变更驱动方法,是为了应对大量变更,获取干系人的持续参与而采用的方法。适应型生命周期也包含迭代和增量的概念,但和迭代增量模型不同之处在于,迭代很快(通常2~4周迭代1次),而且所需时间和资源是固定的。
|
|
|
敏捷方法是一种应对快速变化的需求的软件开发方法,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队,也更注重软件开发中人的作用。
|
|
|
敏捷方法适用于需要应对快速变化的环境,需求和范围难以事先确定的情况,或者能够以有利于干系人的方式定义较小的增量改进的情况。
|
|
|
|
V模型如下图所示,左边开发过程的各开发阶段和右边测试过程的各测试阶段相互对应,形成了字母“V”的形状。
|
|
|
|
|
V模型的价值在于它非常明确地标明了测试过程中存在的不同阶段,并且清楚地描述了这些测试阶段和各开发阶段的对应关系。
|
|
|
|
|
原型化模型首先要构造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。在实际中,原型化经常在需求分析定义的过程中进行。原型化模型减少了瀑布模型因为软件需求不明确而给开发工作带来的风险,因为在原型基础上的沟通更为直观,也为需求分析和定义提供了新的方法。
|
|
|
|
.抛弃型原型:此类原型在系统真正实现以后就抛弃不用了。
|
|
|
.进化型原型:此类原型的构造从目标系统的一个或多个基本需求出发,通过修改和追加的过程逐渐丰富,演化成为最终的系统。
|
|
|
对于复杂的大型软件,开发一个原型往往达不到要求,为减少开发风险,在瀑布模型和原型化模型的基础上演进,出现了螺旋模型以及大量使用的RUP。
|
|
|
|
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开发成为可能。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
|
|
|