在实施一个信息系统项目时,不仅需要管理过程组,也需要工程技术过程组和支持过程组。以下讲述典型的信息系统项目的生命周期模型,这些生命周期模型均按项目的工程技术过程的先后顺序来划分的。
一、瀑布模型
瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。
在这个模型里,项目启动时,项目团队专注于定义产品和项目的总体范围,然后制定产品(及相关可交付成果)交付计划,接着通过各阶段来执行计划。应该仔细管理项目范围变更。如果有新增范围,则需要重新计划和正式确认。以下情况优先选择这种生命周期:项目需求明确、充分了解拟交付的产品、有厚实的行业实践基础、或者整批一次性交付产品有利于干系人。例如开发一个软件项目时,如果采用这个模型的话,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试运行维护等几个阶段,如图1所示。
图1 瀑布模型
瀑布模型中每项开发活动具有以下特点:
(1)从上一项开发活动接受其成果作为本次活动的输入。
(2)利用这一输入,实施本次活动应完成的工作内容。
(3)给出本次活动的工作成果,作为输出传给下一项开发活动。
(4)对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复,以相对来说较小的费用来开发软件。
二、迭代模型
在大多数传统的生命周期中,阶段是以其中的主要活动命名的:需求分析、设计编码、测试。传统的软件开发工作大部分强调过程的串行执行,也就是一个活动需要在前一个活动完成后才开始,从而形成一个过程串,该过程串就组成了软件项目的生命周期。在迭代模型中,每个阶段都执行一次传统的、完整的串行过程串,执行一次过程串就是一次迭代。每次迭代涉及的过程都包括不同比例的所有活动。
RUP(RationalUnified Process)软件统一过程是一种“过程方法”,它就是迭代模型的一种。RUP 可以用二维坐标来描述。横轴表示时间,是项目的生命周期,体现开发过程的动态结构,主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone):纵轴表示自然的逻辑活动,体现开发过程的静态结构,主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow),如图2所示。
图2 RUP迭代模型
RUP中的软件生命周期在时间上被分解为4个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构建阶段(Construction)和交付阶段(Transition)。这4个阶段的顺序执行就形成了一个周期。
每个阶段结束于一个主要的里程碑(Major Milestone)。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。
三、V模型
首先,看V模型的图示,如图3:
图3 V模型
V模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。在不同的组织中对测试阶段的命名可能有所不同。
在模型图中的开发阶段一侧,先从定义业务需求、需求确认或测试计划开始,然后要把这些需求转换到概要设计、概要设计的验证及测试计划,从概要设计进一步分解到详细设计、详细设计的验证及测试计划,最后进行开发,得到程序代码和代码测试计划。接着就是测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验收测试。
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。
(1)单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
(2)集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查单元与其他程序部分之间的接口上可能存在的错误。
(3)系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行,例如在产品设置中是否能达到预期的高性能。
(4)验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。
在不同的开发阶段,会出现不同类型的缺陷和错误,所以害要不同的测试技术和方法来发现这些缺陷。
四、螺旋模型
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生。螺旋模型的整个开发过程如图4所示。
图4 螺旋模型
图中的螺旋线代表随着时间推进的工作进展,开发过程具有周期性重复的螺旋线形状。4 个象限分别标志每个周期所划分的 4 个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
(福建水投数科)