二级在中小型软件企业中的应用

VIP免费
3.0 牛悦 2024-11-19 4 4 1.54MB 72 页 15积分
侵权投诉
第一章 引言
- 1 -
第一章 引 言
第一节 CMM 产生的背景及定义
一、CMM 产生的背景
当今时代,信息技术革命正迅速改变着我们生存的社会,随之兴起的信息产
业日益成为全球经济发展的主导产业。软件,处于信息技术的核心位置,已成为
信息产业中独立的支柱产业。世界范围内对软件需求的惊人增长,刺激了软件生
产的大规模发展。
软件研发项目管理最早源自于 70 年代中期。当时美国国防部曾立题专门研究
软件项目做不好的原因,发现 70%的项目是因为管理不善引起的,而并不是因为
技术实力不够,进而得出一个结论,即管理是影响软件研发全局的因素,而技术
只影响局部。这个结论非常重要。到了 90 年代中期,软件研发项目管理不善的问
题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,
大约只有 10%的项目能够在预定的费用和进度下交付。
在商用软件产业中,这一现象尤为严重。1995 年,美国共取消了 810 亿美元
的软件项目,其中 31%的项目未做完就取消了,53%的软件项目进度通常要延长
一半的时间,通常只有 9%的软件项目能够及时交付且费用也不超支,见图 1-1:
延长一半的
时间
53%
未做完便取
31%
预算内、期
限内完成
9%
其他
7%
图 1-1 软件完成情况
概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,
日趋复杂的需求;二、如何维护数量不断膨胀的软件产品。
具体地说,软件危机主要有以下表现:
(1)对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度
比预定计划一再拖延的现象并不罕见。
(2)用户对“已完成”系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。Bug 一大堆,Patch 一个接一个。
(4)软件的可维护程度非常之低。
(5)软件通常没有适当的文档资料。
(6)软件的成本不断提高。
CMM 二级在中小型软件企业中的应用
- 2 -
(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
软件危机的原因,一方面是与软件本身的特点有关;另一方面也是其根本原
因在于对软件生产过程无科学有效的管理方法,对软件研制过程的控制还存在着
很大的随机性。软件生产中的个人"英雄"行为,往往是不能重复的,更不能变为
集体业绩。领导、组织、管理软件生产是时代的需求、实践的需求。
二、CMM 的定义
软件能力成熟度模型(Capability Maturity Model,简称 CMM)应运而生,
为改善整个企业的软件生产过程提供了指南。
CMM 模 所 SEI(Software Engineering
Institute)开发拟定的标准,是目前国际上最流行也是最实用的一种软件生产过
程标准,得到了众多国家软件产业界的认可,成为当今从事规模化软件生产不可
缺少的一项内容。
CMM 将软件过程成熟度划分为五个主要等级,从第一级(最低级)到第五级(最
高级)。就每一级别来说,CMM 又在各自级别中细分出不同的核心过程域(Key
Process Areas)这些 KPA 分别代表了一个企业应该集中精力发展的关键过程域。
每一个 KPA 都代表着一组实施目标,这些实施目标代表了每一 KPA 所在等级需要
满足的需求。
从效果而言,在不同阶段,软件开发与生产的成熟程度给软件企业带来了完
全不同的效果。从第一阶段到第五个阶段,软件开发与生产的计划精度越来越高,
每单位工程的生产周期越来越短,每单位工程的成本越来越低。以 Raytheon 公司
为例,该公司现有近 400 名软件开发人员。公司用了近五年的时间,将其成熟度
从第一级提升到第三级,已经收到了明显的效果。为了提升到较高的级别,公司
所花费的投资与五年来因成本降低所收到的效益之比为 1∶8,直接生产效率提高
了大约 14 倍。该公司所开发的产品在成熟度提升前每千条指令出错率约为 0.31
条,提升后仅为 0.03 条。
实践表明:要低投入、高效率、高质量地开发软件,必须以改进并加强管理
软件的生产过程为中心,实施科学的、规范的软件工程管理,才是解决问题的根
本所在。如同一个人在某个特定领域的能力是积累起来的一样,一个企业的软件
能力也是逐步获得和增长的。如果在其发展过程中能得到一个很好的指南,那么
就能不断达到一个个设定的目标,变得越来越成熟;否则可能会盲目发展,离自
己的目标越来越远,甚至南辕北辙。
第二节 我国软件开发管理现状
我国软件产业起步于 80 年代初,经过 20 年的发展,中国的软件产业已经初
具规模,并展现了广阔前景,中国是 21 世纪世界软件产业市场容量最大的国家。
然而,目前我国的软件业总体水平仍处于初级阶段,企业规模小、人员分散、抗
风险能力差。据 2002 年初的统计看,我国的软件企业 1000 人以上的大型企业有
18 家,占全行业的 0.8%,而 50 人以下的有 1493 家,占 65.9%。
我国软件产业发展的良性机制还没有很好形成,软件发展的资金问题、人才
问题并没有从根本上解决,国内软件从业人员普遍缺乏基本的软件工程管理、项
第一章 引言
- 3 -
目管理、质量和过程管理以及文档编写等国际性软件项目所需要的合作技能,软
件公司的管理出现危机的案例也屡见不鲜。软件开发的工程化、规范化程度低。
中国的软件企业在产品开发过程中缺乏行之有效的软件开发管理体制。
与美国、印度等国家的软件企业相比,我国通过 CMM 认证、ISO 9002 认证的
软件企业占软件企业总数的比例还比较低。我国软件企业要大幅度提高开发能力,
要确保我们软件产品的质量,才能树立起中国软件的国际性。达到这样的目标,
我们必须要有可靠的质量保证手段,必须要向国际上公认的软件评估标准靠拢。
可喜的是,国内许多软件企业都意识到了软件过程管理的重要意义,积极通
过实施 CMM 来提升自己的软件开发能力和国际竞争力。从 2000 年 6 月仅有的摩托
罗拉 5 级,联想、东软、浪潮 2 级,到 2001 年仅北京一地就有清华鼎鑫、神州数
码、用友、东方通、北佳、方正电子、中软网络、亿阳信通等 8 家软件企业相继
通过了 CMM2 认证。2002 年 12 月中软、创智、金蝶、中科院软件研究所、万达信
息股份有限公司等软件企业都相继通过了 CMM3 的认证,东软更是通过了 CMM5 的
认证,使中国成为继美国和印度后第三个拥有 CMM5 认证的国家。
当然,在热潮背后也是存在着不少的问题,有一些企业单纯追求过级,急功
近利不注意积累,做表面的应付文章,实际又是另一套。有些单位虽通过并使用,
但范围较小,通过评级的也仅是其中的一个部门,并非整个企业全体。中国软件
企业仍然还有很长的路要走。
第三节 论文概要
CMM 的框架具有相当的普遍意义,虽然企业能以不同的方式实施 CMM,促使
CMM 的特与实中的过程结合是一容易CMM 仅指该做
么,而没有指明如何做。
本文阐述了 CMM 标准的软件企业运作过程,尤其着眼于适合我国中小型软件
企业的 CMM 二级实现方案,因为二级是整个 CMM 体系架构中最基础也是最重要的
一个级别,与软件开发的每个环节都息息相关。
本文根据中小型软件企业的特点,设计了 CMM 二级各个关键过程域的具体实
施 流 程 , 职 责 分 配 和 推 荐 工 具 , 包 括 Rational ClearCase , Rational
RequisitePro,Microsoft ProjectRational SQA Suite 等。使得企在实
时,有章可循,有事可为,有实可用。图文并茂地说明了如何通过有效的途径和
方法,来全面提升企业过程的成熟度等级。
同时,本文深入分析了 CMM 实施过程中的一个重要领域——软件预估。结合
Function Point 和 COCOMO 两种模型介绍了一种完整的软件估算方法。而且,通
过提出一种全新的体系架构,加入自适应调节、人工神经网等自动调节机制,解
决 了 原 有 模 型参 数 调 节 难 和 适 用 领 域窄 的 问 题 。 还 利 用 Rational Rose ,
Visio2002,Jbuilder 7.0,SQL Server 2000 等工具设计、编写了一个配套的软
件预估工具。
本论文的第二章简要介绍了 CMM 的整个体系构架;第三章具体阐述了本人设
计的中小型软件企业 CMM 二级实现方案;第四章介绍了一些传统的软件预估分析
方法,并结合两种不同模型,功能点和 COCOMO 模型,通过实例说明了一个完整的
软件估算过程;第五章提出了一个新的软件估算体系,并为不同的软件类别设计
了多种输入模式;第六章说明了估算工具的软件实现。
CMM 二级在中小型软件企业中的应用
- 4 -
第二章 CMM 体系结构简
第一节 CMM 五级体系结构
一、CMM 五级成熟度定义
软件能力成熟度模型主要用于软件开发过程和软件开发能力的评估和改进,
是优化软件开发过程,提高开发能力的有效工具。
过程的不断改进基于许多小的、进化的步骤,而不是革命性的创新。CMM 提
供了一个框架,将这些进化步骤组织成五个成熟度等级,它为过程不断改进奠定
了循序渐进的基础。每一等级包含一组过程目标,当目标满足时,能使软件过程
的一个重要成分稳定。每达到成熟度框架的一个等级,就建立起软件过程的一个
不同的成分,导致组织过程能力的增长。
五级的具体定义如下:
(1) 初始级(Initial):软件开发过程中偶尔会出现混乱的现象,只有很少的工
作过程是经过严格定义的,开发成功往往依靠的是某个人的智慧和努力。
(2) 可重复级(Repeatable):建立了基本的项目管理过程。按部就班地设计功
能、跟踪费用,根据项目进度表进行开发。对于相似的项目,可以重用以前已经
开发成功的部分。
(3) 已定义级(Defined.):软件开发的工程活动和管理活动都是文档化、标准
化的,它被集成为一个组织的标准的开发过程。所有项目的开发和维护都在这个
标准基础上进行定制。所有项目均使用经批准、剪裁的标准软件过程来开发和维
护软件。
(4) 定量管理级(Managed.):对软件开发过程和产品质量的测试细节,都有很
好的归纳,产品和开发过程都可以定量地分解和控制。
(5) 优化级(Optimizing):通过建立开发过程的定量反馈机制,不断产生新的
思想,采用新的技术来优化开发过程。
二、CMM 五层内部结构
CMM 的结构是层次化的结构,包括 5 个级别、18 个关键过程域、5 类公共
征和 316 个关键实施。
每个成熟度等级由几个关键过程域组成,指明为了改进其软件过程,组织应
关注的区域,它们的实施对达到该成熟度等级的目标起到保证作用。每个关键过
程域又按五个称为共同特征的部分加以组织。共同特征规定关键实践,当这些关
键实践均得到实施时,就能实现关键过程域的目标。
除第一级外,每个成熟度等级的分解均从每个等级的抽象概要向下直至它们
在关键实践方面的可操作定义,如图 2-1 所示:
第二章 CMM 体系结构简介
- 5 -
图 2-1 CMM 五层内部结构
每个关键过程域识别出一个单相关活动,当这些活动全部完成时,能达到一
组对增强过程能力至关重要的目标。达到关键过程域目标的途径可能因项目而异,
这是因为在应用领域或环境上有差异。不过,为了使得组织实现某个关键过程域,
必须达到该关键过程域的全部目标。
表 2-1 显示了每一成熟度等级的关键过程域。为了达到一个成熟度等级,
必须实现该等级上的全部关键过程域。
成熟度等级
Level
焦点
Focus
关键过程域
Key Process Areas
1 初始级
Initial
能人高手和英雄行为(无 Focus 和 KPA)
Competent people and heroics
2 可重复级
Repeatable
项目管理过程
Project management
processes
需求管理
Requirements Management
软件项目计划
Software Project Planning
软件项目跟踪和监督
Software Project Tracking &
Oversight
软件转包合同管理
Software
Subcontract Management
软件质量保证
Software
CMM 二级在中小型软件企业中的应用
- 6 -
Quality Assurance
软件配置管理
Software
Configuration Management
3 已定义级
Defined
工程化过程及组织支持
Engineering processes and
organizational support
组织过程焦点
Organization
Process Focus
组织过程定义
Organization
Process Definition
培训大纲
Training Program
集成软件管理
Integrated
Software Management
软件产品工程
Software
Product Engineering
组间协调
Intergroup Coordination
同行评审
Peer Reviews
4 已管理级
Managed
产品和过程质
Product and process
Quality
定量过程管理
Quantitative
Process Management
软件质量管理
Software
Quality Management
5 优化级
Optimizing
持续不断的过程改进
Continual process
Improvement
缺陷预防
Defect Prevention
技术变更管理
Technology Change Management
过程变更管理
Process Change Management
表 2-1 成熟度等级的焦点和关键过程区域
三、关键过程域的含义
CMM 的关键过程域表示一种描述组织如何成熟的方法。
等级 2 上的关键过程区域集中关注软件项目所关心的,与建立基本项目管理
控制有关的事情。下面是 2 级中 6 个关键过程域的描述:
(1) 需求管理: 在顾客和软件项目之间建立对顾客需求的共同理解,顾客需
求将由软件项目处理。对与顾客关系的控制依靠遵循有效的更改控制过程。
第二章 CMM 体系结构简介
- 7 -
(2) 软件项目计划: 制定软件工程和管理软件项目的合理的计划。这些计划
是管理软件项目的必要基础。没有切合实际的计划不可能实施有效的项目管理。
(3) 软件项目跟踪和监督: 建立适当的对实际进展的可视性,使管理者在软
件项目性能显著偏离软件计划时能采取有效的措施。
(4) 软件子合同管理: 选择合格的软件子承包商,并有效地管理它们。它把
用于基本管理控制过程区域中,协调结合在一起,并在合适时对承包商实施这项
管理。
(5) 软件质量保证: 是给管理者提供对于软件项目正采用的过程和正在构造
的产品的恰当的可视性。软件质量保证是绝大多数软件工程过程和管理过程的不
可缺少的部分。
(6) 软件配置管理: 在项目的整个软件生存周期中建立和维护软件产品的完
整性。软件配置管理是绝大多数软件工程过程和管理过程的不可缺少的部分。
等级 3 的关键过程域既阐述项目的问题,又阐述组织的问题,这是因为组织
建立起对所有项目有效的软件工程和管理过程规范化的基础设施。下面列出对等
级 3 上每个关键过程域的描述:
(1) 组织过程焦点:规定组织改进其整体软件过程能力的职责。积累软件过程
财富,供软件项目使用。
(2) 组织过程定义: 开发和保持一组便于使用的软件过程财富,它们能改进
横跨项目的过程性能,并且为组织能获得积累性的、长期得益奠定基础、这些财
富提供一组稳定的基本原则,通过诸如培训等机制就能使其成为制度。培训在培
训大纲中加以描述。
(3) 培训大纲:培育个人的技能和知识,使得他们能效率高地执行其任务。
识别出所需要的技能、当项目需求独特时,该项目应提供所需要的培训。
(4) 集成软件管理:将软件工程活动和管理活动集成为一个协调的、已定义
的软件过程,该过程是剪裁组织的标准软件过程和组织过程定义中所描述的相关
的过程财富而得到的。
(5) 软件产品工程:一致地执行一个妥善定义的工程过程,为了能有效地生
产正确的、一致的软件产品,该工程过程集成全部软件工程活动。软件产品工程
描述项目的技术活动,例如,需求分析、设计、编码和测试。
(6) 组间协调: 为软件工程组积极参与其它工程组工作制定一种方法,使得
项目更能满足顾客的需求。组间协调是集成软件管理的一个涉及多学科的方面,
它延伸到软件工程之外;不仅应该集成软件过程而且软件工程组和其它组之间的
相互作用也必须加以协调和控制。
(7) 同行评审:及早和高效地除去软件工作产品中的缺陷、一个重要的必然
结果是增强对软件工作产品和可预防的缺陷的了解、同行评审是一种重要而又有
效的工程方法。
等级 4 上的关键过程区域的关注焦点是建立起对软件过程和正在构造的软件
工作产品的定量了解。正如以下所述,该等级上的两个关键过程区域——定量过
程管理和软件质量管理——是互相紧密依赖的:
(1) 定量过程管理:定量地控制软件项目的过程性能。软件过程性能表示遵
循一个软件过程所得到的实际结果。焦点是在一个可测的稳定的过程范围内鉴别
CMM 二级在中小型软件企业中的应用
- 8 -
出变化的特殊原因,并且适当时改正那些促使瞬时变化出现的环境。定量过程管
理给组织过程定义、集成软件管理、组间协调、和同行评审的实践附加一个内容
丰富的测量计划。
(2) 软件质量管理: 建立对项目的软件产品质量的定量了解和实现特定的质
量目标。
等级 5 上的关键过程区域包括为了实施连续不断的和可测的软件过程改进,
组织和项目都必须解决的问题。下面列出等级 5 的每个关键过程区域的描述。
(1) 缺陷预防:鉴别缺陷的原因并防止它们再次出现。正如在集成软件管理
中所描述的,软件项目分析缺陷、鉴别其原因并更改项目定义软件过程。
(2) 技术改革管理: 识别出能获利的新技术(即工具、方法和过程)并以有
序的方式将它引进到组织中去,在不断变化的环境里高效率地进行创新。
(3) 过程更改管理:出于改进软件质量、提高生产率和缩短产品开发周期的
目的持续不断地改进组织中所采用的软件过程。过程更改管理既采用缺陷预防的
增量式改进,又采用技术改革管理的创新式改进,并使得整个组织可以享用这些
改进。
第二节 如何正确理解 CMM
所有软件都是经过一些过程产生出来的。但这些过程往往是混乱和不一致的,
从而导致缺乏可预见性和可重复性,缺乏改进的基础。为此,在软件开发期间需
要连贯的、明确的过程,从而使这些过程能够被连续地执行,并被监督和演化。
CMM 对于想要控制软件开发和维护过程,以及希望在机构内部形成良好的开发秩
序和环境的组织,是有很大帮助的。
CMM 描述了一个有效的软件过程中的关键要素,讨论了不成熟的软件机构发
展成为有规律的、成熟的软件机构的改进过程。通过这些实践活动,能够提高软
件机构满足成本、进度、功能和质量要求的能力。
实施 CMM 规范、通过 CMM 认证有如下一些好处:确定工作流程和方式,从而
使产品的质量和开发的可延续性有了保证;可以提高企业在用户中的信誉度,增
加企业与强势公司竞争的筹码;可以承接国际大公司的外包项目——美国公司愿
意找印度公司来承接其外包项目,就是因为印度公司对 CMM 规范普遍比较重视,
通过 CMM 认证的软件企业也多;公司不再受制于人,人走了,事照做,这是一个
公司成熟的表现。
但 CMM 也不是万能的,并不一定对所有的软件企业都适合,实施 CMM 的企业
有成功也有失败。这是因为,在运用 CMM 中还存在着一些局限性。主要包括:
1、CMM 提供了一种有步骤且目标一致地改进软件产品的管理过程和工程过程
的方案,但是它并不保证软件产品将成功地构造出来,或者保证恰当地解决全部
软件工程中的问题。
2、CMM 最初是以承接政府大型软件合同的企业为对象而制订出来的。因此,
中小型软件开发企业在采用 CMM 的时候,必须运用自己的专业知识和判断力去进
行剪裁,按照企业本身的特点和需要去解释它的条文。
3、CMM 的实现依赖于有关人员的积极参加和进行创造性活动。
4、正式推行 CMM 需要在人力和经费上增加投入,这对中小企业有一定困难。
摘要:

第一章引言-1-第一章引言第一节CMM产生的背景及定义一、CMM产生的背景当今时代,信息技术革命正迅速改变着我们生存的社会,随之兴起的信息产业日益成为全球经济发展的主导产业。软件,处于信息技术的核心位置,已成为信息产业中独立的支柱产业。世界范围内对软件需求的惊人增长,刺激了软件生产的大规模发展。软件研发项目管理最早源自于70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发全局的因素,而技术只影响局部。这个结论非常重要。到了90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件...

展开>> 收起<<
二级在中小型软件企业中的应用.pdf

共72页,预览8页

还剩页未读, 继续阅读

作者:牛悦 分类:高等教育资料 价格:15积分 属性:72 页 大小:1.54MB 格式:PDF 时间:2024-11-19

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 72
客服
关注