软件生命周期模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件生命周期模型

.软件生命周期对于一个软件的研制,从问题的提出,经过开发、使用、维护、修订,直到最后终止使用而被另一软件所取代,就像是一个生命体从孕育、出生、成长到最后消亡,软件的这个状态变化的过程称为生命周期(life cycle)。软件生命周期的演化具有阶段性,依据一定的原则,可以把软件生命

周期划分为若干不同阶段,相邻的阶段既相互区别又相互联系,每个阶段都以

其前一阶段的工作成果作为本阶段工作的基础。软件生命周期的划分有助于软

件开发和管理人员根据不同阶段的特点进行软件开发及其管理。软件开发的经

验表明,软件开发越到后期,改正前期开发工作的失误越困难,因此在软件开

发工作中应该对软件开发工作的阶段性给予充分认识,在前期工作不无分的前

提下不应过早地进入软件开发的下一阶段。依据不同的原则对软件生命周期的

划分也不同,《软件工程国家标准--计算机软件开发规范》(GB8566-88)中将软件生命周期划分为8个阶段:可行性研究与计划、需求分析、概要设计、详细

设计、实现(包括单元测试)、组装测试(集成测试)、确认测试、使用和维护。

本书按照人们所习惯的粗分方法把上面8个阶段划分为计划、开发和维护3个

阶段,在概述其他两个阶段的基础上重点介绍软件的开发过程。2.软件开发方

法在规定的投资规模和时间限制内,实现符合用户需求的高质量软件是软件开

发的目标,为实现这一目标,人们根据软件开发的特点,提出了多种软件开发

策略。通过不同的软件开发模型阐明从问题提出到最终软件实现,软件开发工

作过程的阶段性任务分解,并规定了每一个阶段的目标、任务以及工作结果的

表达形式。常见的软件设计模型有:瀑布模型(waterfall model)、渐进模型(increamental model)、演化模型(evolutionary model)、螺旋模型(spiral model)、喷泉模型(fountain model)、智能模型(intelligent model)等。这里介绍其中的3种。(1)瀑市模型瀑市模型1970年由W.Royce提出,其开发过程

依照固定顺序进行,各阶段的任务与工作结果如图1所示。该模型严格规定各

阶段的任务,上一阶段任务输出作为下一阶段工作输入。此模型适合于用户需

求明确、开发技术比较成熟、工程管理严格的场合使用,其缺点是:由于任务

顺序固定,软件研制周期长,前一阶段工作中造成的差错越到后期越大,而且

纠正前期错误的代价高。图1瀑布型开发过程(2)渐进模型从一组简单的基本用户需求出发,首先建立一个满足基本要求的原型系统。通过测试和运行原型系

统,有用户提出进一步细致的需求,然后修改和完善原型系统,反复进行这个

过程直到用户满意为止。该模型适合开发初期用户需求不甚明确,相关技术和

理论需要不断研究、反复实验以及开发过程需要经常与用户交互的场合,学习

或研究类软件的开发常用此法。由于用户在整个软件开发过程中都直接参与.因

此最终的软件产品能够很好地满足用户的需求。渐进模型开发过程如图2所示。图2渐进型开发模型(3)喷泉模型该模型主要用于面向对象软件技术开发项目,

其特点是各项活动之间没有明显的界限。由于面向对象技术的优点,该模型软

件开发过程与开发者对问题认识和理解的深化过程同步。该模型重视软件研发

工作的重复与渐进,通过相关对象的反复迭代并在迭代中充实扩展,实现了开

发工作的迭代和无间隙,该开发过程分为:分析、设计、实现、确认、维护和

演化。

CMM概述软件产品的质量在很大程度上取决于开发软件时开发和维护过程

的质量。软件开发过程是人员密集和设计密集的作业过程,若缺乏有素的训练,就难以建立起支持实现成功改进软件过程的基础,改进工作亦将难以取得成效。美国困会在20世纪80年代就注意到IT行业的这个现实,希望IT行业能以标

准化的方式履行软件开发的能力。在1984年,国会与美国的主要公司和研究中

心合作,建立了-个由联邦资助的非盈利组织,称为软件工程研究所(Software Engineering Institute,SEI),附属于卡内基一梅隆大学。Capability Maturity Model缩写为CMM,是SEI的一个早期研究成果,描述的这个框架勾

