软件工程与能力成熟度模型CMM论文

关键词: 软件可靠性 成熟度 交付使用 软件测试

软件工程与能力成熟度模型CMM论文(精选5篇)

篇1:软件工程与能力成熟度模型CMM论文

软件工程与能力成熟度模型CMM

北京航空航天大学软件工程研究所名誉所长

周伯生教授

中国计算机用户

20世纪70年代中期,软件工程管理引起广泛注意。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的失败项目是因为管理不善而引起的,而不是因为技术实力不够。他们进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。这个结论非常重要。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的.产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件工程管理的意义至关重要。

软件项目的特殊性

软件工程管理和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都较难度量,生产效率也较难保证。其次,软件系统复杂程度也是超乎想象的。例如,宇宙飞船的软件系统源程序代码多达万行,如果按过去的生产效率一个人一年只能写1万行代码的话,将需要2000人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。

CMM,逐步的成熟

美国CarnegieMellon大学软件工程研究所(CMU/SEI)主持研究与开发的CMM/PSP/TSP技术,为软件工程管理开辟了一条新的途经。CMM是英文“CapabilityMaturityModel”的简称,意为能力成熟度模型。CMM的本质是软件管理工程的一个部分。根据软件生产的历史与现状,CMM框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。在某个层次内部,也有成熟程度的区别。在一个较低层次的上沿,很可能与一个较高层次的下沿非常接近,此时由这个较低层次向该较高层次进化也就比较容易。反之,在一个较低层次的下沿向较高层次进化,就比较困难。在CMM框架的不同层次中,需

[1][2][3]

篇2:软件工程与能力成熟度模型CMM论文

中国计算机用户

20世纪70年代中期,软件工程管理引起广泛注意。当时美国曾立题专门研究软件项目做不好的原因,发现70%的失败项目是因为管理不善而引起的,而不是因为技术实力不够。他们进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。这个结论非常重要。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件工程管理的意义至关重要。

软件项目的特殊性

软件工程管理和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都较难度量,生产效率也较难保证。其次,软件系统复杂程度也是超乎想象的。例如,宇宙飞船的软件系统源程序代码多达万行,如果按过去的生产效率一个人一年只能写1万行代码的话,将需要2000人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。

CMM,逐步的成熟

