软件能力成熟度模型(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的方法也会不一样。
云计算将使数字图书馆在软件环境、硬件存储、应用平台与服务方式等方面发生深刻变革,同时也会使信息资源面临很多安全问题。在云计算应用过程中应逐步建立和完善相关行业标准,保证信息资源的安全存储,实现信息资源的保密性与完整性、严格划分操作权限、加强用户访问控制,以保障数字图书馆信息资源的安全。 云计算是Google提出的全新的互联网应用模式,是分布式处理、并行处理和网格计算等计算机科学概念在互联网上的实...
智能电网是当今世界电力系统发展方向,也是我国电网升级改造的目标。针对我国现有电网管理的应用程序及系统呈现分布式和异构等特点,从国内外智能电网信息集成技术的研究现状出发,分析现有电网信息集成的不足以及智能电网信息集成的要求,提出智能电网异构信息集成框架的方案。 论文关键词:智能电网;信息集成;公共信息模型:CLS;平台 0引言 智能电网是当今世界电力系统发展变革的最新动向,是节能减排、可持续和...
信息技术飞速发展,社会与经济正在快速信息化。这对公安现役部队的信息安全提出了挑战。通过对信息安全现状分析。提出了公安现役部队的应对策略,同时对其建设发展趋势进行了探讨。 论文关键词:信息化;信息安全;网络安全;保密意识 2l世纪以来.人类社会进入信息化时代。近几年.全国公安现役部队深入贯彻公安部”科技强警”的指示方针.伴随着公安现役部队信息化工程的建设与发展,为全体官兵...
互联网时代的来临给人们带来便利的同时也使信息安全与网络安全形势日益严峻。形形色色的漏洞层出不穷,传统的安全保障模式已经无法有效地应对当前的威胁。本文分析了信息安全形势和现状,阐述了由漏洞挖掘、漏洞利用所构成的病毒产业链对现有安全技术和理念的冲击。根据病毒产业链中各个环节的特点,提出了基于“云安全”思想的新型的安全保障模式,使之能够快速感知和捕获新的威胁,并从源头上予以监控。...
应用信息安全技术提高电子政务系统的安全性是一个迫切需要解决的问题。本文首先剖析了电子政务系统信息安全方面存在的问题,其次研究了信息安全技术在电子政务系统中的应用,涉及到安全区域的有效划分、重要信息的有效控制以及系统VPN的台理设计等等,在一定程度上保证了电子政务系统的安全。 1引言 电子政务是提升一个国家或地区特别是城市综合竞争力的重要因素之一,电子政务系统中有众多的政府公文在流转,其中不乏重...
针对物流企业信息系统的建设现状,提出了物流网格的概念,并基于GlobusTookit的五层沙漏结构搭建六层物流网格体系结构,在此基础上,构建基于网格的物流公共信息平台,实现物流企业信息系统的集成整合与信息共享。 1引言 随着互联网时代的到来,企业的生产成为虚拟企业联盟之间的产品全生命周期的协作与信息资源的充分共享,这就要求跨越不同企业之间存在的空间差距,利用网络实现资源共享,开展异地协同的快速...
本文先对软件项目管理进行简单的阐述,然后介绍了现行的软件企业管理国际标准,并着重对ISO9000系列和CMM进行了比较,最后根据我国软件行业的现状,介绍了软件项目管理的相关软件。 论文关键词:软件开发项目管理CMMISO项目管理软件 1软件项目管理的概念 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过计划、组织、控制等一系列活动,合理地配置和使用各种资源,对成本、人...
本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。 论文关键词:项目管理进度控制费用控制质量控制软件开发 ...
介绍了信息系统建设中软件项目管理的理念,深入探讨了软件项目管理的组织模式、内容、配置管理、质量管理、风险管理及人员管理等,并给出了软件项目计划书的范本。 论文关键词:软件项目管理;软件配置管理;软件项目计划书 1软件项目管理的组织模式 1.1项目管理委员会。项目管理委员会是公司项目管理的最高决策机构,—般由公司总经理、副总经理组成。主要职责如下:(1)照项目管理相关制度管理项...
介绍了软件项目风险管理的重要性,探讨了软件项目风险管理的主要过程和步骤以及常用的工具和方法,详细分析了软件项目中常见的风险类型和风险成因,最后给出了经典的风险管理模型和常用的风险应对措施. 论文关键词:项目管理;风险分析;风险管理;风险应对;模型 0引言 随着信息技术的飞速发展,软件产品的规模也越来越大,各软件企业在开发活动中都为了使软件项目能够按照预定的成本、进度和质量顺利完成而进行有效的...