什么是软件测试中的“CMI”...?

但CMM CMM指的是“能力成熟度模型”,英文称为Capability Maturity Model for Software,英文缩写为SW-CMM。它描述了软件组织在定义、实现、度量、控制和改进软件过程的实践中的发展阶段。CMM的核心是将软件开发视为一个过程,根据这一原理对软件开发和维护进行过程监控和研究,使其更加科学和规范,使企业更好地实现业务目标。

CMM是一种评估软件承包能力并帮助其提高软件质量的方法,侧重于软件开发过程的管理和工程能力的提高与评估。CMM分为五级:第一级是初始级,第二级是可重复级,第三级是定义级,第四级是管理级,第五级是优化级。

CMM由美国卡内基梅隆大学软件工程研究所于1987年研制成功。它是国际上最流行、最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国现有的软件企业都已经通过了CMM标准认证。

SW-CMM(Capability Maturity Model for Software Productivity Maturity Model,以下简称“CMM”)是美国卡耐基梅隆大学软件工程研究所(CMU SEI)于1987年开发的一种方法,用于评估软件承包商的能力,帮助提高软件质量。其目的是帮助软件企业管理和改进软件工程过程,增强其开发和改进能力,从而在预算内按时开发出高质量的软件。

它基于这样一种思想,即只要我们集中精力建立有效的软件工程过程基础设施,并不断进行管理实践和过程改进,我们就可以克服软件生产中的困难。CMM是国际上最流行、最实用的软件生产过程标准,得到了许多国家和国际软件业的认可,成为企业从事大型软件生产不可或缺的内容。

目前比较流行的CMM版本是1.1(版本1.1)。根据软件工程研究所(SEI)的原始计划,CMM的改进版本2.0 (V2.0)将于1997+01年6月完成。然而,美国国防部办公室要求软件工程研究所(SEI)推迟发布CMM 2.0版本,直到他们完成另一个更紧急的项目——CMMI。

CMMI(Capability Maturity Model Integration能力成熟度模型集成)是美国国防部的一个想法。他们希望将所有现有的和未来的能力成熟度模型集成到一个框架中。这个框架用来解决两个问题:一是软件采购方式的改革;其次,从集成产品和过程开发的角度,建立一个包括完善的系统开发原则的过程改进。

CMM为软件企业的过程能力提供了一个逐步改进的框架。CMM基于以往软件工程过程改进的所有成果,借鉴以往软件工程的经验,提供了一个基于过程改进的框架。它指出了一个软件组织在软件开发中需要管理哪些主要任务,这些任务之间的关系,以及按照什么样的顺序,一步一步地去做这些任务,才能使软件组织走向成熟。

一、CMM的诞生

在信息时代,软件质量的重要性越来越被人们所认识。软件是产品,是设备,是工具,它的质量让客户满意,是产品市场开拓和事业发展的关键。软件工程领域从1992到1997取得了前所未有的进步,其成就超过了过去15年软件工程领域成就的总和。

从20世纪70年代中期开始,软件管理工程吸引了广泛的关注。当时美国国防部专门研究了软件项目差的原因,发现70%的项目是管理不善造成的,而不是技术力量不足,然后得出结论,管理是影响软件R&D项目全局的因素,而技术只影响部分。到了90年代中期,软件管理工程差的问题依然存在,只有大约65,438+00%的项目能够按照预定的成本和进度交付。软件项目失败的主要原因是:需求定义不清;缺乏良好的软件开发过程;没有统一的产品研发团队;分包管理不严格;不总是注意改进软件过程;很少关注软件架构;软件界面定义不清,缺乏适当的控制;软件升级暴露了硬件的不足;关心创新但不关心成本和风险;军标太少,不完善。在与软件项目成功相关的诸多因素中,软件度量、工作量估算、项目计划、进度控制、需求变更和风险管理都与项目管理直接相关。因此,软件管理工程的意义是非常重要的。

与其他工程管理相比,软件管理工程有其特殊性。首先,软件是知识产品,进度和质量难以衡量,生产效率也难以保证。其次,软件系统的复杂程度超乎想象。由于软件复杂且难以度量,软件管理工程的发展还不成熟。

软件管理工程的发展从20世纪70年代开始经历了以结构化分析与设计、结构化评审、结构化程序设计和结构化测试为特征的结构化生产时代,到了90年代中期,以CMM模型的成熟和日益被市场接受为标志,进入了以过程成熟模型CMM、个体软件过程PSP和群体软件过程TSP为标志的以过程为中心的时代。基于90年代中期软件过程技术的成熟和面向对象技术、组件技术的发展,逐渐出现了软件开发的第三个时代,即软件的工业化生产时代。预计到2005年,可以实现软件的真正工业化生产。这一趋势应引起软件企业界和有关部门的高度重视,应尽快采取措施跟上世界软件发展的步伐。软件生产向注重改进软件过程的转移是全世界软件产业迟早要走的路。

