软件生命周期模型

合集下载

7.什么是软件生命周期模型?试比较瀑布模型,快速原型模型,增量模型和螺旋模型的优缺点,说明。。。

7.什么是软件生命周期模型?试比较瀑布模型,快速原型模型,增量模型和螺旋模型的优缺点,说明。。。

7.什么是软件⽣命周期模型?试⽐较瀑布模型,快速原型模型,
增量模型和螺旋模型的优缺点,说明。

软件⽣命周期?
软件⽣命周期由软件定义,软件开发和运⾏维护3个时期组成。

瀑布模型:
优点:
有利于⼤型软件开发过程中⼈员的组织、管理,有利于软件开发⽅法和⼯具的研究,从⽽提⾼了⼤型软件项⽬开发的质量和效率。

缺点:
瀑布模型是由⽂档驱动的。

范围
⽤户需求稳定的项⽬。

快速原型:
优点:
 有助于保证⽤户的真实需要得到满⾜。

 缺点:
 准确的原型设计⽐较困难。

客户和开发者对原型认识不同。

 范围:
 对开发领域熟悉,并有开发原型的项⽬。

增量模型:
 优点:
能在短时间内向⽤户提交可完成部分的⼯作的产品,逐步增加产品功能可以使⽤户有较充裕的时间学习和适应新产品。

 缺点:
并⾏开发控件可能遇到风险。

灵活性使之容易退化为边改边做模型,失去控制。

 范围:
进⾏已有产品升级。

螺旋模型:
 优点:
设计上的灵活,可在项⽬各阶段修改。

客户始终参与开发各阶段,保证了项⽬的正确⽅向。

 缺点:
需要相当丰富的风险评估,多次迭代会提⾼成本,延迟提交时间。

范围:
⼤规模的软件项⽬。

软件工程第2讲 软件生命周期模型

软件工程第2讲 软件生命周期模型

敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较5敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较57P32: 2.9.2P23: 2.2 P25: 2.3P34: 2.9.3模型构造多使用脚本语言、基于现有基础代码库、UI工具制作,制作过程一般不会考虑性能、稳定敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较5迭代-递增生命周期模型递增也是软件工程的一个固有特性P27P26: 2.5P28P29P30 2.7敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较58个体和交互胜过过程和工具以人为本我相信没有比面对面交流更高效的沟通渠道了•尊重和信任激发个人内心的责任感和使命感,激发了个体的潜能。

•基于互相信任的前提,敏捷提倡自治的全功能团队。

在工作形式上,整个团队平时坐在一起工作,从物理空间上创造了更加便捷面对面的沟通机会。

•要摒弃这种重流程和重工具,提倡轻量级流程和轻量级工具,而这些流程和工具又在促进个体交互。

比如,我们在日常工作中会使用Trello、Jira、Keynote等工具。

可以工作的软件胜过面面俱到的文档价值导向为客户交付可工作的软件是我们的核心目标•我们应该尽早交付可进行端到端测试的代码,该目标决定了我们不应该花过多精力在面面俱到的文档上。

•但这不代表我们要抵制任何文档。

实践证明,轻量级的文档策略有助于团队高质量交付可工作的软件。

•在开发过程中,交互设计原型也是一种轻量级文档,交互设计师交付可以尽早地跟团队和客户进行确认验收的核心业务场景的原型,快速收集反馈。

客户合作胜过合同谈判客户团队帮助客户实现他们真正想要的价值•让客户也作为团队的一分子,跟客户建立信任的合作关系取代敌对的谈判关系。

•需求的变化往往来自客户,让客户参与进来可以在开发的过程中尽早的发现变化,从而尽早采取解决方案。

软件工程的基本理论

软件工程的基本理论

软件工程的基本理论软件工程是指将系统化、规范化、定量化的方法应用于软件的开发、运行、维护等各个阶段的一门学科。

它主要涉及软件的需求分析、设计、编码、测试、项目管理等方面,是开发高质量软件的基础。

一、软件生命周期模型软件生命周期指软件从规划、定义需求、设计、开发、测试、运行使用到维护和升级这一整个过程。

常见的软件生命周期模型有瀑布模型、迭代模型、敏捷模型等。

瀑布模型是最传统的软件开发模型,按照线性顺序依次完成需求分析、系统设计、编码、测试和维护。

但它不适合需求变化频繁的项目。

迭代模型强调在不断迭代和反馈中逐步完善软件。

每个迭代周期可包含需求分析、设计、编码、测试等环节,每个环节会在下一次迭代中重新审视和修改。

敏捷模型注重快速响应需求变化,通过短周期的迭代交付软件,以适应市场和用户需求。

