基于CMM的软件过程方法研究摘要:随着软件产业的升温,一些软件企业开始寻求出口的道路,它们更加重视管理和质量水平的提高,国内的软件企业争先恐后加入到CMM的认证队伍中去。阐明了什么是软件过程,进行软件过程方法研究的背景和意义,软件能力成熟度模型CMM的主要内容,探讨了如何在中小型软件企业中正确地实施CMM,提出中国的软件企业利用CMM进行过程管理的一点建议。关键词:软件质量;软件过程;软件能力成熟度级别;CMM评估:G642文献标志码:A:1673-291X(2010)01-0251-02一、基本概念软件过程(SoftwareProcess):是指软件人员开发和维护软件及相关产品的一套行动、方法、实践和转化过程。软件过程能力(SoftwareProcesCapability):描述了在遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一个企业在承接下一个软件项目时,所能期望得到的最可能的结果。软件过程成熟度(SoftwareProcessMaturity):是软件过程改进的一个重要概念,它指一个特定软件过程得到清晰的定义、管理、测量、控制的有效程度。所谓成熟度包含着能力的一种增长潜力,同时也表明了企业实施软件过程的实际水平。随着组织软件过程成熟度能力的不断提高,组织内部通过对过程的规范化和对成员的技术培训,软件过程也将会被他的使用者关注和不断修改完善,从而使软件的质量、生产率和生产周期得到改善。二、中小型企业中实施CMM的意义美国卡内基·梅隆大学软件工程研究所SEi(SoftwareEngineerInstitute)的WattsHumphrey等人提出了软件过程、软件能力成熟度等级等概念,并形成了SW-CMM,即软件能力成熟度模型(SoftwareCapabilityMaturityModel),简称为CMM[1],它是一种评价软件承包商的软件开发管理能力并帮助其提高质量的方法,为软件机构描述了从混乱的、不成熟的软件过程向成熟、有纪律的软件过程改进的一条有效途径。CMM过程本身就是对软件企业发展历程的一个完整而准确的描述,企业通过实施CMM,可以帮助企业组织识别自身情况,对软件工程过程进行管理和改进,提高软件开发的质量,能够指导软件组织提高软件开发与改进能力;降低软件承包商和采购者的风险;评估软件承包商的软件开发管理能力;帮助软件企业共享业界有效过程实践;增加软件企业的国际竞争能力。三、CMM模型SEI给CMM下的定义是:对于软件组织在定义、实现、度量、控制和改善其软件过程的进程中各个发展阶段的描述。CMM将软件组织的能力成熟度分为了初始级(Initial)、可重复(Repeatable)、已定义(Defined)、已管理(Managed)和优化级(Optimizing)五个等级[2],这五个等级有着如下图所示的螺旋式上升的---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---阶梯型层次结构,其主要特征为:■图CMM模型级别初始级(Initial):软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。此时工作方式处于救火状态,需要不断的应对突如其来的危机。可重复级(Repeatable):已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。定义级(Defined):已将用于管理和工程的软件过程文档化、标准化,并形成组织的标准软件过程。所有项目均使用与实际情况相吻合、适当裁剪的标准软件过程来开发和维护软件产品。管理级(Managed):已采集详细的有关软件过程和产品质量的度量。无论软件过程还是产品均得到了定量了解和控制,量化控制将使软件开发真正成为一种工业生产活动。优化级(Optimizing):利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。如果企业达到了第五级,就表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。基于这种级别的划分,可以标识软件组织的过程能力,还可以方便地实现持续不断改进。因为每种级别都提供了一个软件过程改进层次,使成熟结构的每一个层次都能通过实现软件过程中的一些标准实现。这种方法同样使软件企业的软件能力得到提高。四、在软件企业中实施CMM的几点建议实施CMM对软件企业的发展起着至关重要的作用,CMM过程本身就是...