4.4典型的信息系统项目的生命周期模型
在实施一个信息系统项目时,不仅需要管理过程组,也需要工程技术过程组和支持
过程组。感兴趣的读者,请参见CMMI或过程改进的相关内容。
以下饼述典型的信息系统项目的生命周期模型,这些生命周期模型均按项目的工程
技术过程的先后顺序来划分的。
1.瀑布模型
瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计
划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维
护等几个阶段,如图4-13所示。瀑布模型中每项开发活动具有以下特点。
(l)从上一项开发活动接受其成果作为本次活动的输入。
(2)利用这一输入,实施本次活动应完成的工作内容。
(3)给出本次活动的工作成果,作为输出传给下一项开发活动。
本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下
一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以
相对来说较小的费用来开发软件。
2.V模型
首先,看V模型的图示。V模型如图4-14所示。
V模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测
试过程的各个阶段。在不同的组织中对测试阶段的命名可能有所不同。
在模型图中的开发阶段一侧,先从定义业务需求、需求确认或测试计划开始,然后
要把这些需求转换到概要设计、概要设计的验证及测试计划,从概要设计进一步分解到
详细设计、详细设计的验证及测试计划,最后进行开发,得到程序代码和代码测试计划。
接着就是测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验
收测试。
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描
述了这些测试阶段和开发各阶段的对应关系。
(1).单元测试的主要目的是针对编码过程中可能存在的各种错误,例如用户输入验
证过程中的边界值的错误。
(2)集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其
他程序部分之间的接口上可能存在的错误。
(3)系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行,例
如在产品设置中是否能达到预期的高性能。
(4)验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的
需要。
在不同的开发阶段,会出现不同类型的缺陷和错误,所以需要不同的测试技术和方
法来发现这些缺陷。
3.原型化模型
原型化模型是为弥补瀑布模型的不足而产生的。
,原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,
经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么
样子的。充分了解后,再在原型基础上开发出用户满意的产品。在实际中原型化经常在
需求分析定义的过程进行。原型化模型减少了瀑布模型中因为软件需求不明确而给开发
工作带来的风险,因为在原型基础上的沟通更为直观,也为需求分析和定义,提供了新
的方法。原型化模型的应用意义很广,瀑布和V棋型将原型化模型的思想用于需求分析
环节,来解决因为需求不明确而导致产品出现严重后果的缺陷。
对于复杂的大型软件,开发一个原型往往达不到要求,为减少开发风险,在瀑布模
型和原型化模型的基础上的演进,出现了螺旋模型以及大量使用的RUP。
4.螺旋模型
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模
型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺
旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸
上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生。螺旋模型
的整个开发过程如图4-15所示。
图4-15中的螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋
线形状。4个象限分别标志每个周期所划分的4个阶段:制定计划、风险分析、实施工
程和客户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
5.迭代模型
在大多数传统的生命周期中,阶段是以其中的主要活动命名的:需求分析、设计、
编码、测试。传统的软件开发工作大部分强调过程的串行执行,也就是一个活动需要在
前一个活动完成后才开始,从而形成一个过裎串,该过程串就组成了软件项目的生命周
期。在迭代模型中,每个阶段都执行一次传统的、完整的串行过程串,执行一次过程串
就是一次迭代。每次迭代涉及的过程都包括不同比例的所有活动。
RUP (Rarional Uni;fied Process)软件统一过程是一种“过程方法”,它就是迭代模型
的一种。
RUP可以用二维坐标来描述。横轴表示时间,是项目的生命周期,体现开发过程的
动态结构,主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone):
纵轴表示自然的逻辑活动,体现开发过程的静态结构,主要包括活动(Activity)、产物
(Artifact)、工作者(Worker)和工作流(Workflow)。如图4-16所示。
RUP中的软件生命周期在时间上被分解为4个顺序的阶段,分别是:初始阶段
(Inception)、细化阶段(Elaboration)、构建阶段(Construction)和交付阶段(Transition)。
这4个阶段的顺序执行就形成了一个周期。
每个阶段结束干一个主要的里程碑(Major Milestones)。在每个阶段的结尾执行一
次评估以确定这个阶段的目标是否已经满足。
每个阶段,从上到下迭代,亦即从核心过程工作流“商业建模”、“需求调研”、“分
析与设计”……执行到“部署”,再从核心支持工作流“配置与变更管理”、“项目管理”
执行到“环境”完成一次迭代。根据需要,在一个阶段内部,可以完成一次到多次的选
代。各阶段的主要任务如下。
(1)初始阶段:系统地阐述项目的范围、确定项目的边界,选择可行的系统构架,
计划和准备商业文件。商业文件包括验收规范、风险评估、所需资源估计、体现主要里
程碑日期的阶段计划。
(2)细化阶段:分析问题领域,建立健全体系结构并选择构件,编制项目计划,淘
汰项目中最高风险的元素。同时为项目建立支持环境,包括创建开发案例,创建模板、
准则并准备工具。
(3)构建阶段:完成构件的开发并进行测试,把完成的构件集成为产品,测试产品
所有的功能。构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、
进度和质量。
(4)交付阶段:交付阶段的目的是将软件产品交付给用户群俸。当本次开发的产品
成熟得足够发布到最终用户时,就进入了交付阶段。
交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包
括为发布做准备的产品测试,基于用户反馈的少量的调整。
软件产品交付给用户使用一段时间后,如有新的需求则该开始另一个开发周期,就
开始下一个的“初始、细化、构建和交付”周期。
各省软考办 | ||||||||||