代表性的敏捷方法有Scrum、Extreme Programming(XP)等。

二、软件需求工程软件需求工程是软件工程的第一阶段,通过与用户沟通和理解,明确需求,形成需求规格说明书。

需求分为功能需求和非功能需求。

功能需求是指软件系统提供的具体功能,如用户登录、数据查询等。

非功能需求是指与软件功能无关的要求,如性能、可靠性、可维护性等。

需求分析的方法包括面谈法、文档分析法、观察法等。

通过需求分析可以明确用户需求,为后续的系统设计提供基础。

三、软件设计在软件设计阶段,开发人员根据需求规格说明书,进行系统的总体设计和详细设计。

总体设计决定系统的整体架构和模块划分,详细设计则对每个模块进行具体设计。

常见的设计方法有结构化设计、面向对象设计等。

结构化设计以数据流和数据变换为核心,强调模块化、分层和结构清晰。

面向对象设计以对象和类为基本单位,强调封装、继承和多态。

设计过程中,还需要考虑系统的可扩展性、可维护性和可重用性。

设计完成后,可进入编码阶段进行实现。

四、软件测试软件测试是为了发现和解决软件缺陷、提高软件质量的过程。

主要包括单元测试、集成测试、系统测试和验收测试等。

02-1 软件生命周期与开发模型

02-1 软件生命周期与开发模型
– – – – 瀑布模型 原型模型 迭代模型 增量模型
6
二、瀑布模型
7
• 1970年W.Royce提出瀑布模型 • 1.模型的本意:阶段间具有顺序性和依赖性

2.模型的特点:

文档驱动 过程不可逆转
(1)在开发时间内需求没有或很少变化。 (2)分析设计人员对应用领域很熟悉。 (3)低风险项目(对目标、环境很熟悉)。 (4)用户使用环境很稳定。 (5)用户除提出需求以外,很少参与开发工作。
•原型可作为单独的过程模型,也常被作为一 种方法或实现技术应用于其它过程模型中。
25
五、 迭代模型 (Iterative Model)
• 代表:RUP(Rational Unified Process)模型
26
• 这里所讲的迭代模型是RUP推出的一种 “逐步求精”的面向对象的软件开发过程 模型,被认为软件界迄今为止最完善的、 商品化的开发过程模型。
快速计划 交流 快速设计方式 建模
部署交付和 反馈
构建原型
17
原型模型
• 软件企业界的主流开发模型. • 1.模型的本意 • 原型模型(Prototype Model)的本意是: 在初步需求分析之后,马上向客户展示一个 软件产品原型(样品),对客户进行培训,让 客户试用,在试用中收集客户意见,根据客 户意见立刻修改原型,之后再让客户试用, 反复循环几次,直到客户确认为止。
14
• 4.模型的优点 • (1)由于将一个大系统分解为多个小系统, 这就等于将一个大风险分解为多个小风险, 从而降低了开发难度。 • (2)人员分配灵活,刚开始不用投入大量 人力资源。如果核心模块产品很受欢迎, 则可增加人力实现下一个增量。当配备的 人员不能在设定的期限内完成产品时,它 提供了一种先推出核心产品的途径。即可 先发布部分模块给客户,对客户起到镇静 剂的作用。

熟悉常用的软件开发生命周期模型

熟悉常用的软件开发生命周期模型

熟悉常用的软件开发生命周期模型软件开发生命周期模型是指在软件开发过程中,按照一定的步骤和阶段进行开发的方法论。

不同的生命周期模型适用于不同的开发需求和开发团队,但它们都以确保软件质量和满足用户需求为目标。

本文将介绍几种常用的软件开发生命周期模型,帮助读者更好地理解和应用于实际开发项目中。

瀑布模型瀑布模型是最经典的开发生命周期模型之一,它被认为是一种线性顺序模型。

瀑布模型将软件开发过程划分为几个阶段,如需求分析、系统设计、编码、测试和维护等。

每个阶段的输出会成为下一个阶段的输入,确保整个开发过程的连续性和一致性。

该模型适用于需求稳定、并能够明确详细的项目。

迭代模型迭代模型将软件开发过程划分为多个迭代周期,每个周期都包含需求分析、设计、编码、测试和发布等阶段。

每个迭代都会获得一个可用的软件产品,并在之后的迭代中不断完善和扩展。

迭代模型适用于需求变化频繁或团队缺乏明确的需求文档的情况。

通过快速迭代和反馈,开发团队能够更快地适应需求变化和改进软件质量。

螺旋模型螺旋模型将软件开发过程看作一系列的螺旋,每个螺旋代表一个开发周期。

