CMM学习心得体会#精选.docx
- 文档编号:4548515
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:7
- 大小:22.77KB
CMM学习心得体会#精选.docx
《CMM学习心得体会#精选.docx》由会员分享,可在线阅读,更多相关《CMM学习心得体会#精选.docx(7页珍藏版)》请在冰豆网上搜索。
CMM学习心得体会#精选
CMM学习心得体会
1.CMM的产生背景
在现在这个信息发达的时代,软件质量的重要性也越来越重要,越来越被人们所认识。
软件是产品、是装备、是工具,同时我认为软件产品也是艺术,其质量决定着顾客的满意度。
所以在软件开发过程中需要一个有力的工具来管理其开发过程,以使软件产品更加完美。
首先CMM(CapabilityMaturityModelforSoftware)是指“能力成熟度模型”,它的本质是软件管理工程的一个部分。
它是对于软件组织在定义、实施、度量、控制和改善其软件工程的实践中各个发展阶段的描述。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
其目的是通过一个合理的体系模型来对软件组织开发能力进行合理有效的评估,帮助软件组织在模型实施的过程中提高软件过程管理能力,降低软件系统开发风险,在预定的项目周期和预算内开发出高质量的软件产品。
它是学术界和工业界公认的有关工程和管理实践的最佳的软件过程。
为评估软件组织的生产能力提供了标准,也为提高软件组织的生产过程指明了方向。
CMM由美国卡内基梅隆大学软件工程研究所(SEI)1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。
其所依据的想法是:
只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。
CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。
CMM自1987年开始实施认证,现已成为软件业最权威的评估认证体系。
CMM包括5个等级,共计18个过程域,52个目标,300多个关键实践。
2.CMM的发展过程
由于需求定义不明确、缺乏一个好的软件开发过程、没有一个统一领导的产品研发小组、子合同管理不严格、没有经常注意改善软件过程、对软件构架很不重视、软件界面定义不善且缺乏合适的控制、软件升级暴漏了硬件的缺点、关心创新而不关心费用和风险、军用标准太少且不够完善等原因导致软件项目失败。
引起国际软件产业界对软件过程的高度重视,软件过程是否完善是软件风险大小的决定因素。
于是,CMM得到进一步的发展。
CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。
企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。
然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。
1993年,SEI在广泛听取美国政府和各界软件专家的建议之后,推出了CMM1.1版。
CMM是国际上最流行、最实用的一种软件生产过程标准,已经得到了国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。
1998年SW-CMM2.0的草案C发布,美国国防部主管CMM的部门决定不再修订单独的SW-CMM,而着手制定集成的能力成熟度模型CMMI,2002年1月发布了CMMI1.1版。
CMM家族有:
SW-CMM(软件能力成熟度模型)、SA-CMM(软件获取能力成熟度模型)、SE-CMM(系统工程能力成熟度模型)、P-CMM(人力能力成熟度模型)、IDEAL模型、CMMI(能力成熟度集成模型)。
CMMI把现存的所有的以及被发展出来的各种能力成熟度模型,集成在一个框架。
SA-CMM用于组织获取和采购基于软件的应用系统的软件过程,美国的国防部、陆军、海军和一些商用组织都已采用SA-CMM对他们的获取能力进行评估。
SE-CMM是描述一个组织为保证实现一个好的系统工程的主要元素。
P-CMM是有关组织的人力资源管理模型。
IDEAL模型是一个组织用于启动、规划和实现过程改善措施蓝图的模型,概括了建立一个成功的过程改善项目的必要步骤。
软件过程改善是当前软件管理工程的核心问题。
50多年来计算机事业发展使人们认识到要高效率、高质量和低成本的开发软件,必须改善软件生产过程。
软件管理过程走过了一条从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试到90年代中期以过程过程成熟度模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心向着软件过程技术的成熟和面向对象技术、构件技术的发展为基础的真正软件工业化生产的道路。
软件生产转向以改善软件过程为中心,是世界各国软件产业都必须走的道路。
规范的软件过程是软件工业化的必要条件。
3.CMM的具体内容
软件过程包括管理过程(软件项目策划、软件项目管理)、组织过程(跨项目过程、培训、基础设施)、工程过程(需求分析、设计、编码、测试)。
CMM分为五个等级:
一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
成熟度反映了软件过程能力的大小,任何一个软件机构的软件过程必定属于其中某个级别。
除了第一级以外,每级成熟度又由若干关键过程域构成。
CMM结构中关键实践描述了对关键过程域有效实施和制定化起重要的作用的基础设施和活动,有5个共同特征:
执行约定、执行能力、进行的活动、测量和分析、验证实施。
由于软件危机的产生加强了相关部门对软件过程的重视。
有效的软件过程可以提高组织的生产能力,可以改善对软件的维护。
任何一个软件组织在完成自身的开发维护过程中,总有自己的软件过程。
这些软件过程有可能是初级、低级、高效的。
它们在成熟性方面有差异。
软件过程成熟度意味着能力的增长具有潜力。
软件组织为了提高自己的过程能力,从不断的成熟的过程逐步提高到成熟过程必须努力改进软件过程。
软件过程改进包括四个部分:
软件过程基础设施、过程改进路线图、软件过程评估方法、软件过程改进计划。
而CMM评估则是进入国际市场的通行证。
任何一个成熟度级别的关键过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。
在可重复级的关键过程域(KPA)包括:
需求管理(Requirements Management)
客户的需求是软件项目的基础。
软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。
软件项目计划(Software Project Planning) 为软件工程和项目管理建立一个合理的计划。
软件项目的跟踪和监督(Software Project Tacking and Oversight)
使管理者对实际的软件项目进展过程有足够的了解,以在项目效能偏离计划太多是采取有效措施。
软件子合同管理(Software Subcontract Management) 选择合格的分包商,并有效管理之。
软件质量保证(Software Quality Assurance)
对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。
软件配置管理(Software Configuration Management)
在整个软件生命周期里建立并维护软件项目的工作产品的完整性。
在已定义级关键过程域(KPA)包括:
机构过程关注(Organization Process Focus)
确立机构对于改进机构的软件过程能力的软件过程活动的责任。
机构过程定义(Organization Process Definition)
开发和维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础
培训计划(Training Program)
开发个体的技能和知识以使他们能够更加有效的完成他们的角色
集成软件管理(Integrated Software Management)
基于业务环境和项目的技术需要,从机构的标准软件过程和相关的过程assets经过剪裁,将软件工程和管理活动集成为一个有机的定义的软件过程。
软件产品工程(Software Product Engineering)
一致地完成定义良好的工程过程。
它描述了项目的技术活动,如需求分析,设计,编码和测试。
组间协调(Intergroup Coordination)
确立软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段
同行评审(Peer Reviews)
早而且有效的排除软件工作产品中的缺陷。
在已管理级关键过程域(KPA)包括:
定量过程管理(Quantitative Process Management)
定量地控制软件项目的过程效能。
软件质量管理(Software Quality Management)
定量了解项目软件产品的质量,并达到既定的质量目标。
在优化级关键过程域包括(KPA)包括:
缺陷预防(Defect Prevention)
识别出错原因,防止错误再现(通过改变定义的软件过程)
技术变更管理(Technology Change Management)
识别有益的新技术(工具、方法和过程),并按有序的方式将其转移至机构之中。
其重点在于在变化的世界中有效的完成革新。
过程变更管理(Process Change Management)
连续改进机构所采用的软件过程,以改进软件质量,提高生产率和减少产品开发时间。
纵观整个CMM,软件企业提高自身成熟度的历程是一个从无序到有序,从特殊到一般,从定性到定量,最后不断自我完善的过程。
4.CMM在我国发展现状
中国生产力促进协会、北航SEI、中科院研究SEI等科研机构已于近几年在北京、上海、广州和深圳等地先后举办过多次报告会和研讨会,组织过课程学习和应用实验,开展了软件过程方面的研究与开发工作,并发表了多篇的研究成果和学术论文,在软件质量保障平台支撑环境也取得了一定的成果。
近两年来,CMM在我国获得了各界越来越多关注,业界有过多次关于CMM的讨论,2000年6月国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》对中国软件企业申请CMM认证给予了积极的支持和推动作用,第17条规定"对软件出口型企业CMM认证费用予以适当支持。
"2000年中关村电脑节上还有CMM专题论坛,吸引了众多业内人士。
鼎新、东大阿尔派、联想、方正、金蝶、用友、浪潮、创智、华为等大型集团或企业等都从1997---2000年起批企业都在进行研究、实验或实施预评估。
其中鼎新公司从1997年着手进行CMM认证工作。
1999年7月通过第三方认证机构的CMM2认证。
东大阿尔派公司于2000年10月通过第三方认证机构的CMM2认证。
2001年1月,联想软件经过英国路透集团的严格评估,顺利通过CMM2认证。
2001年6月26日,沈阳东软软件股份有限公司(原沈阳东大阿尔派软件股份有限公司)正式通过了CMM3级认证,成为中国首家通过CMM3级的软件企业。
总体上讲,国内对软件过程理论的讨论与实践正在展开,目标是使软件的质量管理和控制达到国际先进水平,中国的软件产业获得可持续发展的能力。
专家分析,在未来两三年内,国内软件业势必将出现实施CMM的高潮。
从这一趋势看,中国的软件企业已经开始走上标准化、规范化、国际化的发展道路,中国软件业已经面临一个整体突破的时代。
但是我们应该看到目前国内对软件管理工程存在的最大问题是认识不足。
管理实际上是一把手工程,需要高层管理人员的足够重视。
而且软件过程的重大修改也必须由高层管理部门启动,这是软件过程改善能否进行到底的关键。
此外,软件过程的改善还有待于全体有关人员的积极参与。
除了要认识到过程改善工作是一把手工程这个关键因素外,还应认识到软件过程成熟度的升级本身就是一个过程,且有一个生命周期。
过程改善工作需要循序渐进,不能一蹴而就,需要持续改善,不能停滞不前;需要联系实际,不能照本宣科;需要适应变革,不能凝固不变。
一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。
目前我国在软件行业需要自立自足、发展创新,生产出更加优秀的软件产品以更好的迈入国际软件水平的步伐。
计算机是一个发展较快的工具,软件作为计算机的辅助工具也应该以最快、最优的步伐前进。
所以我们不仅需要软件工程师来努力的推进我国软件行业的发展,更需要大家的努力。
一个优秀的软件工程师要有:
第一良好的编码能力。
软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。
编码能力直接决定了项目开发的效率。
第二自觉的规范意识和团队精神。
随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。
一般来讲,软件企业中的程序员可以分为两种,一种是程序“游击队员”,他们可能对编程工具很熟,能力很强,把编码编得很简洁高效,但却缺乏规范和合作的观念;另一种程序员编程不一定很快,但是很规范,个人能力不一定很强,但合作意识很好。
第二种人更加适合现代软件企业发展的潮流。
对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。
第三认识和运用数据库的能力。
信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。
第四较强的英语阅读和写作能力。
程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。
作为基础软件工程师,具有一定的英语基础对于自身的学习和工作极有帮助。
第五具有软件工程的概念。
基础软件工程师处于软件企业人才金字塔的底层,是整个人才结构的基础,虽然他们从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们是整个软件工程中重要的一环,因此,基础软件工程师同样要具有软件工程的概念。
从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作,这样的能力正好符合了当前企业对基础软件工程师的全面要求。
第六求知欲和进取心。
软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。
软件工程师应具有较强的学习总结能力、需求理解能力和对IT新技术比较敏感,同时,掌握最新的IT实用技术。
所以培养出更加优秀的软件行业人才会使我国软件行业有更进一步的发展。
5.CMM的意义及应用
软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术起不到预期的作用。
而且项目的成功也是通过工作组的杰出努力,所以仅仅建立在可得到特定人员上的成功不能为全组织的生产和质量的长期提高打下基础,必须在建立有效的软件如管理工程实践和管理实践的基础设施方面,坚持不懈地努力,才能不断改进,才能持续地成功。
软件质量是模糊的、捉摸不定的概念。
我们常常听说:
某某软件好用,某某软件不好用;某某某软件功能全、结构合理,某某某软件功能单一、操作困难……这些模模糊糊的语言不能算作是软件质量评价,更不能算作是软件质量科学的定量的评价。
软件质量,乃至于任何产品质量,都是一个很复杂的事物性质和行为。
产品质量,包括软件质量,是人们实践产物的属性和行为,是可以认识,可以科学地描述的。
可以通过一些方法和人类活动,来改进质量。
实施CMM是改进软件质量的有效方法:
控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法。
软件工程和很多研究领域及实际问题有关,主要相关领域和因素有:
需求工程(REQUIREMENTSENGINEERING)。
理论上,需求工程是应用已被证明的原理、技术和工具,帮助系统分析人员理解问题或描述产品的外在行为。
软件复用(SOFTWAREREUSE),定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。
这种技术,可改进软件产品质量和生产率。
还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。
CMM的作用是评估软件开发过程包括两类评估:
软件过程评估和软件能力评估。
软件过程评估是基于CMM所作内部过程改进的评估。
它用来确定组织当前软件过程的状态,明确一个软件组织所面临与过程有关最为迫切的问题,并希望获得该组织对软件过程改进的支持。
软件能力评估是基于CMM所作软件能力评估,它可用以识别担任软件项目的合同承包商,或是用其监督当前软件项目采用的软件过程所处状态。
过程改进是是软件提升过程能力的重要手段,在过程改进中起着重要作用。
过程改进基本步骤:
第一确定改进需求,通过明确改进的动机,解决好为什么要做过程改进的问题,只有这样才有改进的动力和必要的条件;第二评估现行过程,弄清现行过程的状态,确定改进目标,明确改进解决哪些问题,评估中CMM是有力的工具;第三制定改进计划,针对评估发现的薄弱环节,制定改进计划,必要时引进管理技术或支持工具,就是要回答如何进行过程改进;第四实施改进计划,投入必要的资金,要展开大量改进工作;第五测量改进的进展,了解改进的成效和存在的问题。
6.学习CMM的心得体会
通过这半个学期对CMM的学习,我觉得对软件工程又有了更深一步的理解。
对软件过程改进有了更加深刻的了解。
软件过程改进需要一个严格的开发过程,每一个细节都不可小视忽略,按照软件项目大纲有条不紊的进行,才能更好更快高质量的完成软件产品。
过程改进帮助软件企业对其软件(制作)过程的改变(进)进行计划、(措施)制定以及实施。
他的实施对象就是软件企业的软件过程,也就是软件产品的生产过程,当然也包括软件维护之类的维护过程,而对于其他的过程并不关注。
软件过程改进和CMM是不同的事情,软件过程改进的范围要比CMM大,CMM是实施软件过程改进的一个行动地图。
通过CMM来评估软件企业的等级。
虽然学到了很多,但是若要对软件工程有更加深入的了解我想我们还需要不断的努力,不断的学习,不断的总结,找到自己的不足。
这样逐步提高,才能让自己很快成长起来。
最新文件仅供参考已改成word文本。
方便更改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CMM 学习心得 体会 精选
![提示](https://static.bdocx.com/images/bang_tan.gif)