时间:2023-04-12 15:22:00
软件能力成熟度模型(C印abilityMatuirtyModel,CMM)4~为衡量一个软件企业的软件开发能力己经被大多数软件企业所接受。在论述CMM与CMMI的基础上,介绍了国防专用软件CMM的概念、框架以及CMM二级的目标和要求。及其在软件开发中的应用。
论文关键词:软件能力成熟度模型;软件项目管理
1软件项目管理概述
1.1软件项目管理的概念
从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力.企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟。企业越能够稳定发展(即减小开发风险)。
软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质地完成软件交付用户使用。
软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。
1.2 CMM与CMMI
1.2.1 CMM的由来
CMM是软件过程能力成熟度模型(capacityMatuirtyMod—e1)的简称,是卡内基一梅隆大学软件工程研究院为了满足美国联邦评估软件供应商能力的要求,于1986年开始研究的模型.并于1991年正式推出了CMM1.0版。CMM自问世以来备受关注,在一些发达国家和地区得到了广泛应用,成为衡量软件公司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。
CMM的评估结果是目前世界上公认的软件产品进入国际市场的通行证。中国软件要国际化,软件企业必先规范化和规模化.提高软件过程能力,CMM为企业达到目的指出了一条有效途径。CMM也为应用单位和管理部门提供了选择,同时给予了管理软件承包商一种良好的手段。
1.2.2 CMM与IS09000
国际标准化组织的质量管理标准IS09000与CMM均可作为软件企业的过程改善框架。CMM仅仅适用于软件行业。而IS09000的适应面更广,实际上IS09000:2000版标准和CMM遵循共同的管理思想,IS09000:2000版(ISO9001)标准已经彻底解决了94版的制造业痕迹较重、标准按要素描述难于在软件行业实施的问题。
就内容来讲,IS09001不覆盖CMM,也不完全覆盖IS09000。一般而言.通过IS09001认证的企业可达到CMM2级或略高的程度,通过CMM3级的企业只要稍做补充,就可较容易地通过IS09001认证。粗略地说,IS09001近似于CMM2.5级。
1.2.3 CMMI
CMMI是卡内基梅隆大学2001年9月推出的比较成熟的系统工程和软件工程的集成成熟度模型(CapabilityMatuirtyMod.elIntegrated)。与原有的能力成熟度模型类似,CMMI也包括了在不同领域建立有效过程的必要元素,反映了业界普遍认可的“最佳”实践:专业领域覆盖、软件工程、系统工程、集成产品开发和系统采购,集成的产品和过程开发以及采购,主要是配合软件工程和系统工程的内容采用。
CMMI的阶段表达方式继承了CMM的思想方法。将所有的过程域依照5个成熟度等级来组织,从低到高分别为:初始级(Initial,第1级)、管理级(Managed,第2级)、定义级(Deifned,第3级)、定量管理级(QuantitativelyManaged,第4级)和优化级(Optimizing,第5级)。如图l所示:
1.3国防专用软件CMM二级介绍
国防专用软件要求其具有极高的保密性,可靠性和有效性。国防专用软件CMM二级实施规范,定义了软件工程化管理涉及到的过程、活动与任务,是实施贯彻国防专用软件能力成熟度二级的方法、规范与组织管理的总纲.也是基于CMM项目管理系统的基础和依据。
国防专用软件能力成熟度模型将组织的软件能力成熟度分为5个等级,分别是:1级称为初始级,2级称为可重复级,3级称为已定义级,4级称为定量管理级,5级称为优化级。如图2所示:
具体介绍如下:
初始级(1级):从事软件项目工作人是的能力决定软件项目性能;解决问题的模式是“救火”式的;软件项目性能不可预测;软件组织面临的主要问题是管理问题,而非技术问题;软件管理完全不透明,仅通过某些杂乱无章的过程生产软件。初始级无关键过程域。
可重复级(2级):建立了有效的软件项目管理;软件项目管理过程被文档化并得到遵循:有一个组织方针来指导项目建立管理过程;能重复以前项目的成功实践;项目管理到位。可重复级的关键过程域为需求管理、软件项目策划、软件项目跟踪与监督、软件质量保证、软件配置管理、软件子合同管理。
已定义级(3级):它建立在软件项目管理的基础之上;为了控制一个过程,过程就必须是已定义的、已文档化的和已被有关人员理解的;组织已建立了一整套标准的软件过程,并且组织中的每个人和项目均能照此执行,已按妥善定义的过程管理,过程中的角色和职责已被理解;整个软件过程中软件产品的生产是可视的;除了里程碑处外,在各开发阶段中设置了更多的检查点。已定义级的关键过程域为同行评审、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义、组织过程焦点。
已管理级(4级):运用统计过程控制的原理,阐述过程变化的具体原因。产品和过程被定量地管理,管理决策有客观测量为基础;管理者能在定量边界内预测性能:而且可以进行交互控制。已管理级的关键过程域为软件质量管理与定量过程管理。
优化级(5级):识别并消除软件过程性能差的长期原因;持续不断地改进软件过程,关注连续过程改进,有纪律的过程改进已成为日常工作方式。优化级的关键过程域为过程更改管理、技术改革管理、缺陷预防。
2基于CMMI的软件项目管理
2.1需求管理
软件项目管理的结构体系如图3所示:
软件项目的开发必须以客户的需求为指向.需求管理目的在于使开发的方向和客户一致。对客户本身的真实需求有统一的认识和评价。开发方和客户方共同对《产品需求规格说明书》进行评审,双方对需求达成共识后作出承诺,同时开发方和需求者共同对《需求文档》进行评审,设法理解需求的含义。从各个项目参加者处求得对需求的承诺.共同评估各项需求对承诺的影响,并记录对需求的承诺。这一过程完成的文档包括《需求文档》和《需求管理计划》。
主要步骤有如下几步:
(1)项目经理先在项目内部组织人员进行非正式的需求评审,以解决明显的错误和分歧。
(2)邀请同行专家和用户一起评审需求文档,尽可能地使需求反映客户的真正意愿。
(3)开发方和客户对需求文档审核后签字,以产生法律效力。
2.2软件项目计划
为进行软件工程活动和软件项目管理所制定的合理的计划,包括预测、项目投入和工期,确定必要的承诺和执行等,经过软件项目计划过程后,我们将得到《项目估计表》、《项目生命周期文档》、《总体项目计划书》、《项目子计划》等文档。软件计划内容包括以下计划,但每项计划可分立也可合为一体:软件开发计划、SQA计划、风险管理计划、软件测试计划、项目培训计划。
2.3软件项目跟踪与监督
为了保证软件系统在预期的工作量内按时保质地完成.需要定期对其主要项目进行跟踪、监测和调整。跟踪的对象通常有规模、工作量和成本、计算机资源、进度、风险和软件工程技术活动等。它的目标是为对照软件计划跟踪实际结果和性能.当实际结果和性能明显偏离软件计划时,采取纠正措施并加以管理直至结束,对软件约定的更改应得到受到影响的组和个人的认可。
2.4子合同管理
选择合格的软件承包商并有效地对他们进行管理,包括如何选择软件分包商,如何建立与分包商的约定,如何追踪和评审分包商的功效。这期间包括对软件子合同的管理,以及包括对合同的构成成分的管理,如子合同中含有的软件硬件及其他系统成分的管理。
2.5软件质量保证
过程和产品质量保证过程域引入的动机是为了有一个相对独立于项目的成员,能够以第三方角色保证项目组成员遵守事先的约定。遵守作业流程以及对产品制定的标准和规则。使工作人员和管理者能客观了解过程和相关的工作产品,确保所策划的过程得以实施,从而支持交付高质量的产品和服务。
2.6配置管理
配置管理的目的是运用配置标识、配置控制、配置状态统计和配置审计,建立和维护工作产品的完整性。最后得到的文档包括《识别的配置项》、《配置管理系统》、《基线》、《变更请求》、《配置项的最新履历》、《配置项的状态》以及《配置审核结果报告》等文档。
3达到CMMI的基础和策略
要使管理过程高效.首先就要抓好项目管理,关键也就是抓好几个关键过程域。国防工业企业的软件开发要达到可重复级必须从思想、组织和技术三方面做好准备。
思想上的准备。首先是企业领导的高度重视,并及时且有效地控制。企业领导必须彻底认识到国防专用CMMI的重要性,以及其给企业软件开发能力带来的深远影响,从内心上、根本上保证基于CMMI的软件项目管理工作的进行。不但要求领导,也要求企业内所有人员提高认识,在企业内进行动员、学习和培训是必要的,这对全员统一思想,完成思想转换是有极大促进作用的。
企业项目人员构成合理.有具有相当权威的高层领导参与,有专职的部门设立,有专职的项目经理负责,这些是在组织机构和人力资源上为项目实施提供了保证。实施CMMI,要建立软件工程过程组、系统测试组、软件质量保证组、软件配置管理组与软件配置控制委员会。同时还需要优秀的实施顾问参与项目.提供优秀的实施计划方案。
技术上的准备,首先是对CMMI的研究,所有的开发人员尤其是高层的领导和开发人员必须对CMMI非常熟悉.不是只知道个大概或者基本概念,而要求领悟其内涵和精髓,以便在实际工作中能自发地尊重规范来进行软件项目的管理工作。
4结束语
软件开发过程是一个复杂多变的过程,多年来出现了大量的软件工程技术,然而软件工程从来没有像其他传统工程那样易于控制。实践告诉我们软件过程改进是一个长期的、没有尽头的过程。CMMI为我们带来了提高过程能力的途径,不过不同的组织机构的情况各不相同.其实施CMMI的方法也会不一样。
免责声明以上文章内容均来源于其他网络渠道,仅供欣赏,不代表本站观点,与本站立场无关,仅供学习和参考。如有涉及到您的权益,请来信告知(email:mlunwen@163.com),我们核实后会立刻删除。