第十章 软件能力成熟度模型CMM
软件能力成熟度模型的五个等级
软件能力成熟度模型的五个等级软件能力成熟度模型的五个等级导语:在软件开发和管理领域,软件能力成熟度模型(Capability Maturity Model,简称CMM)是一个被广泛应用的评估和改进软件开发能力的框架。
CMM根据不同的组织在软件开发过程中的能力水平,将其分为五个等级,逐步提升组织的软件开发能力。
本文将详细介绍软件能力成熟度模型的五个等级,并对每个等级所代表的特点和优势进行分析。
一、初始级(Level 1 - Initial)初始级是软件能力成熟度模型中最低的等级。
在这个等级中,组织没有明确的软件开发过程,开发工作往往是以临时和非结构化的方式进行的。
在这种情况下,项目的成功往往依赖于个别的开发人员的经验和个人技能。
缺乏标准化的开发流程、文档化的要求和质量控制,容易导致开发过程中的混乱和错误。
二、重复级(Level 2 - Repeatable)重复级是软件能力成熟度模型中的第二个等级。
在这个等级中,组织开始意识到软件开发过程的重要性,并开始建立一些基本的规范、流程和工具来规范开发过程。
组织能够重复地执行一些已经被证明是成功的软件开发实践。
这些实践可以帮助组织在不同的项目中保持一定的一致性,提高软件质量和生产效率。
三、定义级(Level 3 - Defined)定义级是软件能力成熟度模型中的第三个等级。
在这个等级中,组织进一步明确了软件开发过程,并进行了规范化和文档化。
组织能够定义一套标准的开发流程和过程,并将其应用于所有的软件开发项目。
组织还会建立一些针对不同项目要求的指南和标准,以确保开发过程的一致性和高质量。
四、管理级(Level 4 - Managed)管理级是软件能力成熟度模型中的第四个等级。
在这个等级中,组织开始对软件开发过程进行量化和度量,以便对项目进行更加准确和全面的管理。
组织会使用一些度量指标来评估和监控软件开发过程的质量和效率,以及在开发过程中发现和解决问题的能力。
“软件能力成熟度模型”
“软件能力成熟度模型”(1)背景介绍:CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用。
CMMI是SEI于2000年发布的CMM的新版本,目前CMMI已经发展到1.2版本,并且只接受1.2版本的评估结果。
CMMI目前包含了三个模型,分别是CMMI-DEV、CMMI-SVC以及CMMI-ACQ模型。
CMMI-DEV:最新版本是SEI于2006年8月份发布的CMMI for Development v1.2版本。
该版本集成了软件工程、硬件工程和系统工程三大学科领域。
图表1 CMMI-DEV模型集成CMMI-DEV模型按照阶段式表达方式将成熟度分为五个等级,每个等级包含相应的过程域,如下图所示:图表2 CMMI-DEV各成熟度等级包含的过程域CMMI-SVC:该模型SEI于2009年2月份发布,最新版本是CMMI for Services v1.2版本。
该模型可以应用于IT、医疗卫生、教育等各类服务领域。
该模型采用了CMMI的基础架构,在此基础上增加了服务相关的特有过程域。
对于已经实施CMMI- DEV 的企业,提供了快速、便捷的理解和导入机制。
图表3 CMMI-SVC和CMMI其他模型的关系CMMI-SVC模型按照阶段式表达方式也分成五个等级,每个等级包含相应的过程域,如下图所示:图表4 CMMI-SVC各成熟度等级的过程域CMMI-ACQ:该模型SEI于2007年11月份发布,最新版本是CMMI for Acquisition v1.2版本。
该模型基于CMMI模型体系架构,整合了CMMI采购模型、软件采购模型以及政府及产业采购的最佳实践等,用于指导采购方进行采购管理。
软件能力成熟模型(CMM)对促进我国软件产业的影响
c pa iy ofi er a i alc a ct nt n ton om pe ii tton, i he aten ie w a o t e d e op e ofw a e i s t t tv y t h ev l m ntofs t r ndu t y. sr
熟 度 框 架 和 一 套 软 件 成 熟 度 问 卷 , 用 来 评 估 软 件 供 应 商 的 能 力 , 是 探 索 软 件 过 程 成 熟 度 的 工 具 ,是 一
整 套 评 价 和 改 进 组 织 软 件 生 产 过 程 ,提 高 软 件 生 产
场 短 期 行 为 , 软 件 生 产 效 率 和 产 品 质 量 普 遍 存 在 问
题 , 这 严 重 影 响 了 我 国 软 件 产 业 的 迅 速 发 展 。 软 件
能 力 和 质 量 的 标 准 体 系 。 由 于 CM M 的 科 学 性 、 实 用 性 与 效率 性 , 到 了很 多 国家 软件 产 业 界的认 可 , 得
并 获 得 了 很 好 的 效 益 。目 前 ,全 球 已 有 1 0 5 0多 家 软
H e Sha ohua
(nf m at a a I or ion M n gem e hoolofW u ntSc han U ni r iy, W uha 3007 ve st n4 2)
A b t a t S f wa e h s b c me o e o h r p e n u t y i a i n le o o i a d s ca e e o me t s r c o t r a e o n f t e p o p d i d s r n n t a c n m c n o i ld v l p n . o
能力成熟度模型
能力成熟度模型 能力成熟度模型(Capability Maturity Model ,英文缩写为CMM ⑴是一种开发 模型。
Carnegie Mell on 大学的研究人员从美国国防部合同承包方那里收集数据 并加以研究,提出了 CMM 美国国防部资助了这项研究。
Carnegie Mellon 以该 模型为基础,创办了软件工程研究所(SEI )。
CM 啲目标是改善现有软件开发 过程,也可用于其它过程。
它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发 展阶段的描述。
CMM 勺核心是把软件开发视为一个过程,并根据这一原则对软件 开发和维护过程进行监控和研究。
CMM!—种用于评价软件承包能力以改善 软件质量的方法,侧重于软件开发过程 的管理及工程能力的提高与 评估。
分为五个等级:一级为初始级,二级为可重复 级,三级为已定义级,四级为已管理级,五级为优化级。
其假设是:只要集中精力持续努力去建立有效的 软件工程过程的基础结构,不断 进行管理的实践和过程的改进,就可以克服软件生产中的困难。
历史1984年,美国国防部资助建立了卡内基•梅隆大学软件研究所( SEI ) [2] ; 1987年,SEI 发布第一份技术报告介绍软件能力成熟度模型(CMM 及作为评价国防 合同承包方过程成熟度的方法论;1991年,SEI 发表1.0版软件CMM (SW-CMM ) CMM! 1987年开始实施认证,现已成为软件业权威的评估认证体系。
CM 血括5 个等级,共计18个过程域,52个目标,300多个关键实践。
CM 帶级能力等级 特点 关键过程软件工程管理制度缺乏,过程缺乏定 义、混乱无序。
成功依靠的是个人的才 第一级初始 能和经验,经常由于缺乏管理和计划导 级(最低级)致时间、费用超支。
管理方式属于反应 式,主要用来应付危机。
过程不可预测, 难以重复。
基于类似项目中的经验,建立了基本的项目的软件开发已将软件过程文档化、标准化,可按需要改进开发过程,采用评审方法保证软件质量。
软件能力成熟度模型(精)
CMM的一些基本概念(3)
关键实践:对关键过程域的实践起关键作用的方针、规 程、措施、活动以及相关基础设施的建立。关键实践一 般只描述“做什么”而不强制规定“如何做”。整个软 件过程的改进是基于许多小的、渐进的步骤,而不是通 过一次革命性的创新来实现的,这些小的渐进步骤就是 通过一些着关键实践来实现。
CMM等级模型图
CMM的作用: 科学地评价软件开发单位的软件能力成熟 等级; 帮助软件开发单位进行自检,了解自己的 强项和弱项,从而不断完善和改进单位的 软件开发过程,确保软件质量,提高软件 开发能效率。
CMM的意义
迄今为止学术界和工业界公认的有关软件 工程和管理实践的最好的软件过程。 为评估软件组织的生产能力提供了标准。 为提高软件组织的生产过程指明了方向。
企业结构原则:商业结构,应用结构,技术结构,信息结构 应用开发原则:组队模型,开发模型,风险管理 组件设计原则:概念设计,逻辑设计,物理设计 基础开发原则:组队模型,开发模型,风险管理
CMM/CMMI本身是一套非常有价值的过程模型,但简 单的将其图腾化却是整个中国软件行业的悲哀,反观 CMM/CMMI的发源地——美国,除了和军方有业务往 来的软件企业会寻求通过CMM/CMMI评审外,其他多 数的企业并不怎么在乎是通过了CMM/CMMI的三级还 是四级,象是著名的微软、甲骨文等知名企业都没听说 过和CMM/CMMI沾过边,但这也丝毫不影响以他们为 代表的美国软件企业在整个行业中独领风骚。 只有有效的而不是最权威的,才是最好的。
链接3:软件市场的通行证——CMM
世界上第一家通过CMM5认证的并非美国公司, 而是来自印度的WIPRO。同时,WIPRO还是 全球第一个通过人力成熟度模型(PCMM)5级 认证的软件及服务公司。 据SEI统计,目前有大约300家印度软件公司通 过了CMM认证,其中通过最高质量等级CMM5 的有50余家,占全球的60%以上。高品质的管 理决定了高品质的产品,从而也确立了印度在 美国外包市场的垄断地位。
软件能力成熟度模型
基于CMM的软件质量管理
24
2.2可重复级
± Ó ì Ì ª î Ï Ä À Å Í Ä ï²è î º ¾ Ì Á ¹ ¨¢ ç ¼ à ¸ Ë ³ ® Á CMM2¹ £ º ´ · ¨ ¢ ð » Á ç ¼ ¾ ¸ ±³ Ì Á µ ³Ì Á º ñ Õ ç ¼ õ Ü ì ä ´ Ê ¤ ¶ ½ ¶ ²· ¶ Å ´ ïñ à ³¸ Ó ´ ° à º Í Ñ ñ ²õ ¶ ½ · ¼ Ó Ü ì Ê Ô Ã ç ¸ ¨¢ è î ð ß º ¾ Í Ä ¸ Ì ½ á ç ¼ ä £ ¶ È Ì Á ¶ Á Æ ±¢ Ç ² ¸ ± » ¡ ³Ñ £ ¨¢ ç ¼ à ® º ¾ Ì Á ¹ ¸ É ¢ ²Ò Á ± ¡ å Ì Ë ³ Å ¼ ç ¼ õ ¶ ´ ¾ Ì Á º Ò ½ ÷ æ © ¸ » Ò ² Ç £ é ¤ñ ²Ê ç Î Ó ° à · ¸ è î £ Í Ä ¡ Ñ ñ ²¢ â ò ´ ° à ¡ ±µ ´ ð Ê Ô Ã ¸ Ç ±· ¼ Ó £ ¡ ñ Ì Î Ñ · Ç ³ ± Á Í â ª ¢ ç ¯ £ à ¼ ²¸ ´ ¡ ¯ ´ ¢ ¤ï¼ ¢ ¡ ¶ ³¾ ¡ ¢ ½ á ¢ ÷ ¡ ¶ È ¡ ¶ £ ¡ ¬ °±Æ ¡ £ ¹ Ç ° Å ¯ Ä ñ ö Ì ´ Ç ²²· ¢ Ç à õ ¡ Ë É º Í ò É ¬ Ü ì °Æ £ ¶ ½ ì ø â À Ü ì Å ¹ Â Ó ¶ ½ ì ø Ð Ì ¬ Ü ì Å ¹ ³· Ê ¶ ½
26
基于CMM的软件质量管理
2.4已管理级
ì Ó ± Ì CMM4¹ £ Ë ´ · ª ¾ µ ³· ¼ Ó È ñ Õ Ê Ô Ã ì ø ª ¢ Ç Å ¹ ¼ ²Ó ¾ £ Ï ´ ¼ ² ¼ ¬ ª Ñ ª ¢ ¶ ± · ° à º ÷ É Ê ñ ²õ Í ²Ë Ó ô ª î Ï Ä ¨¢ º ¾ ê ± Ñ Ì ´ ç õ º Í ì ½ ç ¸ ¯ ´ ª µ õ ì ø ÷ É ¨¢ Å ¼ Ë Á º Å ¹ ¶ ± º ¾ ´ ¾ Ç ¼ ¼ Ó ¾ Á ¼ ±¸ Á ê £ ¨¾ ì ø ñ ²Ç ¼ ¼ ê £ º ¢ Å ¹ ° Ã Ó ¾ Á ±¡ ¼ õ ¶ ´ ì ¹ ¶ ± ³ Í Á º Í ´ Á º Ò Ñ Å ø ÷ É Á Ñ Ü õ Å ¼ ¯ Ü ¾ ¸ ¾ ¸ ¶ ¼ £ Ñ ° ²Ç ¼ õ Å ¼ ´ ñ Ã Ó ¾ º Í ´ ¾ Ô ò ÷ É õ í ¶ ¹ ¶ ± Ä Ð ÷ ¼ ¯ ÷ É Ü ì Ç ¾ ¸ ¶ ± ¶ ½ ì ø Ç ¼ Ü ì Å ¹ Ó ¾ ¶ ½ ÷ ¼ ¯ ÷ É Ü ì Ç ¾ ¸ ¶ ± ¶ ½ ì ø Ç ¼ Ü ì Å ¹ Ó ¾ ¶ ½
软件能力成熟度模型CMMI
软件能力成熟度模型 CMM(Capabitity Maturity Model) 上海市信息化办公室技术中心 上海市软件评测中心软件能力成熟度模型 CMM目录 ......................................... ! "#$% .................................................... & '()*+,- ............................................ . /0 ................................................ 1 234+ ................................................... 5 678+ ...................................................................................................... 9 6:;+ .................................................. < =>+ ................................................... ................................................... ? ) @A ............................................... B CDEFGHIJK ...........................................B LMM !+NOGPQRS................................................................ B! T!+ 234+ UVW.....................................XYZ B& B. B1 T&+ 78+ UVW ..................................... T.+ :;+ UVW ...................................... T1+ =>+ UVW........................................ 上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM 一CMM 发展历史实施步骤LMM [\]"^_`abcdef-ghij kDG lmnopqrsptmqo ^uv wx `yWz{| cd}~-g lmoomsqp mp Gef-g "Oef hcd}~-'(J¤-+ §sqp ^ ¨ `Wz G- ¨x ` r°± Fz LMM G xx ¨¨ ` r°± FzT!+ X G LMMxY T&+G LMMx ` FzT.+T1+ X G x LMM¨x ^ ¨¨ `F ¨w ` r°± F LMM¨¨ G#] ¨¨ Zx 7^ ¨ `- ^ LMM± -- G Zx LMM± LmmnoMmoqoMpn±opqmo *-[\( ij×O{OG[ \- àáG{OG LMM± '(×[\ {O-[\ -[\ èéabNO ^ ZxxZ ` ê ¨ ` INO XpqmnrìotmqpXqp XrX ê í^}~I ×í^Iò7óíG:;W ò÷'( ùú|üa LMM ]í^,GOGcd:; XrX ÷ I #G^ LMM -[\ LMM Gê]zaG haG]:G a acd abó- a ! "#íGab $%]\O ^*&aG'()x `y*+, k DD-P./012343/G56^a78GaNO:; 9:]; aNOG-<@=à7I>?@/G-< ABG aNO G-<CDEFG?HI&JKK@LMNOPQ?R,G-:KKS 2TUVG!GJK & 8-WGNOG34#í 8XYZ?[\GQ]^_ 8 `PSG{abcb:-z-GNO /Id)ee d!G JK d7f7dGgh)BGNO NOGij@/klmyWn8Gop kD r°± êGGqr)s @/2Dt LMM G'(8>:; >O7d}~qu ív92Dt LMM VwdV>éNGx a R )abí"y"^IRGJKV8a:;qV)}~ V; @/ LMM JKzaNO{L| ¨ }k LMM /}Dtz'(~7@/hGx-+% Z 8G-+%GNOG/UG3430J aNO w \上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM Y eijBGNOV)b XYZ!G> 7d>G Q]^_gh #-WG[2ò[>G @/ LMM -G >G2 ó9 -#ùabG'( LMM 2@/DxGê¤ 92@/UG:;)§¨ ^!"8@/aj kDG \í")7 LMM °27abcdOGJK ±@ /=]8 LMM ` `7+ LMM \ `N LMM .+)1+G@/ ± ±@/Gab9d ¨x `G1k1Bk |^ Zxx `1 k ± ¨xxx @/ wY d/ ` xx @/±@ /G!" ¨ ` `z ¨wwx LMM qV ^|qV> YZ > qVG ` z Z]kD> D% wY I \ 7/ ¨ kDD -P7 Z ¨x z 1+^quG YwZ 234+ wYZ 78+ ¨w :;+ Y =>+ ¨Y T!+ 234+ @S4G Z ¨xx G T&+ 78+ h@S4G ¨xx ¨xxx G@/ T.+ :;+ h@S4G ¨xxx Zxxx G@/ T1+ =>+ h@S4G Zxxx G@/ 2 N LMM T!+G 4ò[ Z ¨xx 二NO rìotmqpXqp基本概念NO÷NO]#íM×7e7dGj-ê 278@/| e~abbG`PaàO:;à ;× r°± GkDNOáGI$%:]KKC/NO~-NOGà~ ab:k~ NO rìotmqpXqpLmmno @/NOh+JGO 2í^V@/GNO§¨ NO rìotmqpXqpXpqìq§mp @/>zNOhGx_g NO- rìotmqpXqpMmoqo NO278 V}~TUfGO F/íVW¤>hG NOGf -+ rìotmqpLmmnoMmoqo±ppn上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM @/G->iNOhèlG×7-J$éG¨ê -)- Mmoqpm±§§moqp -GJKKA¤~GNO2Dt )8aV ìaNO cd) )í`GNO}~cd}~ >AK÷2 _gF/Dt>R ,IGFG&JG -GJKK>]Dt@/6¤~GNOK÷V _gAùDIUI &J >NO}~28IaêV abcdò} ó!G7d>Gt G>hYZgh2{í^VG> :; LìqmoMmmp§po N ×|:; 8MI÷>GW;$f3%ab 8ù$éGjà}~ 8jàú ü Z|üG pmo 8G|ü JK òüG¤jà 4 Xppqppt >-GMò÷8>abhG í^úh :; Mmmp§po í$Q]qu>|G* ×3% Q] +e }~ ONO, rìotmqp°ppqXqpq 8hGNO~7 Q] ò}G, N G4} s + rìotmqpìpLnp hG`NO ×dab|ab_GI+ Q$%op op |op op Vop op op op rìotmqppqp§po í"MJ?àM56/G 上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM三CMM 框架结构与各级组成aNO;!"#C cdXX{à^NOG§¨ @/NOhíG *$NOG-§¨ NO]I2dG 2}~G GO LMM @/8NO%UG NO Q+_+GJ}V òNO@/q!Ua!GJK LMM -O;!2&'(G^aGJK 92&G:;;! x]8)h|GIOOGò7Q] G*×ONO# 9 ×8NOG:; LMM @/zIopóG1+O +,1 LMM Gy-)T+ G0 .1+ ±omnnppn áT +y7z*UGJ, LgzJ ÷2|+ ^I+%y/0ijz-G`P+%G"1 LMM +G C]I2eGNO LMM Gqu×1I+ | ¨ INO Z IJ w¨ I) +%Gquk D"3Oefh45GFqu}sGquR, z-VU@/P quNO ×@/\ 5678 b)tQ] >,- 97qu" qu_:Fqu ;<= LMM 1+JKG-Q% T+1+ ±omnnppn T!+234+ ppmomnpnppn T&+678+ pìpnppn T.+6:;+ Mmmpnppn T1+=>+ >o§?nppn 上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM ¨1+ I@AF8GP| B)234f 9)Cgh >Gì]nCDEFG NO Y78 .#Mùò9ì @/×GH7G)I 8hJG* ×56XXKLMN7|üOaOPIYZ)FGQR8 8!"GéS_) T US!"Gab) Vcd)!GGV)ò} C]I], Wà?jà I@/G9 I@/AH7GNOò÷2Dt GòX~9Y?Z[ G]\] ^_`a:Xb_7c dù e^NOGt Gf9/gh ^ I@/G]234 2 - 2ghH7G #op30× ij>NO:; ij:; ¤~!"/ ij *>|ü ijBGb ìcdò} LMM !+hò7G*>) Z 234+ ~7z"#Ga:;}~ 8$7>~7NO:;i X> YZí^jG> GaNO>KL a-#+!G Vkl NOJK> >G]|üG }~G 234 G ^÷] IGNO]I234GNO2JK> T!+G:;NO×:; >|ü >klò} m:; cd):; 5I $+G@/2!"AGéS &@/2X>G-WYZ^_i jNOK÷V-W34mNO >:;í"K nmpnp VJ38-# kl @/NU:;!"ijzG 8ú2ò÷2DtVo '( I@ApQ@/Gò÷:;'( bGKG>tGe9 G 上海市信息办技术中心SHIOTC´INO d Ñ üQ 5I qu +Ô[ ´I +´µz¿í½J¿íq S$ 7½J $7q SïÖ,- w dK÷ +] ¢^ùA ÑÃÏìÀGNOGëì2 zPQ$7½J92 ©ª½J yA ^ +GNO] z`P$7½JGNO 8^ +¥ z`P$7½J DË z8õG= G¿í½J ÕK÷8 x ÀGNOÁÀqu2Þ~7 ¾ NOG ëì8´INO qu,2Þ Ñ@/ N O G r* ] I!Ús J t*us J] INO vs J] I +@/92Þ t UãG/V½J æ/8*> NO ÁG w3xÖãê 9~ê #@/yz ÑG NO r*?ñ;]½J{|w2Þ 8 Ç >½ t>½G½J æ/ 8f }~ NOG ëì //GNO ÁÞ T>½GÃ-== ¡ O 4= ./¢£¤¡ ¥2= ./ ¦ ./0 1§¨ ©ª ©ªOS «¬®aO$5'67OS «¬¯T°4p±@ABCRh O¡ =²O ./ + /³´µ = ./µc c= ./¶·¸¹ºO¡ E»¼½d¾p±¿À Á +O= ./RhÂÃp Ä ÅÆ !"©ªOÇÈ* OÉ p±= ./D OÊ ËÈÌ¥2 /»¦ = ./X·ÍÄ +p ./OÎ >ÏÐ9O ÄpÏÐ9O OÑÒÓ <ÔRhÕB bc> = ./3 Ö×ØbÙO h &OÚË +Ð9D O¡ ÛÜ+> bcO= ÈÌÓ ÝÞßÄ./²Þ HIJK êz^ë/ç ×ë æ/ OJKã s CD½¾6 Fz _ > OJKÄ]/ a/æ/w 7ÿð Õ| /~7GJK F/] ýc +JK N¤JK ¢dJKõö:;JK cd JKÛ{V JK >½:; JK :;JK十一实施CMM二级过程的部分样例对于一个软件开发组织在实践中如何具体实施各关键过程域CMM并没有明确说明以下根据有关实践试着给出某公司实施CMM二级的简单样例供读者参考这些样例中是一些简单的初步的应用过程在实际的工作中还需不断完善提高尽管这些初步应用过程并不是为软件开发组织提供有用工具也不要求遵照执行但可为开展CMM实施工作提供一个借鉴某公司在二级实施过程中一共进行了8个方面改进核心实践为34个项目管理策略*项目管理过程概要*需求管理*评估过程*约定控制过程项目跟踪过程*项目管理审查过程软件质量保证过程*以下只对的部分进行说明内容包括目的目标范围及其相关流程活动等具体格式如下一项目管理策略1有效日期XXXXXXXX2授权经理XXXXXXXX3目的为使用项目管理过程提供指导下表3-1所示表3-1项目级别过程业务单元级别过程需求管理过程约定控制过程项目计划过程项目管理审核过程评估过程软件质量保证过程项目跟踪过程项目管理过程概要过程说明作为有效数据以上这些过程都需被用到获得以上有效日期三个月后应可提供所有过程的质量记录4范围适用于符合下列标准的所有项目项目约定与业务单元分离部门费用超过20000元的项目开发期超过10个星期的5策略为了满足软件交付约定项目管理过程要形成一个直接面向这个目的的管理系统这些过程要求达到以下目标1需求管理需求文档化需求提交管理人员和决策小组审查当需求改变时项目计划项目交付期和活动也都随之改变2软件项目计划需求和评估是项目计划的基础约定要在项目经理部门经理主管人及决策小组之间进行协商和其他业务单元的相互独立性进行协调和文档化决策小组评估项目计划主管人复审所有的外部业务约定对项目计划进行管理控制备案3软件项目计划进行项目计划是项目跟踪的基础计划要保持原有的状态项目经理要了解项目状态和问题如果项目计划不能被达到那么就要采取正确的措施可以调整工作方式或调整设计改变约定要重新协调所有的相关部门4软件质量保证在所有项目中执行SQA正在执行的SQA活动与项目管理报告无关主管人和项目经理定期检查SQA活动和结果5软件配置管理清楚分配的SQA任务SCM贯穿项目的整个生命周期SCM贯穿外部软件产品交付设计内部软件交付设计支持工具的整个过程例如编译器项目有能力在SCM下存储基本信息对软件基线和SCM行为进行定期检查二项目管理过程概要1有效日期XXXXXXXX2 授权经理XXXX XXXX3 目的这部分文档描述了项目管理过程如何生成一个满足软件需求协定的管理系统4 介绍这个文档描述如何确定项目管理过程如何根据这些过程形成满足交付约定的项目管理系统组织中的每一个人在项目过程中都有自己的角色如表3-2所示表3-2角色 描述/职责 主管人 业务单元领导提供业务单元外的所有约定权力部门经理直接向主管人汇报授权部门资源拥有者利用其运行约定项目项目经理 通常是一个区域管理者或项目小组领导负责项目管理活动例如设计和跟踪 项目小组成员 软件工程师或软件编写人员负责完成项目工作对设计提供计划和状态程序经理 主管人负责的员工负责跟踪约定提供市场前景SEPG 负责支持软件质量保证的过程提高活动5范围本范围包括支持在业务单元级别上的软件交付约定的必须的过程这些过程包括业务级别上的组织范围过程和项目级别上的项目基础过程如表3-3所示表3-3项目级别过程业务单元级别过程需求管理过程 约定控制过程项目计划过程 项目管理审核过程评估过程 软件质量保证过程 项目跟踪过程 项目管理过程概要6概念流程该管理系统的目的是建立一个基本的项目管理过程来跟踪项目的规模成本进度功能以及必要的过程准则以期在相似应用中可以重复在预算内准时按功能需求和按项目质量交付这些过程的概念流程用以下管理系统过程金字塔如下图所示描述为了满足约定需要做到以下几点了解需求估计工作量为了满足最初约定做工作计划控制批准约定跟踪计划状况根据约定审查状况如有必要从头修改保证产品质量遵从约定如有必要重新开始正确行动控制设备交付和记录自上向下看最初的约定是由项目计划支持的而项目计划是由需求和评估活动支撑的在最初的约定完成之前约定是由复审支撑的而复审又是由跟踪和保证支撑的自下向上看需求收集和工作量的估计结果被反馈到计划计划由约定授权接下来计划被跟踪产品和过程得以保证这些结果反馈至审核然后审核进程反馈至约定配置管理是用来防止重要项目信息丢失例如交付和记录7过程流程以下给出的全部过程流程反映了过程之间的交互和流动关系如果要了解更多过程进步的细节可以在过程文档上找到向业务单元提供某种功能产品是整个过程的出发点这些可能意味着销售程序声明另一个相互依赖的业务单元或者顾客工工程需求1 需求管理过程定义/分析/建议和项目计划定义和分析结果的过程步骤产生了需求说明书需求说明书是建议和项目计划步骤的基础2 项目计划过程初始计划项目计划初始化如果在需求说明书中不止一项项目则要将需求在项目内部分为几个部分多项目开发计划和单项目设计便被启动3 评估过程设计评估/审查评估评估是根据需求说明书和包含在项目计划里的资源和日程表进行的4 项目计划过程初始计划评估同项目计划一同作用计划要为约定的协定和建议做准备5控制过程约定协商/建议表格/约定点/约定跟踪在约定协商期间对计划和评估进行审核和讨论当取得所有小组认可后约定达成建议表格签署这就是约定约定信息被记录在约定记录中并且更新产品行车图6 项目跟踪过程实际与计划比较/估计状态和性能跟踪项目状态并同实际对比明确其差别处估计差别的影响决定是否需要采取正确的行动7 需求管理过程需求状态跟踪跟踪需求状态保证在整个项目的生命期中需求的实现8 软件质量保证过程年度SQA 计划/进行核查每年都应当准备一个来自单个项目的质量计划的SQA 计划这个计划展示了资源和进度的保证活动比如审计在建议之后执行计划和审计9 项目管理复审过程状态会议/项目复审/约定复审项目状态和性能的管理复审是在两个级别上进行的状态会议是在项目级别上召开的项目复审是在商务单元级别上进行的约定复审是用来复审在产品行车图上所有约定进行的状态在这一点上如果需要重新计划则过程流程也还需要重新设计如果需要重新计划则进行以下10~13步骤否则回到约定点去继续项目跟踪和项目管理审核过程如果项目完成则转至14步的交付点 10 项目计划过程需要重新计划吗重新计划更新项目计划如果需要从需求变更和评估变更获得输入为建议和约定协商准备一个修订计划11 需求管理过程需求变更控制如果修订计划包括需求变更执行需求变更控制步骤12 评估过程附加评估进行附加估计是为了满足项目计划需要以为了下一个开发阶段可能会需要重新计划需求变更或严重偏离计划或者改进评估13 约定控制过程新的约定协商返回至约定点或进行到交付点在约定协商期间复审和设计和评估当所有小组同意后做出新的约定并且签署建议表格这是新的约定点关于约定的信息记录在约定变更记录中同时产品行车图也被更新然后从这个新的约定点针对已更新的计划继续进行项目跟踪过程和项目管理复审过程如果项目完成则转至交付点步骤1414 项目跟踪过程事后分析交付之后举行从这个项目获得的信息和学到的教训的事后分析评估15 评估过程更新历史数据库收集执行后的实际数据同估计的比较存入历史数据库以备将来项目评估活动使用8 过程流程图 参考下图所示9质量记录质量记录是报告和表示使用过程的文档在过程存在问题的地方质量记录会指出过程改进的需要为了支持产品寿命必须进行质量记录建立项目备注存储以下项目管理过程的文档如表3-4所示如果记录没有存储在备注中在备注中应该有一个确定那条记录位置的条目表3-4 备注章节 文档/记录控制记录KPA/KP 的可跟踪性 10 项目管理策略 */*/C-1*C-211 项目管理过程概要*/C-1*C-220 需求管理过程 2RM 21 需求说明书 需求管理 2RM/AB-2 2 2 建议需求管理 2PP/AB-1 2 3 需求可跟踪性工具/矩阵需求管理 2RM/AC-2M-130 项目计划过程 2PP 2MC31 多项目开发设计 项目计划 2PP/AC-72PT/AB-13 2 单项目计划 项目计划 2PP/AC-72PT/AB-133质量计划项目计划 2PP/AC-8AC-132PT/AB-12QA/AC-3 2CM/AC-440 评估过程 2PP50 约定控制过程 2PP2PT60项目跟踪过程 2PT70 项目管理复审过程 2PT80 软件质量保证过程 2QA90 其他文档/记录可选2CM/AC-3说明C 约定AB 能力AC 活动M 度量V 验证2RM 需求管理KPA 2PP 项目计划KPA 2PT 项目跟踪KPA 2QA 质量保证KPA 2SM 转包合同管理KPA 2CM 配置管理KPA *第2级所有的KPA 以下列出了维护组织范围内过程的其他质量记录如表3-5所示表3-5控制组 文档/记录 控制过程KPA/KP 的可跟踪性 程序管理 产品流程图 约定控制 2PP 2PP 2PP/AC /AC /AC--42PT/AC 2PT/AC--4程序管理 约定改变记录 约定控制 2PP/AC 2PP/AC 2PP/AC--42PT/AC 2PT/AC--3SEPG SEPG 约定协议书 约定控制 2PP/AC 2PP/AC 2PP/AC--42PT/AC 2PT/AC--3SEPG SEPG项目审核日程项目管理审核 2PT/V 2PT/V 2PT/V--1 SEPG v SEPG v SQA 计划 软件质量保证 2QA/AC 2QA/AC 2QA/AC--1 SEPG SEPG SQA 审查报告 软件质量保证 2QA/AC 2QA/AC 2QA/AC--4 SEPG SEPG SQA 状态报告 软件质量保证 2QA/AC 2QA/AC 2QA/AC--6 SEPG SEPG尺度报告各种过程*/M */M */M--1说明C 约定AB 能力AC 活动M 度量V 验证2RM 需求管理KPA 2PP 项目计划KPA2PT 项目跟踪KPA 2QA 质量保证KPA 2SM 转包合同管理KPA 2CM 配置管理KPA *第2级所有的KPA三需求管理过程1 有效日期XXXX XXXX2 授权经理XXXX XXXX3 目的本文档描述为确保交付符合约定的功能和质量特点的产品而进行的需求管理过程4 范围这个过程可应用于一个或多个需求者给出的一个软件项目初始需求集合管理和控制这些需求以使得最终产品满足需求由于没有需求者协商同意需求所以这个过程不能应用在高级项目开发中本过程不包括收集初始需求集合的特定活动但是它设想用一些方式收集一个初始集合为了协商和同意文档化四评估过程1 有效日期XXXX XXXX2 授权经理XXXX XXXX3 目的这个文档描述了评估项目规模资源进度的过程用来支持项目计划和约定控制评估是来自于输入的数据结果必定是一定范围且没有确切的答案然而随着过程的改进及与历史数据的校准评估的作用才能逐渐显示出来4 目标评估过程的目标是提供输入数据来建立和保持产品开发约定项目计划是在评估项目的规模资源及进度的基础上建立的它反映在过去相似项目成绩上的表现与项目开发计划过程相关评估过程为以下问题提供了框架结构什么时候做评估谁应包括在内评估在其生命周期至少要做三次接近需求的批准或通过交付覆盖设计的建议在需求和计划任务上进行评估接近设计的批准通过交付覆盖实现使用当前的项目数据和计划任务的评估接近实现的完成通过交付覆盖综合测试使用当前的项目数据和计划任务的评估如果需要项目计划过程也许需要额外的评估因为评估是建立在需求的基础之上如果需求改变评估是无效的这就是需要新的评估最近项目的历史数据可用来提高评估的可靠性当项目完成时这些历史数据也应该收集起来5 需求与期望项目经理和小组成员需要把历史数据当作评估项目规模资源进度的基础它们需要一个可重复的简单的方法来产生评估6 过程流程评估过程的流程图如下图所示评估过程步骤发 相互依赖性过程步骤() % 0123 4ABCD EFGHI3 >?@五项目跟踪过程1 有效日期XXXX XXXX2 授权经理XXXX XXXX3 目的本过程的目的就是在项目的生命周期内对照计划临控一个项目的实际过程临控工作是通过收集有关进度资源成本特性和质量的重要信息完成的反映项目当前状态的信息是要与最初的和或当前通过的项目计划做比较项目过程是否违反计划的比较允许管理部门去确定与计划的偏差以便能对项目目标计划或资源做适当的调整它也能确保决定项目生存能力的重大的偏差被估计到并以适时的方式提到高层管理中4目标1这个过程应产生这样的信息它们是执行周期性项目状态会议和项目复审所需要的2这人过程应给项目经理和高层管理提供足够的信息来做出以数据为基础的业务决策3这个过程应提供在评估和计划效果方面支持未来项目的信息足够的项目追踪过程将被当作普通项目管理部门复审过程的副产品来复审5 过程流程项目追踪过程的流程图如下图所示项目跟踪过程 项目计划过程六软件质量保证过程 1有效日期XXXX XXXX Z [\L!M;½Ã-½½J |ü´×7}~NO>£ F6XXXX2授权经理XXXX3目的软件质量保证SQA过程提供了对软件开发活动是否在通过的方式下进行的独立的验证软件开发活动"这个词指整个组织活动并包括开发产品信息连续设计长工各种支持功能活动它包括管理活动也包括非管理活动在通过的方式下是指活动和最终产品符合可行的政策过程规程计划和标准4范围虽然所有的软件项目和大部分软件开发活动都潜在地属于SQA复审但并不是所有的软件开发活动都需要一个正式的SQA过程而且对某些活动应用SQA所得的利益要比应用在其他活动上大的多为了得到最大的利益SPEG和指挥委员会需要监视和复审SQA过程以便使得可利用的SQA资源总是用在那些管理部门认为对质量保证最重要的地方指挥委员会和SPEG要形成和通过一个SQA计划这个计划确定管理部门SQA优先考虑的事和资源承诺来完成计划他们还要按季度联合的复审SQA状态结果和计划5目标6顾客需要和期望7输入此过程包括两种类型输入SQA年度计划输入和审查过程输入8活动9输出审查报告月度状态报告指导委员会对SQA活动的复审10尺度11相互依赖性12过程流程软件质量保证过程流程图如下图所示软件能力成熟度模型 CMM d :; rìotmqp Lìqmo Mmmp§po >+ G bOe[Gf T&+ 678+ ,NO0 >qm?mo Xqp I,jJKGNOzm, 8,NO~j @/GJKNO O ^>GGJ~j L 30 ,NO~7 >qm?moXqppìo \|ü qmXqqm§ -:; ±opqmop rìotmqp Mmmp§po abO rìotmqp Xqo °ppq ,x ±opqq Lqmo 4 Xppq ppt 8>,//GNO\ >klò} rìotmqpXqpoqmm>pqso K->NOha m:;rìotmqp roqmo Mmmp§po ijò>GQ:;~ cd rìotmqp mno qmp N8NOGò}qVcG|ü56 #>,8>GQz}~ cd Gf :;-I~7G>NO | a V *>,G) #*op- *>,-í VpáabGú T.+ 6:;+ 7dNO:; moomopXqpMmmp§po cd:; rìotmqpmnoMmmp§po 8NOG*I,7d> Q]ed>t :; N7dpklabcd#z 7JK T1+ =>+ ú- pìpoXqppo N~ 3%úQ]úVd-'( f× z@/N 7d:;"1T`@/G TUfG ù'( :; psn Lsmp Mmmp§po NOj:; XqpLsmpMmmp§po O acd NO a ùG+ @/GNO+^=Fà 四CMM 实施要点上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM "^ LMM -[\ ×R@/G@/L,NO L,×>f LMM GJK-qG30 LMM G0^G ^O NOO:; hONO]OGINOhG6O GVefì NO#*^h;G La { 9 ^h}GO:; NO*]8O}hGOz±$$f. ú +,abG) yNOGa V qu op Id_@/8z?q OG0 A~GNO:2 ~Gaba &8NO*op/ò ^NO/I)O:; &×G56^Ròü $% ]DGR@/P. MNOOGó $%qnL| G56 zNOG/} ¨ 2^-×G +,Gy/I8G3, / Gàó Lg@/Qqu,à7z LMM OJKVòiUG ÷ $eG|@/NO ~ó;+G)- Z /0 LMM JK ¤G]$ lsmo SR t Wz8aNO;Q]G±G0 Xsns ó LMM 9yLMM 3^NOG/J Sà F/]zàMI×>G56 9'(|ab ¨xx-W LMM hGNOzONO:;NO 8GNO/EU_RGopfG S á:Gj w LMM¨¨ F/8\@/ ù@/GaNOG 8^ x |GR\@/?R\> LMM¨¨ Gù2í /0U8j Y @/ LMM NOGó 2f)Uà>×G N 8N OG/@/`A+ f÷8+A Lg@/C]DE q3NO &V @/2eCù è éê @/8UhG§¨NOì2 G!G Gz 2í#,@/UVW ¤zUxNO+ , @/~7/G+JF/h @// GJ×h$7GN OJNO X {@/U§¨)>$é @/¤zzUx+ )J+G, ~7òü à7eO 2íGà&J× J)G ¨w +)cdG @/^)>G¨w Jc 4)4 4G R-W L2 @/P-j.GNOòü, @/òGó?5 9=ê GNO óqnNO8|üu & 7d× × 上海市信息办技术中心SHIOTC软件能力成熟度模型 CMM ¨÷J¤~2Z^GZJK Z÷G Gùà*Gú w÷L× Q]Gí{KG8× 8\>/ Y÷~7>óW INOGó)Wü ÷8>Gd{| tòü* ÷NO~tG Q]G u ÷hNO × Q] >|ü >Ze y/0ab ×Gò} í|üVòvNOG |üíG2f8 ÷@/G:;)NOG~7)6-G~ }s8op G^_~7êG,è 867|üNOG/0úGY}s n ÷G43/G ÷] NO2^ hy;ìGNO cd)zG)à LMM [*2í^x×GG-§¨ 92í^¤@/Oh *;¤zG U@/UKLGG LMM GYZ "#O > =_G56'(V^OGe OòüO:; ]GR OQ]B6OYZ 97ê2BGNO G+~730:; 4d>tVij-+GJ GON OzeG zXà\]G IFG&JD4ù GIfd±j+nGjL,ifíBONOV [\ LMM x]8O;!í^)G> 8Gí F/×a bíH u06 LMM JKG@/JKà7>GéN)Q ) U _R@/N LMM ó z@/PQONOJuG " efhêz LMM JKG Gi ±° ]@/1 f LMM G[ × ±KKà ±omo W LMM GfKG+"1Oe KK m ¤~hG§¨J+h °KKi °omns ~7L,J+G|ü KKà o ×$|ü KK pmq ghXYZzí^TUGNO óqn×Gf NO L2 @/ó?ó;G|2 LMM fGNO @//0ó^ \U;ONOGQ AG×,PQ>- LMM eR,,上海市信息办技术中心SHIOTC。
软件能力成熟度模型CMM
• 第 2 级(可重复级)有 6 个关键过程域,主要涉及建立软 件项目管理控制方面的内容。
• 需求管理( Requirements Management , RM )
• 软件项目计划( Software Project Planning , SPP )
• 软件项目跟踪与监控( Software Project Tracking and Oversight , SPTO )
• CMM 的核心思想是将软件开发视为一组过 程,并根据统计质量管理的理论对软件开 发进行过程管理,以使其满足工程化、标 准化的要求,使企业能够更好地实现商业 目标。它侧重于软件开发的管理及软件工 程能力的提高,因此 CMM 可以作为企业软 件过程改进的指南,帮助软件开发机构建 立严格的、规范的软件开发过程,最有效 地提高软件工程能力。
• CMMI 把现存所有的以及将被发展出来的各种能力成熟度模型,集成在一个框架中。 • SA-CMM 用于组织获取和采购基于软件的应用系统的软件过程,美国的国防部、陆军、
海军和一些商用组织都已采用 SA-CMM 对他们的获取能力进行评估。 • SE-CMM 是描述一个组织为保证实现一个好的系统工程的主要元素。 • P-CMM 是有关组织的人力资源管理的模型。 • IDEAL 模型是一个组织用于启动、规划和实现过程改善措施蓝图的模型,概括了建立
• 组织过程焦点( Organization Process Focus , OPF ) • 组织过程定义( Organization Process Definition ,
OPD ) • 培训程序( Training Program , TP ) • 集成软件管理( Integrated Software Management ,
软件能力成熟度模型等级和过程
软件能力成熟度模型(CMM)是一个用于评估和改进软件开发能力的框架,它通过定义五个不同的成熟度等级来帮助组织了解他们软件开发过程的状态,并提供指导他们改进的路径。
这五个等级分别是初始级、重复级、定义级、管理级和优化级。
在本文中,我将从这五个等级出发,深入探讨软件能力成熟度模型等级和过程,以期帮助读者更全面地理解这一主题。
### 1. 初始级在软件能力成熟度模型中,初始级是指组织在软件开发过程中缺乏一致性和可预测性。
在这个阶段,软件开发过程通常是不受控制的,因为缺乏标准化的过程和程序。
这意味着在初始级的组织中,软件开发过程是混乱的,不可靠的,并且难以管理和预测。
### 2. 重复级在重复级,组织开始意识到需要对软件开发过程进行一定程度的标准化和文档化,以确保在软件开发过程中能够重复使用成功的实践。
在这个阶段,组织可能会创建一些基本的流程,并且对这些流程进行持续改进,以确保在软件开发过程中的可预测性和一致性。
### 3. 定义级在定义级,组织已经实现了对软件开发过程的标准化,并且能够对这些过程进行量化和测量。
这意味着组织可以更好地控制和管理软件开发过程,并且能够更好地预测成果和生产力。
在这个阶段,组织通常会将标准化的软件开发过程进行文档化,并且建立一些度量指标来监控和改进这些过程。
### 4. 管理级在管理级,组织不仅能够量化和测量软件开发过程,还能够根据这些度量指标来进行持续改进和优化。
这意味着组织已经具有较高的管理水平,能够监控和控制软件开发过程,并且能够在持续改进中实现更高的成果和生产力。
在这个阶段,组织通常会建立一个持续改进的文化,并且不断提高对软件开发过程的认识和理解。
### 5. 优化级在优化级,组织已经实现了对软件开发过程的最高理解和控制。
这意味着组织能够根据对软件开发过程的深刻理解来实现最佳的成果和生产力,并且能够持续改进和优化软件开发过程。
在这个阶段,组织不断寻求创新和改进,以保持其在软件开发领域的领先地位。
软件能力成熟度模型(CMM)
CMM是Capability Maturity Model for Software的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。
它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此 CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM是由美国卡内基-梅隆大学软件工程研究所(CMU SEI)研究制定,并在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。
CMM把软件开发过程的成熟度由低到高分为五级,等级越高,表明该企业软件开发失败风险越低,整体开发时间越短,并能减少开发成本,降低错误发生率,提高产品质量。
按照《使用软件工程》的标准,CMM将软件分为5个等级:(如图一所示)图一1.初始级(initial)工作无序,项目进行过程中常放弃当初的规划管理无章,缺乏健全的管理制度开发项目的成效不稳定,产品的性能和质量依赖于个人能力和行为。
2.可重复级(Repeatable)管理制度化,建立了基本的管理制度和规程,管理工作有章可循初步实现标准化,开发工作较好的实施标准稳定课跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件3.已定义级(Defined)开发的过程,包括技术工作和管理工作,均已实现标准化,文档化。
建立了完善的培训制度和专家评审制度全部技术活动和管理活动均可稳定实施项目的质量,进度和费用均可控制。
对项目进行中的过程,岗位和指责均有共同的理解。
4.已管理级(Managed)产品和过程已建立了定量的质量目标。
过程中活动的生产率和质量是可度量的。
已建立过程数据库。
已实现项目产品和过程的控制可预测过程和产品质量趋势。
软件能力成熟度模型PPT课件
案例三:某大型企业的CMMI应用与效果
总结词
CMMI助力大型企业提升软件质量与竞争力
详细描述
某大型企业为了提高软件质量和竞争力,全面应用了CMMI。通过实施CMMI,该企业 规范了软件开发流程,提高了软件质量。同时,CMMI的应用还帮助该企业提高了团队 协作和项目管理能力,降低了软件开发成本和风险。这些改进使得该企业的软件产品更
评估结果与改进
反馈评估结果
将评估报告向相关干系人进行反馈,以便了解软件开发生命周期的成 熟度现状和改进方向。
制定改进计划
根据评估结果,制定针对性的改进计划,明确改进目标、措施、时间 表和责任人。
实施改进措施
按照改进计划,组织相关人员进行改进工作,确保改进措施的有效实 施。
监控与评审
对改进过程进行监控和评审,确保改进工作的顺利进行,并及时调整 改进计划以确保达成预期的改进目标。
企业如何持续改进软件能力成熟度
制定改进计划
企业应根据自身实际情况,制定具体 的改进目标和计划,明确改进的方向 和措施。
实施过程改进
企业应积极推行过程改进,通过优化 流程、提高团队能力、加强项目管理 等方面提升软件能力成熟度。
பைடு நூலகம்
持续监控与评估
企业应建立持续监控和评估机制,及 时发现和解决存在的问题,确保改进 效果的持续性和稳定性。
PART 04
CMMI实践案例
案例一:某软件开发公司的CMMI实施
总结词
成功实施CMMI,显著提升软件质量
详细描述
某软件开发公司为了提高软件质量,成功实施了CMMI。通过制定严格的软件开发流程和质量标准, 该公司减少了软件缺陷和错误,提高了软件的可维护性和可靠性。同时,CMMI的实施还帮助该公司 提高了团队协作和项目管理能力,从而提高了整体软件开发的效率和质量。
能力成熟度模型CMMI
能力成熟度模型C M M I The document was prepared on January 2, 2021意义与功能CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成.CMMI是CMM模型的最新版本.早期的CMMICMMI-SE/SW/IPPD版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用.随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型.具体内容自从1994 年SEI 正式发布软件CMM 以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品和过程开发方面的多个能力成熟度模型.虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况.这时他们就会发现存在一些问题,其中主要问题体现在:1. 不能集中其不同过程改进的能力以取得更大成绩;2. 要进行一些重复的培训、评估和改进活动,因而增加了许多成本;3. 遇到不同模型中有一些对相同事物说法不一致,或活动不协调,甚至相抵触. 于是,希望整合不同CMM 模型的需求产生了.1997 年,美国联邦航空管理局FAA 开发了FAA-iCMMSM联邦航空管理局的集成CMM,该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM 和软件的SW-CMM 三个模型中的所有原则、概念和实践.该模型被认为是第一个集成化的模型.CMMI与CMM 最大的不同点在于: CMMISM-SE/SW/IPPD/SS 版本有四个集成成分,即:系统工程SE和软件工程SW是基本的科目,对于有些组织还可以应用集成产品和过程开发方面IPPD的内容,如果涉及到供应商外包管理可以相应的应用SSSupplier Sourcing部分.CMMI 有两种表示方法,一种是大家很熟悉的,和软件CMM 一样的阶段式表现方法,另一种是连续式的表现方法.这两种表现方法的区别是:阶段式表现方法仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路.而连续式表现方法则通过将CMMI 中过程区域分为四大类:过程管理、项目管理、工程以及支持.对于每个大类中的过程区域,又进一步分为基本的和高级的.这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑.CMMI各个进程的关键元素CMMI自出道以来,它所达到的目标就没有变过,第一个是质量,第二个是时间表,第三就是要用最低的成本.不过特别强调的是,CMMI不是传统的、仅局限于软件开发的生命周期,它应该被运用于更广泛的一个范畴——工程设计的生命周期.TSP的建立,也是为了支持CMMI的这样一个系统. 那么CMMI究竟是什么呢它并不是一个过程,也不是告诉你怎么去做一件事情.如果用一句话来概括什么是CMMI,它就是各个进程的一个关键的元素,在很多领域里面一个集成的点.它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面.一、CMMI的起源随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型.例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等:1 SW-CMM Software CMM 软件CMM2 SE-CMM System Engineering CMM 系统工程CMM3 SA-CMM Software Acquisition CMM 软件采购CMM4 IPT-CMM Integrated Product Team CMM 集成产品群组CMM5 P-CMM People CMM 人力资源能力成熟度模型为了以示区别,国内外很多资料把CMM叫做SW-CMM.按照SEI原来的计划,CMM的改进版本应该在1997年11月完成,然后在取得版本得实践反馈意见之后,在1999年完成准版本.但是,美国国防部办公室要求SEI推迟发布版本,而要先完成一个更为紧迫的项目CMMI.CMMICapability Maturity Model Integration即能力成熟度集成模型,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去.这个框架有两个功能,第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进.就软件而言,CMMI是SW-CMM的修订本.它兼收了SW-CMM 版C稿草案和SPA中更合理、更科学和更周密的优点.SEI在发表CMMI-SE/SW 版时,宣布大约用两年的时间完成从CMM到CMMI的过渡.CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本.CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力.二、实施CMMI的意义很多人认为,实施CMMI的意义在于项目工程走向世界,可以在西方国家接到订单.实际上,这只是我国企业实施CMMI的意义的很小一部分.更为重要的意义则是,CMMI的实施能够提高我国企业的管理水平.降低企业的工程成本.事实表明,企业实施CMMI技术的投入都会得到丰厚的回报.据SEI统计,用于软件项目上的CMMI的投资,其回报率在5:1到8:1之间.由此可见,为什么这么多的企业纷纷实施CMMI项目管理技术.近年来,很多软件企业纷纷实施CMMI管理模式,这一方面反映了我国企业在进入WTO后的危机意识,以及与世界接轨的迫切愿望.另一方面则反映出我国软件企业在改进管理方法上所作的努力.但是CMMI到底能够为我们做什么呢实际上这个问题对不同的人有不同的答案.对采购部门的人员来说,掌握了CMMI技术可以有目的地考察项目实施人员或公司的实施能力,从而保证所采购的项目能够顺利完成.对于项目经理来说,掌握CMMI技术能够提高自己的管理能力,从而能够使项目高质量,低成本,按期限地完成.对于企业老总来说,CMMI还能够引入科学的管理理念,提升企业的整体管理水平.在美国,很多企业通过CMMI评估,一方面为了满足承包国防工程或一些大企业的工程的要求,另一方面也是为了提高企业自身的管理能力.美国政府的工程项目,绝大多数都要求承包商有一定的CMMI级别作为参加投标的资格.越来越多的大型企业开始要求其工程承包商具有一定的CMMI级别.级别高的企业在赢得项目的竞标中具有一定的优势.因此,如果没有CMMI的等级评估,企业就会失去很多商机.三、CMMI的两种实施方法CMMI有两种不同的实施方法,不同的实施方法,其级别表示不同的内容.CMMI的一实施方法为连续式,主要是衡量一个企业的项目能力.企业在接受评估时可以选择自己希望评估的项目来进行评估.因为是企业自己挑选项目,其评估通过的可能性就较大一点.但是,它反映的内容也比较窄一点.它仅仅表示企业在该项目或类似项目的实施能力达到了某一等级.而另一种实施方法为阶段性.它主要是衡量一个企业的成熟度,亦即是企业在项目实施上的综合实力.企业在进行评估时,一定要由评估师来挑选企业内部的任何项目,甚至于任何项目的任何部分.一般地讲,一个企业要想在阶段性评估中得到三级,其企业内部的大部分项目要达到三级,小部分项目可以在二级,但绝不能够有一级.阶段性实施方法的难度要大一些.虽然,CMMI的表述方式不同,但其实质内容是完全一样的.是同一种方法的两种不同的表述方式.企业在准备评估时要做的准备工作也是完全一样的.这些工作对企业的管理上的帮助也是一样的.因此,不管企业需要做什么样的评估,企业所获取的实惠应该是差别不大.具体要做连续性评估,还是做阶段性评估则要看企业对等级评估证书的具体要求.四、CMMI的五个台阶台阶一:CMMI一级,完成级.在完成级水平上,企业对项目的目标与要做的努力很清晰,项目的目标得以实现.但是由于任务的完成带有很大的偶然性,企业无法保证在实施同类项目的时候仍然能够完成任务.企业在一级上的项目实施对实施人员有很大的依赖性.台阶二:CMMI二级,管理级.在管理级水平上,企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查.企业在二级水平上体现了对项目的一系列的管理程序.这一系列的管理手段排除了企业在一级时完成任务的随机性,保证了企业的所有项目实施都会得到成功.台阶三:CMMI三级,定义级.在定义级水平上,企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且,企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化这样,企业不仅能够在同类的项目上生到成功的实施,在不同类的项目上一样能够得到成功的实施.科学的管理成为企业的一种文化,企业的组织财富.台阶四:CMMI四级,量化管理级.在量化管理级水平上,企业的项目管理不仅形成了一种制度,而且要实现数字化的管理.对管理流程要做到量化与数字化.通过量化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动. 台阶五:CMMI五级,优化级.在优化级水平上,企业的项目管理达到了最高的境界.企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防.能够主动地改善流程,运用新技术,实现流程的优化.由上述的五个台阶我们可以看出,每一个台阶都是上面一阶台阶的基石.要上高层台阶必须首先踏上较低一层台阶.企业在实施CMMI的时候,路要一步一步地走.一般地讲,应该先从二级入手.在管理上下功夫.争取最终实现CMMI的第五级.。
软件能力成熟度模型
软件能力成熟度模型CMM(Capability Maturity Model)是由美国卡内基-梅隆 大学软件工程研究所(CMU/SEI)推出的评估软件能力与成熟度的一套标准,该标 准基于众多软件专家的实践经验。
从86年开始,开发软件过程成熟度框架。 91年8月SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability
2
12.1.1 CMM的基本概念
1. 什么是软件过程 一个软件过程是指人们开发和维护软件及其相关产品
所采取的一系列活动。
规程与方法
有技能经过培
训的开发人员
过程
工具和设备
3
12.1.1 CMM的基本概念
2. 什么是软件能力成熟度?
由于特定项目的属性和环境限制,项目的实际性能并不能充分反映组织的软 件过程能力,但成熟的软件过程可弱化和预见不可控制的过程因素(如客户需求变 化或技术变革等)。
优化级 已管理级 已定义级
可重复级
初始级
初始级
6
可重复级
可重复级(Repeatable):
在可重复级,组织建立了管 理软件项目的方针以及为贯彻执 行这些方针的措施。组织基于在 类似项目上的经验对新项目进行 策划和管理。组织的软件过程能 力可描述为有纪律的,并且项目 过程处于项目管理系统的有效控 制之下。
一个组织的软件过程能力为组织提供了预测软件项目开发的数据基础,提供了 全面的软件质量保证。
软件过程成熟度是指一个软件过程被明确定义、管理、度量和控制的有效程 度。成熟意味着软件过程能力持续改善的过程,成熟度代表软件过程能力改善的潜 力。
4
12.1.2 软件过程的成熟度等级
CMM将软件过程的成熟度分为5个级别(Maturity Levels),如 图所示,5个等级分别是:无ຫໍສະໝຸດ 过程SW-CMM的关键过程区域
CMM:软件成熟度模型
CMM:软件成熟度模型周末在家闲来⽆事,泡咖啡看书,正好看到了关于CMM的相关资料,分享出来,也当做学习笔记。
⼀、CMM简介CMM,英⽂全称为Capability Maturity Model for Software,即:软件成熟度模型。
CMM的核⼼是把软件开发视为⼀个过程。
它是对于软件在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
根据这⼀原则对软件开发和维护进⾏过程监控和研究,以使其更加科学化、标准化,使企业能够更好地实现商业⽬标。
分级:⼀级为初始级,⼆级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
优点:1、提⾼软件开发的管理能⼒,因为CMM可提供软件公司⾃我评估的⽅法和⾃我提⾼的⼿段;2、提⾼软件开发效率;3、提⾼软件质量;4、提⾼软件竞争⼒;⼆、初始级(Initial)特点:软件⼯程管理制度缺乏,过程缺乏定义、混乱⽆序。
经常由于缺乏管理和计划导致时间、费⽤超⽀,管理⽅式属于反应式,主要⽤来应付危机,过程不可预测,难以重复。
即使制定了⼀些软件⼯程规范,但如果规范未能覆盖基本的关键过程要求,且执⾏时没有相关资源的⽀持保证,仍将其视为初始级。
关键词:技术负债提⾼:建⽴项⽬过程管理,建⽴各种计划,开展QA活动。
三、可重复级(Repeatable)特点:基于类似项⽬的经验,建⽴了基本的项⽬管理制度,采取了⼀定的资源控制⼿段。
管理⼈员可及时发现问题,采取应对措施。
软件开发的⾸要问题不是技术问题⽽是管理过程,⼀个可管理的过程则是⼀个可重复的过程。
提⾼:引⼊需求管理、项⽬管理(包括项⽬跟踪和监控)、⼦合同管理、软件配置管理和质量管理(包括质量量化和监控)。
四、已定义级(Defied)特点:软件过程⽂档化、标准化,可按照需求改进开发过程,采⽤评审⽅法保证软件质量,引⼊case管理⼯具提⾼质量和效率。
将执⾏标准集成到企业软件开发标准过程中,根据标准过程执⾏,可根据具体情况进⾏调整,调整需要相关⼈员确认通过。
软件能力成熟度模型――CMM的理论和实践
软件能力成熟度模型――CMM的理论和实践吉林大学计算机学院李文辉主要参考讲义:1.Capability Maturity Model for Software, Version 1.1Mark C. PaulkBill CurtisMary Beth ChrissisCharles V. Weber2.Key Practices of the Capability Maturity Model,Version 1.1Mark C. PaulkCharles V. WeberSuzanne M. GarciaMary Beth ChrissisMarilyn BushCapability Maturity Model for Software, Version 1.1前言软件危机(software crisis)CMM的发展过程(SEI /Software Engineering Institute/Carnegie Mellon University)CMM产生的理论基础1.过程成熟度框架(The Process Maturity Framework)1.1 不成熟和传输组织的比较1.2构成过程成熟度基础的基本概念1.3能力成熟度模型概述2.软件过程成熟度的五个等级成熟度等级成熟度等级的五个级别的主要特征2.1等级的行为特征×成熟度可以通过以下各项对其特征加以描述:1.组织为建立或改进软件过程所进行的活动2.对每个项目所进行的活动3.所产生的横跨各项目的过程能力×等级1:×等级2:1.具有项目级的方针和执行这些方针的规程2.基于在类似们项目上的经验对新项目进行规划和管理3.达到等级2的目的是使软件项目的有效管理过程制度化4.一个有效过程可特征化为:实用的、已文档化的、已实施的、已培训的、已测量的、能改进的5.等级2组织的过程能力可概括为有纪律的。
×等级3:1.有组织级的标准软件过程2.存在一个负责组织的软件过程活动的组,SEPG3.实施全组织的培训计划4.项目剪裁组织的标准软件过程去建立他们自己的软件过程(项目定义软件过程)5.等级3组织的软件过程能力可概括为标准和一致的×等级4:1.组织对软件产品和过程都设置定量的质量目标2.组织内建立了软件过程数据库3.开始定量地认识软件过程4.软件过程变化较小,一般在可接受的范围内5.等级4组织的软件过程能力概括为可预测的×等级5:1.整个组织集中精力进行不断的过程改进2.缺陷预防3.技术更新4.等级5组织的软件过程能力可特征化为不断改进2.2理解成熟度等级描述模型规范模型CMM不是处方,它并不告诉组织如何进行改进×理解初级×理解可重复级和已定义级×理解已管理级和优化级2.3软件过程的可视性等级1―――一个黑盒等级2―――项目里程碑处具有管理可视性等级3―――盒子的内部结构可视等级4―――软件过程被配备上度量,并得到定量地控制等级5―――对过程不断改进3.4过程能力和性能预测随着成熟度增加,预定目标结结果与实际结果间的差距减少随着成熟度增长,实际结果相对预定目标结果的偏差范围减小随着成熟度增加,预定目标结果得到改善2.5跳越成熟度等级跳跃等级是违反生产规律的4.CMM的可操作定义四种用法3.1成熟度等级的内部结构3.2成熟度等级3.3关键过程区域每个关键过程区域识别出一串相关活动,当这些活动全部完成时,能达到一组对增强过程能力至关重要的目标分别叙述等级2-等级5的每个KPA3.4共同特点执行约定――必须执行的活动执行能力――先决条件执行的活动描述为了建立过程能力必须作什么,而其他的实践是执行的活动中所描述的实践规范化的基础3.5关键实践5.运用CMM4.1软件过程评估和软件能力评价方法4.2软件过程评估和软件能力评价之间的差别4.3CMM在过程改进方面的其他用法Key Practices of the Capability MaturityModel2.能力成熟度模型概述2.1介绍能力成熟度模型软件能力成熟度模型是一种描述有效软件过程的关键元素的框架,CMM描述一条从无序的不成熟的过程到成熟的、有纪律的过程的进化的改进途径。
软件能力成熟度模型一级申报条件
软件能力成熟度模型一级申报条件摘要:一、软件能力成熟度模型简介1.概念和作用2.发展历程二、软件能力成熟度模型一级申报条件1.基本条件2.具体要求3.适用范围三、申报流程与评审标准1.申报流程2.评审标准四、一级申报的意义和价值1.提升软件开发能力2.提高企业竞争力3.有助于获取更多客户信任正文:软件能力成熟度模型(Capability Maturity Model,CMM)是一种衡量软件开发过程成熟度的标准,能够帮助企业提高软件开发效率、降低开发成本、提高软件质量。
CMM分为五个等级,从低到高分别为:初始级、可重复级、定义级、管理级和优化级。
企业可以根据自身软件开发过程的成熟度,选择合适的等级进行申报。
本文主要介绍软件能力成熟度模型一级申报条件。
首先,我们需要了解软件能力成熟度模型的基本概念和作用。
CMM起源于20世纪80年代的美国,由卡内基梅隆大学的软件工程研究所(SEI)研发。
该模型通过对软件开发过程进行度量、分析和管理,帮助企业提高软件开发能力、提高软件质量和降低开发成本。
软件能力成熟度模型一级申报条件包括以下几个方面:1.基本条件- 企业应具备一定的软件开发能力,能够独立完成软件开发项目。
- 企业应具备一定的项目管理能力,能够对软件开发项目进行有效的计划、组织、协调和控制。
- 企业应具备一定的质量保证能力,能够对软件开发过程进行有效的质量管理和控制。
2.具体要求- 软件开发过程应具有一定的规范性和可重复性,能够按照预定计划和流程完成软件开发任务。
- 软件开发过程中应采用一定的文档化管理,能够对开发过程中的资料、文件进行有效的管理和归档。
- 软件开发过程中应进行一定的度量和分析,能够对开发过程中的质量、进度、成本等方面进行有效的度量和分析。
3.适用范围- 软件能力成熟度模型一级申报条件适用于各类企业,包括软件开发企业、系统集成企业、IT服务企业等。
- 软件能力成熟度模型一级申报条件适用于各类软件开发项目,包括企业内部软件开发项目、外包软件开发项目等。
软件工程与能力成熟度模型cmm
软件工程与能力成熟度模型cmm中国计算机用户20世纪70年代中期,软件工程管理引起广泛注意。
当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的失败项目是因为管理不善而引起的,而不是因为技术实力不够。
他们进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。
这个结论非常重要。
软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制等等。
在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。
由此可见,软件工程管理的意义至关重要。
软件项目的特殊性软件工程管理和其它工程管理相比有其特殊性。
首先,软件是知识产品,进度和质量都较难度量,生产效率也较难保证。
其次,软件系统复杂程度也是超乎想象的。
例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,将需要2000人年的工作量,这是非常惊人的。
正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。
cmm,逐步的成熟美国carnegie mellon大学软件工程研究所(cmu/sei)主持研究与开发的cmm/psp/tsp技术,为软件工程管理开辟了一条新的途经。
cmm是英文“capability maturity model”的简称,意为能力成熟度模型。
cmm的本质是软件管理工程的一个部分。
根据软件生产的历史与现状,cmm框架可用5个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。
任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。
CMM简介(软件能力成熟度模型)
关 键 过 程 域
不断改进的过程
过程更改管理 技术更新管理 缺陷预防 软件质量管理
优化级
可预测的过程
定量过程管理 同行评审 组间协调 软件产品工程 集成软件管理 培训大纲 组织过程定义 组织过程焦点
已管理级
已定义级
标准、一致的过程
有纪律的过程
软件配置管理 软件质量保证 软件子合同管理 软件项目跟踪与监督 软件项目计划 需求管理
IDEAL模型
修订组 织的方 法
推进
记录并分析 经验教训 定义过程 与度量 规划并执 行行动指 南
行动
改进的激 明确范围 励条件 获取支持 初始化
建立改进 基础结构 评估明确 当前实践 编制报告 诊断 确立方针 和优先级
计划、执行 和跟踪安装 建立过程行 动小组,规 划行动
以CMM为基础
建立
SEI:Software Engineering Institute
SEI:美国卡耐基梅隆大学的软件工程研究
院产品 SEI:为美国联邦政府评估软件供应商能力,于 1986年开始研究的模型,于1993 年推出CMM 1.1版。 CMM 1.1版:是目前世界上比较流行和通用的CMM 版本。 新研究:
CMMI ( Integration )
P-CMM ( People ) SACMM ( 软件获取CMM )
等级5的关键过程域
缺陷预防的目标是,明确产生缺陷的原因并
预防它们再次发生。 技术更新管理的目标是,确定新技术(如工 具、方法和过程),并有序地将这些技术引 入组织内。 过程更改管理的目标是,不断改进组织中所 使用的软件过程,从而提高软件质量和生产 率,缩短产品开发生命周期。
关键实践
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章软件过程能力评估软件产品的质量取决于软件开发过程,具有良好软件过程的软件机构能够开发出高质量的软件产品。
这一点早已为人们所公认,但切实地在软件过程方面开展工作也只有十年。
1987年在美国国防部支持下,卡内基—梅隆大学率先推出了软件过程评估项目的研究成果—软件过程能力成熟度模型CMM。
很快就引起了软件界的广泛关注,并在此基础上形成了国际标准(ISO/IEC 15504)。
事实上,CMM给了软件开发机构一把度量软件过程的尺子,这个尺子从低到高共有5个等级的刻度,用它度量便是软件过程评估的工作。
另一方面,CMM 同时也是一个指南,它在客观上起到了指导软件机构的作用,它可告诉软件机构,如果要在原有的水平上提高一个等级,应该关注哪些问题,这就是软件过程改进的工作。
本章在概述软件过程评估之后,重点介绍了CMM,并且在最后把国际标准也做了扼要的描述。
10.1 软件过程评估的意义软件过程评估是软件过程改进和软件能力评价的前提环节。
10.1.1 软件过程改进的需要1.软件过程不断改进是软件工程的基本原理之一。
1983年美国TRW公司B.W.Boehm总结了该公司在12年内,总共花了15000人年,先后开发五代指挥控制软件的经验,得出如下七条原则:(1)按软件生存周期分阶段制订计划并认真实施;(2)逐阶段进行确认;(3)坚持严格的产品控制;(4)使用现代程序设计技术;(5)明确责任;(6)用人少而精;(7)不断改进开发过程。
这就是著名的软件工程七原理。
由此可见,不断改进软件开发过程是软件工程的基本原理之一。
2.软件过程改进是软件生存周期的基本过程之一软件工程界始终十分重视对软件过程的研究,本世纪70年代中期形成了软件生存周期的概念,1995年正式发布了一项国际标准,即ISO/IEC 12207信息技术—软件生存周期过程,这是软件过程研究的一个重要成果。
这项标准科学地定义了软件生存周期的过程,总共17个,其中一个就是改进过程。
实践证明,软件过程需要不断完善,首先从非工程化的软件开发方法转变为工程化的软件开发方式,按照软件工程的系统方法进行软件的工程活动和管理活动,进而不断完善各个软件过程。
从而不断提高软件过程能力。
随着这种能力的提高,一个软件组织完成软件产品时在预算、进度,特别是产品质量方面的风险就逐步降低。
显然,软件过程能力的提高需要首先对当前的软件过程状况进行科学的评估。
10.1.2 降低软件风险的需要1.软件采购者的需要软件产品或软件服务的采购单位进行招标、选择承制者时,为了降低风险,需要对备选单位的软件过程能力进行评价,而这种评价的依据是对该单位的软件过程的评估结果。
2.软件承制者的需要软件产品研制单位和软件服务单位在响应顾客的需要、进行投标时,为了降低风险,需要对自己的软件过程能力进行评价,避免承担力所不及的任务,而这种评价的依据仍然是根据实际需要,对相应软件过程的评估结果。
10.2 软件过程评估方法的产生软件过程评估方法的研究在80年代取得了突破性。
1987年在美国卡内基—梅隆大学软件工程研究所(SEI)以W.S.Humphrey为首的研究组发表的“承包商软件工程能力的评估方法”是最杰出的代表。
这个评估方法给出了软件过程能力成熟度框架,1991年发展为CMM(Capability Maturity Model)1.0(能力成熟度模型1.0版),它把软件过程按完善程度分为5个等级,描述了不同完善程度的软件过程的不同特点。
这个方法本是美军委托研究,用来评估军用软件承包商的软件过程,从而评价其软件开发能力的;但在试用过程中,该方法的另一个更加重要的作用越来越被人们重视,就是它描述了软件过程不断改进的科学途径,使软件开发组织能自我分析,找出尽快提高软件过程能力的策略。
这个方法的意义得到国际软件产业界和软件工程界广泛关注和认可,人们认为这是80年代软件工程技术最重要的发展之一。
1993年该模型发展为CMM1.1,目前该模型的2.0版本应已修订完成。
1991年国际标准化组织开展调查研究,以便确定是否需要编制有关软过程评估的国际标准,并于1993年得出肯定的结论,开始了有关标准的研究制订工作,现已取得重要成果,产生了技术报告ISO/IEC TR 15504 SPICE(Software Process Improvement and Capability dEtermination)信息技术—软件过程评估,并预计于2001年产生正式标准。
从该技术报告的内容来看,制订标准的基本目的及其思路均与SEI CMM相似。
上述两个研究组织的有关研究结果以不同方式给出了评估软件过程的方法和不断改进软件过程的科学途径,在下面两节分别加以简介。
10.3 软件能力成熟度模型CMM(Capability Maturity Model)简介10.3.1 模型概要下面以SEI CMM1.1版本为依据进行介绍。
CMM的制作者有一个基本认识,就是软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理软件过程,从而使一些好的开发方法和技术起不到预期的作用。
可是,即使在不太好的软件开发组织中,个别软件项目仍能产生优质产品。
这些项目的成功一般是通过工作组的杰出努力,而不是通过重复使用具有成熟软件过程的方法。
在没有全组织范围的软件过程的条件下,成功结果能否重复得到,完全取决于能否使同样人员做下一个项目。
仅仅建立在可得到特定人员上的成功不能为全组织生产率和质量的长期提高打下基础。
必须在建立有效的软件工程实践和管理实践的基础设施方面,坚持不懈的努力,才能不断改进。
SEI CMM1.1模型的组成及特点:1.初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。
管理是反应式的。
2.可重复级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。
制定了必要的过程纪律,能重复早先类似应用项目取得的成功。
3.已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。
所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
4.已定量管理级:收集对软件过程和产品质量的详细度量,对软件过程和产品有定量的理解与控制。
5.优化级:过程的量化反馈和先进的新思想、新技术促进过程不断改进。
SEI CMM1.1涉及到的一些概念:软件过程:人们用于开发和维护软件及其相关产品(例如,项目计划、设计文档、代码、测试用例、用户手册等)的一系列活动,包括软件工程活动和软件管理活动。
其中必然涉及有关的方法和技术等。
软件过程能力:描述(开发组织或项目组)通过遵循其软件过程能够实现预期结果的程度。
一个软件开发组织或项目组的软件过程能力提供一种预测该组织承担下一个软件项目时最可能的预期结果的方法。
软件过程性能:表示(开发组织或项目组)遵循其软件过程所得到的实际结果。
可见,软件过程性能描述已得到的实际结果,而软件过程能力则描述最可能的预期结果。
软件过程成熟度:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。
成熟度可指明一个软件开发组织软件过程能力的增长潜力。
随着软件组织的软件过程成熟度的提高,开发组织通过其方针、标准和组织机构等将其软件过程规范化和具体化。
从而使得开发组织明确定义的有关管理和工程的发方法、实践和规程等在现有人员离区后仍能继续下去。
软件能力成熟度等级:软件开发组织在走向成熟的过程中要经历几个具有明确定义的表征软件过程能力成熟度的平台。
每一个成熟度等级为过程继续改进达到下一个等级提供一个基础。
关键过程域:互相关联的若干软件实践活动和有关基础设施的一个集合。
每个软件能力成熟度等级包含若干个对该成熟度登记至关重要的过程域,它们的实施对达到该成熟度等级的目标起保证作用,这些过程域就称为该成熟度等级的关键过程域。
关键实践:对关键过程域的实施起关键作用的方针、规程、措施、活动以及相关基础设施的建立。
关键实施一般只描述“做什么”,而不强制规定“如何做”。
关键过程域的目标是通过其包含的关键实践的实施来达到的。
国际上有一个已取得共识的基本观点是;整个软件过程的改进是基于许多小的、进化的步骤,而不是通过一次革命性的创新来实现的。
软件能力成熟度模型:对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步前进。
这个能力成熟度模型使软件组织能较容易地确定其当前过程的成熟度并识别出其软件过程执行中的薄弱环节,确定对软件质量和过程改进最为关键的几个问题,从而形成对其软件过程的改进策略;软件组织只要关注并认真实施一组有限的关键实践活动,就能稳步地改善其全组织的软件过程,使全组织的软件过程能力持续增长。
10.3.2 模型的产生和原理SEI提出的软件能力成熟度模型CMM的分层机构基于已有60 多年历史的产品质量原理。
SEI将这些原理应用于软件开发,发展成为软件过程成熟度框架,该框架为软件过程定量控制建立了项目管理和项目工程的基本原则,这个框架是软件过程得以不断改进的基础。
实际上,将质量原理改变为成熟度框架的思想是克劳斯比(Philip Crosby)在其著作“Quality is Free”中首先提出的。
克劳斯比的质量管理成熟度层次描述了采用质量实践时的5个进化阶段。
该成熟度框架后来又由IBM的拉迪斯(Ron Radice)和他的同事们在汉弗莱(Watts Humphrey)指导下进一步改进以适应软件过程的需要。
1986年,汉弗莱将此成熟度框架带到了软件工程研究所并增加了成熟度等级的概念,形成了当前软件产业界正在使用的框架的基础。
汉弗莱的成熟度框架早期版本发表在1987年的SEI技术报告中。
该报告还发表了初步的成熟度提问单,这个提问单作为工具给软件开发组织提供了软件过程评估的一种方法。
1987年又进一步研制出软件过程评估和软件能力评估两个方法,以便估计软件过程成熟度。
自1990年以来,在美国政府和工业部门许多人的帮助下,SEI基于几年来将框架运用到软件过程改进方面的经验,进一步扩展和精练了该模型,命名为软件工程研究所的能力成熟度模型(SEI CMM),已经修订的软件能力成熟度模型2.0版即将问世。
10.3.3 不成熟和成熟软件组织的比较下表概述了不成熟软件组织和成熟软件组织的差异,这种比较分析不仅是形10.3.4 软件过程成熟度的5个等级CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级,为过程不断改进奠定了循序渐进的基础。
这5个成熟度等级定义了一个有序的尺度,用来测量一个组织的软件过程成熟度和评价其软件过程能力。
这些等级还能帮助组织自己对其改进工作排出优先次序。
每一个成熟度等级为继续改进过程提供一个台基。