软件过程改进与CMM.ppt
软件过程改进与软件过程改进与CMMPage 2目录目录1.IT企业长期面临的软件工程难题企业长期面临的软件工程难题2.软件过程改进概述软件过程改进概述3.CMM发展简史发展简史4.CMMI 1.1介绍介绍5.CMM等级评估等级评估6.CMM在中国在中国7.软件过程改进措施与建议软件过程改进措施与建议8.CMMI 3级软件过程改进解决方案级软件过程改进解决方案Page 31.IT企业长期面临的软件工程难题企业长期面临的软件工程难题1.1 企业的目的企业的目的 u根本目的:合法地赚钱,获取尽可能多的利润。u第一推论:为了使利润最大化,产品开发应当“做得好、做得快并且少花钱”u 软件工程学科的目的:提高软件产品质量、提高生产率并且降低开发成本 u质量、生产率、成本之间的复杂关系u成本重要还是Time to Market 重要?1.2 企业长期面临的企业长期面临的软件工程难题软件工程难题u产品质量低下、进度延误、费用超支(软件工程学科发展30年尚未彻底解决)u经典软件工程:研究需求分析、系统设计、编程、测试、维护等领域的方法、技术和工具u问题之源:人们逐渐意识到,由于企业管理软件过程的能力比较弱,常常导致项目处于混乱状态。过程混乱使得新技术、新工具的优势难以体现。经典的软件工程不是不好,而是不够用。u用于提高软件过程能力的实践通称为软件过程改进。Page 42.软件过程改进概述软件过程改进概述2.1 什么是什么是软件过程改进软件过程改进u提高软件过程能力的实践通称为软件过程改进(Software Process Improvement)u从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向,其中CMM和CMMI是该领域举世瞩目的重大成果。2.2 过程的基本概念过程的基本概念 u过程就是人们使用相应的方法、规程、技术、工具等将原始材料(输入)转化成用户需要的产品。过程的3个基本要素是:人、方法与规程、技术与工具 u过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过程只会得到差的产品。u过程被文档化后才能成为规范。u软件过程改进的根本目的是:提高质量、提高生产率并且降低开发成本提高质量、提高生产率并且降低开发成本。人员方法与规程技术与工具过程过程产品Page 52.软件过程改进概述软件过程改进概述2.3 软件过程改进必须走规范化之路软件过程改进必须走规范化之路u提高软件过程能力可以比喻为“练内功”,“练内功”没有捷径可走,唯有走“规范化”之路,即“制定适合于本企业的软件过程规范,并按照此规范执行”。u“规范化”不会抑止人们的创造力,相反地,它使得团队可以大规模地复用前人积累的智慧和财富。这种方法非常适合于现代的工业化生产。(麦当劳与中餐馆对比)u业界实践已经证明,走“规范化”之路是“成本最低、见效最快、能持续发展”的软件过程改进方法,犹如人类的“养生之道”。任何IT企业(不论大小),都有办法以其承受得起的代价“走规范化之路”,从而有效地提高软件过程能力。Page 63.CMM发展简史发展简史3.1 CMM是什么是什么 uCMM(CapabilityMaturityModel)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。u美国卡内基-梅隆大学软件工程研究所(SEI)研制3.2 发展简史发展简史 uCMM 1.0于1991年制定。uCMM 1.1于1993发布,该版本应用最广泛。uCMM 2.0草案于1997年制定(未广泛应用)。u到2000年,CMM演化成为CMMI(Capability Maturity Model Integration),CMM 2.0成为CMMI 1.0的主要组成部分。uCMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。3.3 CMM重要概念重要概念u5个成熟度等级:Initial,Repeatable,Defined,Managed,Optimizingu18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。Page 74.CMMI 1.1介绍介绍4.1 CMMI诞生诞生uCMM 1.1是十年前创作的,十年来IT产业有了长足的发展,相应的工业标准或规范必然要不断地改进。在总结CMM应用的大量经验教训的基础之上,SEI 于2002年推出了CMMI1.1。CMMI重大的改进在于它不仅完善了CMM本身,而且充分考虑了软件工程与系统工程的集成,使得CMMI不再局限于纯粹软件的范畴。由于CMMI 1.1问世不久,人们了解和应用CMMI需要一定的时间,但是CMMI将取代CMM这是必然的趋势。4.2 CMMI有两种表述方式有两种表述方式u阶段表述方式与CMM兼容,连续表述方式与ISO/IEC 15504相似。Page 84.CMMI 1.1介绍介绍CMM 关键过程域关键过程域CMMI 过程域过程域L2Requirements ManagementSoftware Project PlanningSoftware Project Tracking and OversightSoftware Configuration Management Software Subcontract ManagementSoftware Quality Assurance Requirements Management Project Planning Project Monitoring and Control Configuration Management Supplier Agreement Management Process and Product Quality Assurance Measurement and AnalysisL3Software Product EngineeringPeer Reviews Organization Process Focus Organization Process Definition Training Program Integrated Software Management Inter-group Coordination Requirements DevelopmentTechnical SolutionProduct IntegrationVerificationValidation Organization Process Focus Organization Process Definition Organizational Training Integrated Project Management Risk Management Decision Analysis and Resolution 4.3 CMMI与与CMM过程域的比较过程域的比较Page 95.CMM等级评估等级评估5.1 过程复杂过程复杂 u每一个CMM等级评估周期(从准备到完成)约需12-30个月。u每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员大部分来自企业内部。u评估过程包括员工培训(企业的高层领导也要参加)、问卷填写和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等。u评估结束由主任评估师签字生效(没有盖上公章的证书)5.2 取得主任评估师的资格比较困难取得主任评估师的资格比较困难 u10年以上的软件开发经验 u在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。u经过两次以上CMM评估的全过程实习 u主任评估师的资格并非终身制 5.3 评估费用昂贵:大约是评估费用昂贵:大约是ISOISO认证的十倍认证的十倍u价格视客户需求的多少而定,可以与咨询公司协商。u参考价:CMM2级50万元RMB,CMM3级80万元RMB。Page 106.CMM 在中国在中国6.1 国内国内IT企业采用企业采用CMM的目的的目的 u提高企业的软件过程能力,但并不关心CMM评估。u既要提高企业的软件过程能力,又想通过CMM评估来提升企业的威望与知名度。u只是为了拿到CMM证书6.2 6.2 共性问题:费用高、难度大、见效慢共性问题:费用高、难度大、见效慢 u企业做一次比较完整的CMM 2-3级咨询和评估大约要花费60100万元。u企业内部组建SEPG的成本并不比咨询费低。u软件工程与项目管理工具比较昂贵(如Rational的产品)。u目前国内通过CMM 2-3级评估的企业屈指可数,而这些企业的实际能力也没有宣传的那么好。因为参加CMM评估的项目都是精心准备的,个别项目或者事业部通过了CMM评估并不意味着整个企业达到了那个水平,这里面的水分相当大。Page 116.CMM 在中国在中国6.3 国内国内通过通过CMM等级评估的企业等级评估的企业 u公司名称 CMM级别 通过时间 u摩托罗拉 L5 2000-09 u华为印度所 L4 2001-12 u东大阿尔派 L3 2001-06 u托普软件 L3 2001-11 u联想软件事业部 L3 2002-01u鼎新公司 L2 1999-07 u博通公司 L2 2001-04 u用友软件 L2 2001-06 u浪潮通软 L2 2001-11 u东方通科技 L2 2001-12 u新太科技 L2 2001-12 u神州数码 L2 2002-016.4 6.4 业界关注的焦点:企业如何以比较低的代价有效地提高软件过程能力业界关注的焦点:企业如何以比较低的代价有效地提高软件过程能力 Page 127.软件过程改进措施与建议软件过程改进措施与建议7.1 企业领导决策与支持企业领导决策与支持 u领导根据企业的发展战略和当前实力,决定投入多少资金、人力和时间,将过程能力提高到什么程度。u领导“支持”软件过程改进的行为是多方面的,例如批准必要的经费,组建SEPG,在某些场合宣传软件过程改进的重要性等。除此之外,企业领导应当亲自参与软件过程改进的实践,为员工们树立榜样,例如参加培训和考试,自己要遵守软件过程规范。7.2 7.2 制定适合于企业的过程规范制定适合于企业的过程规范 u首先要深入调查企业过程能力的现状,识别出薄弱环节,分清“轻重缓急”。再根据企业的实力(如资金和人力),确定过程改进的各个阶段目标。u企业在参考业界推荐的过程标准或规范时,要舍弃那些听起来很先进但是对本企业无益处的东西,只选取对企业有实用价值的东西。如同老百姓买商品,“只买对的,不买贵的”。uCMM/CMMI和ISO都只是用来参考的,而不是用来“迷信”的。u使用软件过程规范的绝大部分人不是软件工程专家,所以规范应当通俗易懂。Page 137.软件过程改进措施与建议软件过程改进措施与建议7.3 7.3 规范的实施规范的实施 u企业制定软件过程规范是为了帮助人们把工作做得更好,而不是存心与人们过不去。企业一方面要用行政命令和奖罚措施来强制实施软件过程规范,另一方面又要设法使员工们乐于执行规范从而避免流于形式。SEPG不要只是埋头写规范,写完了上缴了事。最好在内部网上开辟一个专栏,专门解释规范。要对全员进行培训与考试,使机构中的每个人都熟悉与自己工作相关的规范。只有这样才能防止有人拖后退,使团队发挥最大的力量。质量保证人员监督实施。人都有惰性,如果没有人来监督员工们按照规范办事,那么自觉性不强的员工就会回到“无序”的老路上。质量保证人员的职责就是周期性地检查项目成员的“工作过程以及工作成果”是否符合既定的规范,来监控和改进“过程质量以及产品质量”。SEPG要及时收集员工们反映的问题和建议,不断地完善规范,但是不能频繁地变更规范的版本,应当有计划地控制规范的版本。Page 147.软件过程改进措施与建议软件过程改进措施与建议7.4 7.4 文档太多怎么办文档太多怎么办 u在推广软件过程规范时,员工们抱怨最多的就是“文档太多了”!甚至很多人把进度延误归罪于写文档。u如果过程规范是适合于本企业的,那么该规范所要求的文档工作量也应该是比较适宜的。之所以员工们抱怨“文档太多了”,那是因为他们以前文档写得太少了,一下子不习惯正常的文档工作量。u应该想办法降低写文档的难度,提高写文档的效率。基本措施有:机构要下功夫制定出结构良好的文档模板,给出充足的提示和示例。这样使用者就可以“依葫芦画瓢”,总比他自己琢磨怎样写要方便得多。提高开发人员的写作能力,这是练内功。一是要学习好的写作方法,二是要不断地练笔(其实写文档就是在练笔)。Page 158.CMMI 3级软件过程改进解决方案级软件过程改进解决方案8.1 为了真正提高软件过程能力,企业至少要做三件最重要的事情:为了真正提高软件过程能力,企业至少要做三件最重要的事情:u首先制定适合于本企业的软件过程规范。u对员工们进行培训,指导他们依据规范来开发产品。u购买一些软件工程和项目管理工具,提高员工们的工作效率。8.2 8.2 软件过程改进解决方案(软件过程改进解决方案(SPIS)的主要组成部分:的主要组成部分:u基于CMMI 3级的软件过程改进方法与规范,命名为“精简并行过程”(Simplified Parallel Process,SPP)。它由众多的过程规范和模板组成。SPP 2.0的文档总数约500余页。u基于SPP的一些培训教材,包括软件工程、项目管理、高质量编程指南等。u基于Web的项目管理工具,包括项目规划、项目监控、质量管理、配置管理。8.3 8.3 SPPSPP模型及含义模型及含义u对CMMI3级以内的关键过程域以及关键实践作了“精简”处理;u项目管理过程、项目研发过程和机构支撑过程“并行”开展。SPP 模型模型Page 178.CMMI 3级软件过程改进解决方案级软件过程改进解决方案8.4 基于基于Web的集成化项目管理工具的集成化项目管理工具Page 188.CMMI 3级软件过程改进解决方案级软件过程改进解决方案8.5 相关著作相关著作u高质量程序设计指南C+/C语言,电子工业出版社,2002年7月uCMMI3级软件过程改进方法与规范,电子工业出版社,2002年11月u软件工程与项目管理解析,电子工业出版社,2002年12月