画出软件开发组织从无定规的混沌过程向训练有素的成熟过程演进的途径。CMM

是一个事实上的软件工程过程方面的国际标准。CMM是CMM族模型中制订最早、影响也最大的一个。CMM是用于评价一个组织软件过程成熟度和识别增加这些

过程的成熟度所需要的关键实践的-个模型,是建立软件组织所使用的过程成熟

度的模型以及定义和测量过程成熟度的有效方法,在实际中被软件开发组织用

于软件过程改进和评估。CMM采用5级等级结构。如果一个组织被评估为5级,它便达到了完全的成熟水平。它有一套实践、方针和规范,使各个团队能以一

种可预见的、可靠的和可重复的方式生产出高质量的软件。据SEI估计,全世

界只有1%-2%的IT组织达到了5级的水平。而评估为1级的组织则缺乏这种能力,质量或多或少成为一个不可预见、无法管理的目标,成功与否不仅依靠组织,而更多地依赖于个人。CMM的5个等级分别为:第一级,初始级;第二级,可重复级;第二级,已定义级;第四级,已管理级;第五级,优化级。在每一

个等级上,CMM首先设定一组一般目标,再定义一组关键过程域(KPA,Key Process Area),而关键过程域则靠若干关键实践来实现。CMM根据关键过程域

对软件过程能力进行评估,无论哪个KPA,它们的实施活动都统一按五个公共

属性进行组织,即每一个KPA都包含五类KP。每一个KPA都确定了一组目标,

若这组目标在每一个项目都能实现,则说明企业满足了该KPA的要求。若满足

了某一个级别的所有KPA要求,则表明达到了这个级别所要求的能力。依据软

件过程能力的不同将软件企业分为5个不同的软件能力成熟级别。CMM为软件

企业的过程能力提供了一个阶梯式的进化框架。它基于过去所有软件工程成果

的过程改善的框架,吸取了以往软件工程的经验教训。它指明了一个成熟的软

件组织在软件开发方面需要管理的那些主要工作、这些工作之间的关系,以及

以怎样的先后次序,一步一步地做好这些工作使软件组织走向成熟。CMM是目

前国际上最流行也是最实用的软件生产过程标准。迄今为止,CMM既不是政府

标准也不是行业协会标准,而是软件工程研究所发表的一份技术报告;不过,

它在美国已成为事实上的标准。鉴于CMM的巨大应用前景,SEI己在美国注册

了CMM的专利和商标。与此同时,围绕以CMM为基础的软件过程评估和软件能

力评价建立了从审核员培训到提供评估和评价的一整套服务体系。SEI给CMM

下的定义是:对于软件组织在定义、实现、度量、控制和改善其软件过程的进

程中各个发展阶段的描述。这个模型便于确定软件组织的现有过程能力和查找

出软件质量及过程改进方面的最关键的问题,从而为选择过程改进战略提供指南。CMM1.1版包括四部分:"软件能力成熟度模型"和"能力成熟度模型的关键

惯例"。"软件能力成熟度模型"主要是描述这种模型的结构,并且给出该模型的基本构件的定义;为便于读者理解,还进一步对成熟度模型及其构件做了大量

解释。"能力成熟度模型的关键惯例"除了重复叙述能力成熟度模型结构及其构

件外,以大量篇幅详细描述了每个"关键过程域"涉及的"关键惯例"。"关键过程域"是指一组相关联的活动,通过执行这些活动可以实现既定的过程能力。所谓"关键惯例"是指使关键过程域得以有效实现和制度化的作用最大的基础设施和

活动。各个关键惯例按每个关键过程域的5个"公共特性"(对执行该过程的承诺,执行该过程的能力,该过程中要执行的话动,对该过程执行情况的度量和分析,及证实所执行的活动符合该过程)归类,逐一详细描述。按CMM的规定,做到了

某个关键过程的全部共键惯例就认为实现了该关键过程,实现了某成熟度级别

及其以下各级所含的全部关键过程就认为达到了该级别。CMM把软件开发组织

的能力成熟度分为5个可能的等级。除了第1级外,其他每一级由几个KPA组

相关文档
最新文档