在每个周期的开始,开发团队会进行风险评估和需求分析,并根据评估结果制定相应的开发策略。

然后,团队按照该策略进行设计、编码、测试和发布等工作。

螺旋模型适用于需要高风险控制和迭代开发的项目。

通过周期性的风险评估和调整,开发团队能够及时应对风险并提高软件质量。

敏捷模型敏捷模型是一种轻量级和迭代的开发方法论,强调快速适应需求变化和团队合作。

敏捷模型将开发过程划分为多个迭代周期,每个周期通常持续2到4周。

每个周期都包含需求分析、设计、编码、测试和部署等工作。

开发团队和客户之间的高效沟通和合作是敏捷模型的核心。

敏捷模型适用于团队追求快速交付、灵活适应需求变化的项目。

总之,软件开发生命周期模型是指导软件开发过程的重要方法论。

熟悉常用的软件开发生命周期模型有助于开发团队更好地组织和管理开发项目,确保软件质量和满足用户需求。

软件工程——01软件生命周期模型

软件工程——01软件生命周期模型

软件工程——01软件生命周期模型软件工程——01 软件生命周期模型引言软件工程是一门涉及软件开发、维护和管理的学科与技术。

在软件开发过程中,一个关键的概念就是软件生命周期模型。

软件生命周期模型是一种描述软件开发过程的抽象框架,它帮助开发人员理解和组织软件开发的不同阶段,以及在每个阶段中需要执行的任务和活动。

本文将介绍几种常见的软件生命周期模型,包括瀑布模型、原型模型、迭代模型和增量模型。

每种模型都有其特点和适用场景,在实际项目中开发团队可以根据具体需求选择合适的模型。

1. 瀑布模型瀑布模型是最早被提出和广泛使用的软件生命周期模型之一。

它将软件开发过程划分为一系列严格的阶段,每个阶段按顺序进行,只有当前一阶段完成后才能进入下一阶段。

瀑布模型的阶段包括需求分析、设计、编码、和维护。

瀑布模型的优势在于结构清晰、易于管理和追踪进度。

,它也存在一些缺陷,如需求变更困难、开发周期长、风险无法及时评估等。

2. 原型模型原型模型是一种快速开发的软件生命周期模型。

它强调通过快速建立原型来理解用户需求、验证解决方案。

原型模型的过程包括需求收集、原型设计、原型构建、用户反馈和改进。

原型模型的优势在于在开发过程中可以及时掌握用户需求并进行调整,有效减少需求变更带来的影响。

,原型模型也存在一些限制,如原型可能无法完全满足实际系统的要求、原型开发时间较长等。

3. 迭代模型迭代模型是一种灵活的软件生命周期模型,它允许开发人员根据实际情况进行反复迭代。

迭代模型的过程包括需求分析、设计、编码、和评审,每个阶段可能会经历多轮迭代。

迭代模型的优势在于可以通过快速迭代来逐步完善系统,并及时响应用户反馈和需求变更。

,迭代模型也要求开发团队具备较高的灵活性和素质,迭代次数过多也可能导致项目时间和成本的增加。

4. 增量模型增量模型是一种渐进式的软件生命周期模型,它将开发过程划分为多个相互独立的增量。

每个增量包含需求分析、设计、编码、和维护等阶段,开发人员逐步完成系统的不同功能。

软件工程生命周期

软件工程生命周期

软件工程生命周期软件工程生命周期1. 引言软件工程生命周期是指软件开发过程中的一系列阶段和活动,从项目启动、需求分析,到系统设计、编码,再到测试、部署、维护等阶段。

软件工程生命周期的目的是确保软件开发过程的可控性和质量,以提供高质量的软件产品给用户。

2. 软件工程生命周期模型软件工程生命周期模型是指将软件开发过程划分为不同阶段的模型,常见的模型有瀑布模型、迭代模型、敏捷模型等。

2.1 瀑布模型瀑布模型是最早的软件工程生命周期模型之一,它将软件开发过程划分为需求分析、系统设计、编码、测试、部署、维护等严格的阶段。

2.2 迭代模型迭代模型是将软件开发过程划分为多个迭代周期的模型,每个迭代周期包括需求分析、系统设计、编码、测试等阶段,每个迭代周期都可以产生一个可交付的软件版本。

2.3 敏捷模型敏捷模型强调灵活性和快速响应变化,将软件开发过程分为多个短期的迭代周期,每个周期内开发人员和需求方紧密合作,快速迭代开发出可用的软件产品,并根据反馈及时调整需求和开发计划。