软件过程改进是当前软件管理工程的核心问题。近50年来计算的发展使人们认识到,要高效率、高质量、低成本地开发软件,就必须改进软件生产过程。软件管理工程从20世纪70年代到90年代中期,经历了一条以过程为中心,以结构化分析与设计、结构化评审、结构化程序设计和结构化测试为基础,以过程成熟度模型CMM、个体软件过程PSP和群体软件过程TSP为标志,走向软件过程技术成熟和面向对象技术、组件技术发展的道路。软件生产向注重改进软件过程的转移是全世界软件产业迟早要走的路。软件业已经经历或正在经历“软件过程的成熟”,正在逐步过渡到“软件的产业化”。标准化的软件过程是软件产业化的必要条件。

软件过程研究如何组织人、技术和工具,通过有效的管理手段提高软件生产的效率,保证软件产品的质量。由此诞生了软件过程的三大流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE).

CMM/PSP/TSP,即软件能力成熟度模型/个体软件过程/群体软件过程,是美国卡耐基梅隆大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究小组于1987年发表的研究成果《承包商软件工程能力评估方法》。SO 9000质量标准体系于20世纪70年代首先被欧洲采用,随后在美国和世界其他地区迅速发展。目前,欧洲联盟积极推动软件质量制度化,提出了以下系列ISO9000软件标准:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4和ISO9002;;ISO/IEC 15504(SPICE)是国际标准化组织在1991遵循CMU-SEI的基本思想产生的技术报告ISO/IEC 15504-信息技术软件过程评估。

目前,学术界和业界公认由W.S.Humphrey领导的软件能力成熟度模型CMM是目前最好的软件过程,并成为业界事实上的软件过程工业标准。

二、CMM的发展

从65438到0987,以W.S.Humphrey为首的研究组发表了CMM/PSP/TSP技术,为软件管理工程开辟了一条新的道路。

CMM框架用五个演进的层次来评价软件生产的历史和现状:初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是可以持续改进的软件过程。任何一个单位实现的软件过程,可能一方面成熟,一方面不成熟,但整体上一定属于这五个层次中的一个。而且在一定程度内,成熟度也是有差异的。在不同层次的CMM框架中,需要解决具有不同层次特征的软件过程问题。所以一个软件开发单位首先需要知道自己是哪个层次的,然后才能根据这个层次的特殊要求来解决相关问题,这样才能事半功倍。任何软件开发单元只有致力于软件过程改进,才能从本级进化到下一级。而且,在从一个成熟的层次向更成熟的层次进化的过程中,那些在原有层次中已经存在的能力,必须保持并发扬光大。

软件产品的质量在很大程度上取决于构建软件时所使用的软件开发和维护过程的质量。软件过程是一个人员密集和设计密集的操作过程:没有训练有素的人员,将很难建立和支持软件过程的成功,改进工作也很难取得成效。CMM描述的框架是描述从随机混沌过程向训练有素的成熟过程演化的方法。

CMM包括“软件能力成熟度模型”和“能力成熟度模型的关键实践”两部分。“软件能力成熟度模型”主要描述了该模型的结构,并给出了其基本组成部分的定义。“能力成熟度模型的关键实践”详细描述了每个“关键过程方面”所涉及的“关键实践”。这里的“关键过程方面”是指一组相关的活动;每一个软件能力成熟度级别都包含了对成熟度级别至关重要的几个过程方面,它们的实现对成熟度级别目标的实现起到了保证作用。这些过程领域被称为成熟度级别的关键过程领域,而非关键过程领域的存在意味着它们在实现相应的软件级别能力成熟度模型的目标中不起关键作用。概括为:相互关联的软件实践活动和相关基础设施的集合。“关键实践”是指能够有效实现关键过程并使之制度化的最重要的基础设施和活动,以及在关键过程实践中起关键作用的原则、程序、措施、活动和相关基础设施的建立。关键实践一般只描述“做什么”,不规定“怎么做”。根据每个关键过程的五个“共同* * *特征”(实施过程的承诺、实施过程的能力、过程中要实施的活动、过程实施的测量和分析、确认实施的活动符合过程)对每个关键实践进行分类,并逐一进行详细描述。当一个关键过程的所有关键实践都达到时,认为该关键过程已经实现,当一个成熟度等级和它所包含的处于较低等级的所有关键过程都已经实现时,认为该等级已经达到。

如上所述,CMM将软件开发组织的能力成熟度分为五个级别。除了级别1,其他每个级别都由几个关键流程方面组成。每个关键流程方面都具有上述五个共同特征。CMM对每个关键过程给出了一些具体的目标。根据每个共同特征分类的关键实践是根据关键过程的特定目标选择和确定的。如果一个关键过程所涉及的所有关键实践都处理得当,那么该关键过程的目标就会实现,也就意味着该关键过程已经实现。这种成熟度分类的优点是,这些级别清楚明确地反映了过程改进活动的优先级和顺序。