美国Carnegie Mellon大学软件工程研究所(CMU/SEI)主持研究与开发的CMM/PSP/TSP技术,为软件工程管理开辟了一条新的途经。CMM是英文“Capability Maturity Model”的简称,意为能力成熟度模型。CMM的本质是软件管理工程的一个部分。根据软件生产的历史与现状,CMM框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。在某个层次内部,也有成熟程度的`区别。在一个较低层次的上沿,很可能与一个较高层次的下沿非常接近,此时由这个较低层次向该较高层次进化也就比较容易。反之,在一个较低层次的下沿向较高层次进化,就比较困难。在CMM框架的不同层次中,需要解决带有不同层次特征的软件过程问题。因此,一个软件开发单位首先需要了解自己处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题,这样才能收到事半功倍的软件过程改善效果。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化,即软件过程的进化是渐进的,而不能是跳跃的。而且在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具备的能力还应该得到保持与发扬。

CMM家族包括CMM集成产品集、SACMM(软件获取能力成熟度模型)、SECMM(系统工程能力成熟度模型)和IDEAL模型。其中CMM集成产品集为工业界和政府部门提供了一系列集成产品,以支持软件过程和产品的改善;SACMM用于单位获取和采购基于软件的应用系统的软件过程,美国、陆军、海军和一些商用单位都已采用SACMM对他们的获取能力进行评估;SECMM是描述一个单位为保证实现一个好的系统工程的主要元素;而IDEAL模型则是一个单位用于启动、规划和实现过程改善措施蓝图的模型,概括了建立一个成功的过程改善项目的必要步骤,其中I代表Initiating(启动)、D代表Diagnosing(诊断)、E代表Establishing(建造)、A代表Acting(措施)、L代表Learning(学习)。

美国曾在1995年做过软件产业成熟程度的调查,发现在美国的软件产业中,CMM成熟度等级为初始级的竟占70%,其特征是软件开发过程不能预测,风险度高;为可重复级的占15%,其特征是软件开发过程需小心谨慎方能避免失败;为定义级的所占比例小于10%,其特征是软件开发过程相当稳定,进展顺利且可以预测;为管理级的所占比例小于5%,其特征是软件过程预测准确、值得信赖;为优化级的所占比例小于1%,其特征是软件过程能持续改善。

CMM还需绿叶配

需要注意的是,并不是实施了CMM,软件项目的质量就能有所保障。CMM不是万能的,它的成功与否,与一个组织内部有关人员的积极参与和创造性活动是密不可分的,而且CMM并未提供实现有关子过程域所需要的具体知识和技能。因此,个体软件过程PSP(Personal Software Process)也就应运而生。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。根据对参加培训的104位软件人员的统计数据表明,在应用了PSP后,软件中总的缺陷减少了58.0%,在测试阶段发现的缺陷减少了71.9%,生产效率提高了20.8%。PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段要引发35个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。PSP的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。

仅有CMM和PSP还是不够的,因此,CMU/SEI又在此基础上提出了群组软件过程TSP(Team Software Process)的方法。TSP指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍始终以最佳状态来完成工作。TSP实施集体管理与自我管理相结合的原则,最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品;所采用的方法是对群组软件开发过程的定义、度量和改进。实施TSP的先决条件有3条:首先,需要有高层主管和各级经理的支持,以取得必要的资源;其次,项目组开发人员需要经过PSP的培训并有按TSP工作的愿望和热情;第三,整个单位在总体上应处于CMM二级以上。在实施TSP的过程中,首先要有明确的目标,开发人员要努力完成已经接受的委托任务。在每一阶段开始,要做好工作计划。如果发现未能按期按质完成计划,应分析原因,以判定问题是由于工作内容不合适或工作计划不实际所引起,还是由于资源不足或主观努力不够所引起。开发小组一方面应随时追踪项目进展状态并进行定期汇报,另一方面应经常评审自己是否按PSP的原理工作。开发人员应按自己管理自己的原则管理软件过程,如发现过程不合适,应及时改进,以保证用高质量的过程来生产高质量的软件。项目开发小组则按集体管理的原则进行管理,全体成员都要参加和关心小组的规划、进展的追踪和决策的制订等项工作。

篇3:软件工程与能力成熟度模型CMM论文

目前各级政府在“产业结构调整、加强技术创新、健全法制完善政策”等方面加紧进行宏观调控。而要达到节能减排的规划目标,作为社会重要构成的企业组织,是节能减排的终端单位,也起着举足轻重的作用。

目前,关于节能减排的研究文章大多数是集中在意义、视点、对策、建议、措施等“议论”形式的文献,以及具体行业的节能减排的方法和技术,企业节能减排缺乏一个对企业的节能减排能力进行评价和分析的依据或准则,因此,可采用过程能力成熟度的观点,通过建立基于能力成熟度模型的企业节能减排能力模型,构筑起较为全面的框架体系,对企业节能减排管理过程提供动态管理机制,以控制节能减排的质量。

1 CMM简介

CMM能力成熟度模型(capability maturity model,CMM),最早仅表示软件能力成熟度模型(capability maturity model for software),是由美国卡内基梅隆大学的软件工程研究所(software engineering institute,SEI)受美国国防部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进[1,2]。CMM将软件企业产品开发过程成熟度分为5个等级,提出了由101个问题构成的提问表,根据这些问题的打分综合评估软件企业达到的等级,并可分析指出需改进的主要差距[3]。CMM的经典图示,如图1、图2所示。

后来,SEI根据这个模型框架又开发出应用于其他领域的能力成熟度模型,形成CMMs能力成熟度家族。如人力资源成熟度模型、项目管理成熟度模型和企业环境管理成熟度模型等等。此时,为了区分不同领域的成熟度模型,将软件能力成熟度模型缩写改为SW-CMM。但CMM即成熟度的能力持续改进的思想在各个领域得到了广泛的应用[4,5,6,7,8]。

2 ESER-CMM模型结构

根据上述成熟度模型理论,结合企业节能减排管理现状,提出企业节能减排能力成熟度模型(energysaving and emission reduction capability maturity model,ESER-CMM)。

ESER-CMM模型框架,如图3所示。

2.1 ESER-CMM等级

通过对不同行业的58个企业进行走访,调研这些企业对节能减排所持的态度,了解企业中是否进行切实有效的节能减排的实践,对这些实践的形式以及施行的范畴、执行力等情况也有一定的了解。发现从节能减排在一个企业中的实践的范畴这个视角,能够将不同企业节能减排实践的水平做比较清晰的划分。调查结果显示,有一部分企业虽有耳闻“节能减排”政策,但是在企业中并没有这方面的实践,企业的运营方式还是资源粗放型的。更多的企业开始接纳节能减排的理念,但是,为了不影响整体的运行情况,只是采取一些非常规式的项目来尝试“节能减排”。大部分企业从项目式的节能减排实践中尝到了“甜头”,就逐渐将“节能减排”的理念应用于其主要业务的流程之中,使之与企业的常规运作并驾齐驱。还有一部分企业已经在全企业的范围内推广节能减排的理念与实践,将节能减排发展成了公司的一种文化。另外,还有少数企业将节能减排推广到了“价值链”的高度,不仅保证自身企业的节能减排,还与合作的上下游企业共享节能减排技术,并共同促进,这些企业已不将节能减排视作负担或者任务,而是促进其持续优化发展,成为企业的一种产业,节约企业成本的同时树立良好的企业形象。

这些表明:根据企业节能减排能力成熟度情况,可以用等级来表述,总共分成5级:初始级、项目管理级、业务流程管理级、企业全面节能减排级、价值链持续改进级。

初始级,企业的生产与发展是环境粗放型的,企业中没有节能减排的理念,对提高能源利用率、减少污染排放所带来的企业效益几乎没有认识。

项目管理级,因为外在压力,如国家的工艺标准、各地区政府的环保指标等,企业开始认识到节能减排的必要性,有关的领导或者主管有意识地带动员工进行节能减排的挖掘和试验,成立了项目小组。企业的节能减排活动以项目的形式散落在生产或服务过程中不同的环节点上,例如某个工艺,某种操作等。然而,非连续性的节能减排活动以及非量化的管理方式是这一等级的缺陷。

业务流程管理级,如果说项目管理级是点分布式的,那么业务流程管理级就要把点连接成线,节能减排实践在企业的主要生产和服务部门连贯有序地开展起来,贯穿于整个部门业务流程的各个环节中,主要包括节能、减排、污染末端处理。同时,建立了节能减排非正式部门,负责管理与实践企业的节能减排工作整个过程。

企业全面节能减排管理级,建立节能减排正式部门,高层领导对节能减排的高度重视,对节能减排工作进行量化管理,将节能减排实践能力纳入对员工的考核指标体系当中,鼓励节能减排实验与创新。企业致力于节能减排信息化工作,并建立知识库系统,全企业员工共享节能减排信息,交流心得体会。企业注重构建“节能减排文化”,对员工进行节能减排知识培训,并在企业内举办知识宣传各项活动;注重源头预防管理,提高能源利用率。

价值链持续改进级,企业节能减排实践从企业内部扩展到企业外部,深刻认识到节能减排是企业效益创造的关键点,更多的是收获,而不仅仅是代价。企业通过环保活动构筑良好的社会形象,提高企业的社会效益。企业与上下游合作企业共同构筑绿色环保供应链。企业致力于节能减排技术创新,使环保实践得以持续改进与发展。企业主动承担社会污染物的回收利用,为全社会节能减排事业做出贡献,同时为本企业带来可观的经济效益。

2.2 ESER-CMM的KPA和KP

每个等级都由若干个KPA(关键过程域)构成,这些KPA将企业的过程改进努力汇聚到组织内部的5个功能区域。在这些区域中,需要制定管理过程。在致力于构造与设计组织内部的KPA时,CMM给予了极大的灵活性。但是有一些元素却是应当到位的,这些元素被成为关键实践(key practice)。可以将这些实践设想为一系列行为,组织采用这些行为以使过程成熟起来。每一个KPA都由5种关键实践域(KPA)组成。在每一个区域之下,又可能需要进行若干活动。这5种关键实践域为:执行约定、执行能力、执行的活动、测量与分析、验证实施。这个过程显著地体现了持续改进的管理思想。

模型的构建过程主要是以节能减排的相关知识和理论做依据,再结合针对几十家企业做的节能减排调研,并且听取了多位专家的建议之后,进行总结、分析、筛选,得出了不同企业在进行节能减排实践时的异同之处,初步将节能减排的能力成熟度等级划分成“初始级、项目管理级、业务流程管理级、企业全面节能减排级、价值链持续优化级”5个等级。并根据一定的目标在5个等级中初拟关键过程域、目标,以及各个关键过程域的实践。在本研究中,各个等级中不同KPA的kp中约定从书面的允诺来分析,能力从管理人员、协作人员、资金及设备、技术的支持来分析,活动从具体做出的实践来分析,测量是对活动的度量或者数据记录,验证是对活动到位与否以及人员的能力符合与否的分析。

初拟的KPA和kp的规模(即个数)为304个,最大程度地涵盖了一个企业节能减排实践的方方面面。为使研究更具科学性,对20代表企业的160位中层干部与重要职工进行广泛的意见征求,用专家问卷调查的形式来对要素进行评判,将各个要素分成“非常重要,重要,一般,不重要,非常不重要”5种情况,分别对应“5,4,3,2,1”的分值。对问卷的最终结果进行分析,要素的平均得分超过3的予以保留,删除平均得分低于3的要素。剔除的要素有11个,经过分析,主要是由于被调查者认为这些要素的语义与其他的某些要素有重复,因此,根据专家的评审意见,予以剔除。最终得出的节能减排CMM的关键过程域KPA共16个,如表1所示,关键实践共293个,数量庞大,在此处无法如数列出,只给出统计数据,如表2所示。

3 ESER-CMM等级评价

按照以上的描述,企业节能减排能力成熟度等级总共分成5级,并且必须先达到较低的等级才能达到较高等级。为了评判企业到底属于哪个等级之上,本研究在纵观各种CMM的文献,得到一个切实可行的企业节能减排能力成熟度等级的评估算法。

3.1 模型的形式化描述

首先要对模型中的信息用一定的方式进行定义。用EL[i]表示ESER-CMM中的第i等级,用KPA[i,j]表示第i等级中的第j个过程域,用kp[i,j,k]表示第i个等级中的第j个关键过程域中的第k个关键实践。

模型由5个等级构成,表示为

除第一级以外,其余等级表示为若干关键过程域的构成,表示为

对应上述的模型中的各个要素,总结出的数据,如表3所示。

3.2 模型评估标度与算法

模型的评估标度主要从实践性能标度和测试能力标度进行讨论。

1)实践性能标度。用是/否表示kp的存在性及其性能,如表4所示。标度2表示规定范围kp的可裁剪性。在具体评估过程中常认为标度1和标度3等价.用rkp[i,j]标识处在第i个等级上的第j个kp的性能评定。当rkp[i,j]=4或rkp[i,j]=2时认为该kp通过评估。

2)ESER-CMM能力标度。企业节能减排能力成熟度模型中每个等级的性能指示,如表5所示。根据以上企业节能减排能力的等级,可以得到如表5所示的ESER-CMM能力的标度。其中Nkp[i]表示第i级中共有的kp数,通过阈值Pkp[i]表示要达到第i级至少需要满足的kp数,等于该级的kp数的80%。

用SAT kp[i](其中SAT是satisfy的缩写)表示等级i中通过评估的kp数,则达到等级i必须满足SATkp[i]≥Pkp[i]=Nkp[i]*80%。

总上所述,借鉴文献[9]的思想,对企业节能减排能力成熟度的评估算法如下。

4 结语

构建企业节能减排能力成熟度模型,对企业节能减排能力水平进行科学的评估,企业能明确节能减排管理自身所处的状态,也明确了进一步努力的方向,推动企业节能减排水平的持续改进。因此,该模型的实施对提升我国企业节能减排能力有所帮助,同时也为节有减排能力的评估提供借鉴。需要指出的是,只是构建了一个节能减排能力成熟度的基本框架,有许多地方需要进一步的深入和细化,需要在今后的研究和实践工作中进一步地充实和完善。

参考文献

[1]ALAN M C.Simulation in support of CMM-based processimprovement[J].Journal of Systems and Software,1999,46(2/3):107-112.

[2]美国卡耐基美隆大学软件工程研究所.能力成熟度模型(CMM):软件过程改进指南[M].刘孟仁,等译.北京:电子工业出版社,2007:1.

[3]JAMES J J,GARY K,HSIN-GINN HJ,ACK H.An exploration ofthe relationship between software development process maturityand project performance[J].Information&Management2,004,41(3):279-288.

[4]曾伟,王良.基于成熟度模型(CMM)的创新型企业文化研究[J].科学学与科学技术管理,2007(3):157-160.

[5]吴继红,陈维政,吴玲.基于P-CMM的人力资源管理系统评价方法[J].四川大学学报:哲学社会科学版,2003(3):45-50.

[6]李瑞祥,李帮义.基于People CMM的人力资源战略实施框架研究[J].商业研究,2005(22):5-8.

[7]洪晓军,汪小洲.HR-CMM:高校师资管理能力改进新途径[J].现代教育科学,2006(6):105-108.

[8]陈军冰,艾萍,许长新.基于CMM的科研过程管理模型研究[J].科技管理研究,2005(2):87-90.

篇4:CMM软件能力成熟度框架分析

【关键词】软件能力成熟度度模型;软件过程;软件过程能力;软件过程成熟度;软件过程行为

1.引言

随着软件业的发展,软件规模的不断扩大,软件开发方法和技术的不断更新,而相应的软件生产率和软件开发质量却未得到有效提高,软件产品时常不能按时完成,软件生产预算超支,而交付客户使用的软件产品也由于各种原因产生的错误无法克服。软件能力成熟度模型(以下简称CMM模型)就是为了应对这一软件业危机而提出的。

2.CMM简介

美国的Walter Shewart于上世纪30年代发表了软件开发质量控制统计成果,随后卡莱基.梅隆大学软件工程研究所将这套质量控制方法改造整理成为一套能力成熟度框架,并于1990年由SEI公布了CMM模型的第一个版本。CMM的核心是把软件开发视为一个过程,依据这一原则对软件开发和维护进行过程监控和研究并建立起一套框架,使得软件开发组织可以依据框架对项目管理和项目工程进行定量控制和能力评估,从而最终达到使软件的研发过程更加科学化、标准化的目标。随着CMM模型在软件开发中应用,项目开发中的风险得到减低,开发时间大大缩短,开发成本得以减少并大大降低软件产品中的错误发生率。

3.CMM框架

软件生产过程理论告诉我们,软件质量往往取决于软件过程的能力水平,以及在软件过程中所采用的技术适应该过程的成熟度水平。软件过程是一个可度量的、可控制的、可以不断改进的过程。

CMM强调应对软件过程进行连续的改进,在这一改进过程中形成的分级结构——CMM框架,将提供不同等级中的目标和核心领域来规范软件开发过程并为过程的评论和改进提供客观标准。CMM框架共分为5个级别,分别是初始级、可重复级、定义级、管理级和优化级,它们由低到高的代表了不同等级的软件开发过程成熟度能力。

1)CMM初始级

个人英雄主义的天下,绝无可重复性,也无甚积累,项目的执行是随意和混乱,软件开发过程未经定义,开发组织不具备稳定的软件开发与维护环境,面对开发中所遇的各类具体实施问题往往由编程人员凭个人经验与主观感觉应对。在这一级别软件开发过程是不可重复、不可预见、不成体系以及不可积累及不稳定的。

2)CMM可重复级

确定基本的软件生产管理和控制,能针对特定软件项目制定开发过程及管理措施,能将以往项目开发经验用于类似的新项目,有一套不同的软件生产过程提供不同项目选择。软件生产成本和工期能得以客观预测并被有效追踪,过程标准在项目实施中能保证被遵循。项目的开发是有计划的,有控制的,并可重复的行为。在此级别下的软件开发过程是初步实现基本的可管理和可复现。

3)CMM定义级

软件开发过程在整个开发组织范围内得以确立。有一套软件过程规则对所有软件工程和管理行为给与指导。组织内部设置了软件工程小组负责过程的制定,修改,调整和监督。有关软件工程及管理工程的过程文件被编制并成为企业标准,所有项目都必须按照这些标准过程或经调整后的项目过程来实施。软件过程在此得到的稳定的,重复的和持续性的应用,使开发風险大为下降。总而言之,第三级的主要特点在于软件过程已被编制为各个标准化过程,并在企业范围内执行,从而使软件生产和管理在“可重复级”的基础上更具可重复性、可控制性、稳定性和持续性。

4)CMM管理级

第四级的过程是量化的过程,所有项目和产品的质量都有明确的定量化衡量标准,软件也被置于这样一个度量体系中进行分析、比较和监控,所有定量指标都被尽可能地详细采集并描述,使之可具体用于软件产品的控制之中,软件开发过程成为一种真正的工业化生产行为,由专门的软件过程数据库收集和分析软件过程中的各类数据并以此为对软件活动的质量评估的基准。

在此级中,所有的软件过程和产品都树立了定量的目标并被“定量”的管理,使软件组织的能力可以很好地预测。项目组成员对整个过程及其管理体系有高度一致的理解并已学会运用数据库等方法定量地看待和理解软件工程。本级主要在上一级“定义级”基础上实现开发过程的定量化和可预测化。

5)CMM优化级

第五级的软件过程应是持续改进的过程,有一整套有效机制确保软件工程误差接近最小或零。每一个过程在具体项目的运用中,可根据周边和反馈信息来判断下一步实施所需的最佳过程,以持续改善过程使之最优化。因此不断调整软件生产过程,按优化方案改进并执行所需过程。

总之,优化级就是可以根据过程中反馈信息来及时完善下一步的执行过程,通过不断调整使软件开发过程以求达到最佳。

从上面可以看到,五个CMM级别描述了软件开发过程管理从无序到基本有序、到过程定性管理、再到过程定量管理、最后到持续反馈改进的渐进过程,它是一个循序渐进的累进,从第二级到第五级,每一级都需要在满足前一级的基础上实施才可能达到。

4.结论

实施CMM对提升软件过程能力起着至关重要的作用,CMM过程本身就是对软件开发过程发展的一个完整而准确的描述,通过实施CMM可以更好的规范化软件生产和管理的流程,使软件开发组织更加规范化。企业通过CMM认证不是为了满足客户的要求,而是为了自身更好的发展,为进一步扩大规模打下良好基础。近年来国内许多著名的公司,诸如:华为、联想、鼎新等涉及软件开发的企业已经通过了CMM的相关认证,预计未来两三年,软件业会出现一个CMM认证的高潮,这是大势所趋,也标志着我国软件业开始走上标准化、规范化的国际发展道路。

参考文献

[1]杨一平等著.软件能力成熟度模型CMM方法及其应用[M].人民邮电出版社,2009,4:35-60.

[2]Joesph Raynus著.邱仲潘等译.CMM软件过程改进指南[M].电子工业出版社 2007,3:85-110.

篇5:软件工程与能力成熟度模型CMM论文

1 传统测试模型(V模型)介绍

在早期的软件测试模型中,通常把测试过程作为需求分析、概要设计、详细设计、编码完成之后的一个阶段。尽管有时候软件测试占用开发周期内很长的一段工作时间,但仍被视为整个软件过程的收尾工作,而并非主要工作。

测试模型作为早前测试模型(瀑布模型)的改良,清楚的描述了基本的开发环节以及测试环节、和各个环节之间的先后关系,并且阐明了底层测试和上层测试的职责:底层测试为了保证代码的质量,上层测试的目的在于确保软件产品能够满足客户需求。

测试模型指出,单元和集成测试是为了验证程序设计,开发人员和测试人员应当检测程序的执行是否满足功能说明书的要求;系统测试应当检测系统设计,检测系统级别的功能、性能、可靠性、兼容性等软件质量因素是否达到初始设计或者用户要求的指标;最后由测试人员和用户共同进行验收测试,以软件需求说明书为基础进行测试,以求软件产品从整体角度能够达到用户的需求。

测试模型仅仅针对已经完成的程序对象进行错误的查找,却没有将需求分析、系统设计等活动的测试工作列为测试范畴。由于存在这样的缺陷,V模型无法在软件开发过程的早期发现需求或者设计上的存在的种种缺陷,违背了越早发现错误越对软件开发有利的原则。与此同时,V模型将测试工作严格的划分为独立的、线性的几个活动环节,各个环节间的依赖关系相对过高,比如只有进行单元测试之后才能进行集成测试。这样的观点也阻碍了一些需求或者设计缺陷的发现。

2 基于CMMI的软件测试模型改进思路

CMMI(Capability Maturity Model Integration)即能力成熟度集成模型。它是一个集成的框架,这个框架有两个功能:第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。

2.1 软件评价与测试在整个软件生命周期中的作用

评价是对软件开发过程中产生的各种系统规格和模型进行的验证活动。测试则是一种基于机器的对代码执行、确认的活动。许多对于评价和测试的定义都相对狭义,一般是指对代码执行物理测试用例的活动。在软件厂商的生产环节中,很多公司甚至直到编码已经开始时才指定或安排测试人员。更有甚者,他们将这一活动的范围仅仅限于功能测试,也许有时做一下性能测试。这种观点在目前的CMMI有关评价与测试的描述中被进一步强调,这种软件开发活动方式只明确地提到了功能测试,其他类型的测试只是用一句非常含糊的话来指代:“保证软件满足软件需求”。

CMMI只是进一步将评价和测试的部分思想进行融合,用一个特殊的评价技术来代替,这个技术就是CMMI中的一个KPA,同行评审。这也意味着,在提交代码之前,唯一可干的评价就是同行评审,且已经足够了。

事实上,对于一件事情的评价和测试的步骤包括:定义成功准则、涉及覆盖这些准则的用例、执行用例、验证结果,验证所有的内容都已覆盖。同行评审只是提供了一个基于纸面的测试机制。它既不能从根本上提供成功准则,也不能提供任何正式的机制以支持用例定义以用于同行评审中。同行评审本质是主观的,因此,基于误解使程序员将缺陷引入产品,而到同行评审时,基于同样的误解,也使得人们无法发现这些缺陷。

评价和测试的一个相对坚固的内涵范围必须包括项目在开发周期每一个阶段的每一个交付产品。它也必须考虑每个交付产品的每一个预期特性。而且必须包括每一个评价或者测试步骤。

2.2 CMMI对软件测试技术的改进指导

CMMI主张在开发过程中注重对过程和产品的度量,以量化的形式对过程进行相应的评估和改进。CMMI将测量和分析作为一个单独的过程域,充分体现了对开发过程中的测量技术的重视,该过程域的目的就是开发和维持度量能力,以便支持对管理信息的需要。

测量和分析过程域共有三个目标:

目标一:协调测量和分析活动。CMMI给出了四个方面的特定实践,它们分别是确定测量对象,建立测量目标;详细说明度量值,以处理测量目标;规定数据收集和存储规程,说明如何获得并存储测量数据;规定分析规程,说明如何对度量数据进行分析和报告,并且安排优先顺序。该目标中所针对的测量对象包括组织所开发出的软件产品、半成品以及过程产品,以及对开发过程本身的度量。因此,需要在测量和分析过程中引入统计过程控制等理论方法,提供对过程度量和改进的支持。

目标二:提供度量结果,以便处理信息需要和目标。为实现这一目标,模型中也给出了以下几方面的特定实践:收集度量数据,即获得制定的度量数据;分析并解释度量数据;管理并存储度量数据、度量规范和分析结果;通报分析结果,向所有的干系人报告测量和分析活动的结果。在这一目标中,主要关注的是对测量结果的分析和使用。基于CMMI的集成化过程改进和评估,提出了建立开发过程数据库的思想,作为组织进行过程改进的基础。而建立过程数据的过程是对测试和度量数据的积累和存储色过程。从这一点来说,在开发过程中开展软件测试以及针对开发过程的度量,是建立过程数据库的必要步骤。

目标三:共性目标,即将测量和分析活动制度化为可管理的过程。这一目标主要关注的是对软件测试和过程度量活动的管理以及制度化。针对这一共性目标,CMMI给出了10个共性实践。首先要求组织建立方针,为策划和执行“测量和分析”过程提供组织级的支持;其次,在执行能力方面,组织应制定测量和分析过程计划;提供必要的资源;分配相应的责任;并且对人员进行培训。第三,为了指导该过程的实施,组织应该将测量和分析过程指定的工作产品置于配置管理的适当层次;确定与过程相关的干系人并使之介入;同时还要对测量和分析过程进行监督和控制。最后,作为对测量和分析活动的验证实施,应该评价测量和分析过程以及过程的工作产品和服务的遵循情况;同时,由高层管理者审查测量和分析过程的活动、状态和分析结果,并解决相应的问题。

从以上分析可以看出,CMMI模型主要从以下三个方面扩充的传统的软件测试技术:

1)从单纯的对软件产品的测试活动,扩展为软件产品的测试和开发过程的度量。

这一方面主要体现在过程度量对软件测试的依赖和应用。对开发过程进行度量,需要利用对软件产品、半成品以及工作产品的测试结果,从而建立对软件产品缺陷对开发过程的可跟踪性。从这一点来说,对开发过程的度量,实际上也就是针对软件产品的测试活动的扩展,其与传统的软件测试的不同之处就在于关注对软件测试结果数据的分析和利用,将测试数据有效转换成为能够标识过程缺陷的统计数据。

2)软件测试由原来的事后测试行为发展为全过程测试和分析,成为一种缺陷预防的有效方式。

统计技术方法的应用,将传统的软件测试活动扩展为一种全过程测试行为。从质量工程的角度来说,这是一种质量保证思想的转变。传统的软件测试,只针对软件产品而开展,找到缺陷之后再加以改正和修补;而针对开发全过程所开展的软件测试和过程度量,则注重根据对测试数据的统计分析结果,来判断软件产品的未来质量趋势,并提前予以控制和预防。与传统的软件测试相比,全过程测试不仅可以有效降低产品的质量风险,而且还可以提前对软件产品缺陷进行规避,这缩短了对缺陷的反馈周期和项目的开发周期,而且也降低了对软件产品的维护费用。

3)软件测试与开发过程的其他阶段不再是串行工作方式,而是与整个开发过程并行进行。

传统测试模型相比,CMMI模型中所描述的软件测试和过程度量工作与整个开发过程是并行进行的,是一种基于并行工程的测试和度量行为。基于并行工程开展的软件测试活动,存在于软件生命周期的各个阶段,其基本特点是以质量保证和客户要求为核心开展对软件产品和开发过程的测试和度量,力争将缺陷控制在软件开发过程的每一个阶段,从而可以有效缩短开发周期,降低质量风险,并且可以及时吸取经验教训,提供对过程改进的支持。这也体现了CMMI模型对并行工程思想的一种支持和应用。

3 总结与展望

该论文通过对传统测试模型的分析以及对CMMI的研究,提出了软件测试方法、模型的改进思路。但仍需对以下问题机型研究:1)对敏捷软件过程进行研究,分析敏捷软件过程的特点;2)以敏捷软件过程为指导思想,设计一套相关的测试模型;3)将该模型应用日常测试工作中,通过量化的分析,得出其优越性。

摘要:当前软件企业面临着用户需求日益复杂、软件产品架构日益扩大等问题。这些问题向软件测试提出了更高的要求。该文对传统测试模型进行了介绍和分析。基于以上工作,以CMMI的标准为指导对软件测试流程以及测试模型的改进提出了思路和方法。

关键词:软件测试,软件测试模型,CMMI

参考文献

[1]尹平,许聚常,张慧颖.软件测试与软件质量评价[M].北京:国防工业出版社,2008.

[2]刘易斯,维拉皮莱.软件测试与持续质量改进[M].陈绍英,译.北京:人民邮电出版社,2008.

[3]阿赫,阿姆斯强,克劳斯.标准CMMI过程改进评估方法(SCAMPI)精粹[M].北京:电子工业出版社,2008.

[4]Ahern D M,Clouse A,特纳.CMMI精粹——集成化过程改进实用导论[M].陈波,译.2版.北京:清华大学出版社,2005.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:基于模型分析的继电保护系统可靠性技术研究 下一篇:基于ARFIMA模型的尼罗河年度流量的研究