3. 软件工程生命周期的阶段无论使用哪种软件工程生命周期模型,软件开发过程都会经历一些共同的阶段。

3.1 需求分析阶段需求分析阶段是确定软件系统的需求和功能的阶段,通过与用户、业务人员的沟通和交流,分析需求,编写需求规格说明书。

3.2 系统设计阶段在系统设计阶段,软件工程师将需求规格说明书转化为可执行的软件设计方案,包括系统架构设计、模块设计、数据结构设计等。

3.3 编码阶段在编码阶段,根据系统设计方案,开发人员进行具体的编码实现。

3.4 测试阶段测试阶段是验证软件产品是否满足需求以及是否存在缺陷和漏洞的阶段,包括单元测试、集成测试、系统测试等。

3.5 部署阶段在软件部署阶段,将已经测试通过的软件产品部署到目标环境中,使用户可以正常使用。

3.6 维护阶段维护阶段是软件工程生命周期中的一个阶段,通过修复缺陷、升级软件版本等方式,确保软件系统持续稳定运行。

软件生命周期模型与选择

软件生命周期模型与选择

软件生命周期模型及选择指南目录1. 目的 (3)2. 适用范围 (3)3. 术语定义 (3)4. 参考资料 (13)5. 概述 (3)6. 重叠瀑布模型(Interleaved Waterfall Model) (4)6.1 定义 (4)6.2 流程图 (4)6.3 重叠瀑布模型的WBS划分 (5)6.4 优缺点 (5)6.5 适用项目 (5)7. 增量模型(Incremental Model) (6)7.1 定义 (6)7.2 流程图 (6)7.3 阶段描述 ..................................................................................................... 错误!未定义书签。

7.4 增量模型的WBS划分............................................................................... 错误!未定义书签。

7.5 优缺点 (7)7.6 适用项目 (7)8. 原型模型(Prototyping Model) (8)8.1 非抛弃型原型模型...................................................................................... 错误!未定义书签。

8.1.1 阶段 .................................................................................................. 错误!未定义书签。

8.1.2 优缺点 (11)8.1.3 适用项目 (11)8.1.4 优缺点............................................................................................... 错误!未定义书签。

  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组成。

每-个KPA都由上述5种公共特性子以表征。

CMM给每个关键过程规了一些具体目标。

按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。

如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。

这种分级的思路在于把一个组织执行软件过程的成熟程度分成循序渐进的几个阶段,这与软件组织提高自身能力的实际推进过程相吻合。

这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。

这点很重要,因为大多数软件组织只能在某一段时间里集户开展少数几项过程改进活动。

CMM指明了过程改进的途径,是-套指南,能够通过持续的重复测量与提炼来稳步创造与改进开发环境。

不要把CMM设想为-套规则,应该将它理解为一个学科,一套做事的方法。

在这套指南下让你裁剪和塑造自己的大纲,以适应不同组织的特定要求。

CMM指明了一个组织从出生到成熟的成长道路。

还要求对整个IT组织的有关部分,从高层管理者到软件生产第一线的工作者,都要做出坚定的、长期的实施承诺。

成熟的过程需要长期的努力。

IT组织之间存在着巨大的差别,它们的客户不同、使用的工具不同,人员智力与专业背景不同,从事的项目属于不同的类型,规模有大有小,要求也各不相同。

因此它们应当以CMM为指导,以自己的方式走向成热。

在一处适用的东西,到另一处可能不适用。

因此灵活性、专业解释和恰当的实施,是在CMM下走向成功的关键。

CMM有两个基本用途:软件过评估和软件能力评价。

软件过程评估目的是确定-个组织的当前软件过程的状态,找出组织所面临的急需解决的与软件过程有关问题,进而有步骤地实施软件过程改进,使组织的软件过程能力不断提高。

因此,软件过程评估关注一个组织的软件过程有哪些需改进之处及其轻重缓急。

评估组采用CMM来指导他们进行调查、分析和排优先次序,组织可利用这些调查结果,参照CMM中的关键实践所提供的指导,规划本组织软件过程的改进策略,能够促使软件企业形成更先进、更科学、更新兴的管理模式。

各种不同水平的企业都能够从CMM中获取不同的营养,找出自己改进、发展的方向。

严格来说,对于软件企业软件能力的评估,实际上是对-个企业的软件开发能力的评估。

一个企业达到相应的CMM级别,就具有相应的软件开发能力,可以说是一个资质的证明。

软件能力评价目的是识别合格的能完成软件工程项目的承制方,或者监控承制方现有软件工作中软件过程的状态,进而提出承制方应改进之处。

相关文档
最新文档