二级在中小型软件企业中的应用
VIP免费
第一章 引言
- 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 Project,Rational 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) 需求管理: 在顾客和软件项目之间建立对顾客需求的共同理解,顾客需
求将由软件项目处理。对与顾客关系的控制依靠遵循有效的更改控制过程。
摘要:
展开>>
收起<<
第一章引言-1-第一章引言第一节CMM产生的背景及定义一、CMM产生的背景当今时代,信息技术革命正迅速改变着我们生存的社会,随之兴起的信息产业日益成为全球经济发展的主导产业。软件,处于信息技术的核心位置,已成为信息产业中独立的支柱产业。世界范围内对软件需求的惊人增长,刺激了软件生产的大规模发展。软件研发项目管理最早源自于70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发全局的因素,而技术只影响局部。这个结论非常重要。到了90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件...
相关推荐
-
VIP免费2025-01-09 5
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 7
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 6
-
VIP免费2025-01-09 7
-
VIP免费2025-01-09 6
作者:牛悦
分类:高等教育资料
价格:15积分
属性:72 页
大小:1.54MB
格式:PDF
时间:2024-11-19