《软件过程改进与CMM介绍.ppt》由会员分享,可在线阅读,更多相关《软件过程改进与CMM介绍.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件过程改进与软件过程改进与CMM/CMMI介绍介绍 林林 锐锐 博士博士http:/ 上上 海海 漫漫 索索 计计 算算 机机 科科 技技 有有 限限 公公 司司Page 2目录目录0.常见疑问常见疑问1.IT企业面临的软件开发与管理难题企业面临的软件开发与管理难题2.软件过程改进概述软件过程改进概述3.CMM发展简史发展简史4.CMMI 1.1介绍介绍5.CMM等级评估等级评估6.CMM在中国在中国7.软件过程改进措施与建议软件过程改进措施与建议Page 30.常见疑问常见疑问u1.软件过程改进与CMM的关系?u2.为什么有些企业实施CMM后,质量没有明显提高,进度更落后了,成本增加了,人
2、员更累了?u3.CMM理论本身有缺陷吗?u4.按顺序遍历CMM过程域和关键实践,这种做法可行吗?u5.应该寻找什么样的咨询师,才能帮助企业提升软件能力?u6.欧美、印度、中国的 CMM主任评估师,有什么特点?u7.CMM 23等级评估要花多少钱?u8.怎么才能既提高软件能力,又能拿到CMM等级证书?而且花钱要少?Page 41.企业面临的软件开发与管理难题企业面临的软件开发与管理难题1.1 企业的目的企业的目的 u根本目的:合法地赚取尽可能多的利润,使企业利益最大化。u为了使企业利益最大化,软件产品(项目)应当“做得好、做得快并且少花钱”1.2 企业长期面临的企业长期面临的软件开发与管理难题软
3、件开发与管理难题u产品质量低下、进度延误、费用超支(软件工程学科发展30年尚未彻底解决)u经典软件工程:研究需求分析、系统设计、编程、测试、维护等领域的方法、技术和工具u问题之源:人们逐渐意识到,由于企业管理软件过程的能力比较弱,常常导致项目处于混乱状态。过程混乱使得新技术、新工具的优势难以体现。经典的软件工程不是不好,而是不够用。1.3 企业的迫切愿望企业的迫切愿望u寻求“提高产品质量、提高生产率并且降低成本”的解决方案,包括方法论和工具。Page 52.软件过程改进概述软件过程改进概述2.1 过程的基本概念过程的基本概念 u过程就是人们使用相应的方法、规程、技术、工具等将原始材料(输入)转
4、化成用户需要的产品。过程的3个基本要素是:人、方法与规程、技术与工具。过程被文档化后才能成为规范。u过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过程只会得到差的产品。企业领导关心过程吗?为什么要监控过程?何为过程可视性?企业领导关心过程吗?为什么要监控过程?何为过程可视性?2.2 什么是什么是软件过程改进软件过程改进u从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向,其中CMM和CMMI是该领域举世瞩目的重大成果。u提高软件过程能力的实践通称为软件过程改进(Software Process Improvement)。软件过程改进的根本目的是:提高质量、提高生
5、产率并且降低开发成本提高质量、提高生产率并且降低开发成本。人员方法与规程技术与工具过程过程产品Page 62.软件过程改进概述软件过程改进概述2.3 主要的软件过程域主要的软件过程域u工程类的主要过程域:需求开发、系统设计、软件实现、软件测试、软件维护等等;u管理类的主要过程域:项目规划、项目监控、需求管理、质量管理、配置管理等等。u上述过程域中的任何活动都会影响产品的质量、生产率和成本。2.4 软件过程改进必须走规范化之路软件过程改进必须走规范化之路u提高软件过程能力可以比喻为“练内功”,“练内功”没有捷径可走,唯有走“规范化”之路,即“制定适合于本企业的软件过程规范,并按照此规范执行”。u
6、“规范化”不会抑止人们的创造力,相反地,它使得团队可以大规模地复用前人积累的智慧和财富。这种方法非常适合于现代的工业化生产。(麦当劳与中餐馆对比)麦当劳的特征:不论是制作汉堡还是炸署条,都有规范化的操作流程中餐馆的特征:大厨掌握招牌菜,老板怕大厨。u业界实践已经证明,走“规范化”之路是“成本最低、见效最快、能持续发展”的软件过程改进方法,犹如人类的“养生之道”。任何IT企业(不论大小),都有办法以其承受得起的代价“走规范化之路”,从而有效地提高软件过程能力。养生之道:为什么富人的身体不如平民百姓的好?Page 73.CMM发展简史发展简史3.1 CMM是什么是什么 uCMM(Capabilit
7、yMaturityModel)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。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
8、 Engineering)于2002年1月正式推出。3.3 CMM重要概念重要概念u5个成熟度等级:Initial,Repeatable,Defined,Managed,Optimizingu18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。Page 84.CMMI 1.1介绍介绍4.1 CMMI诞生诞生uCMM 1.1是十年前创作的,十年来IT产业有了长足的发展,相应的工业标准或规范必然要不断地改进。在总结CMM应用的大量经验教训的基础之上,SEI 于2002年推出了CMMI1.1。CMMI重大的改进在于它不仅完善了CMM本身,而且充分考虑了软件工程与系统工程的集成
9、,使得CMMI不再局限于纯粹软件的范畴。由于CMMI 1.1问世不久,人们了解和应用CMMI需要一定的时间,但是CMMI将取代CMM这是必然的趋势。4.2 CMMI有两种表述方式有两种表述方式u阶段表述方式与CMM兼容,连续表述方式与ISO/IEC 15504相似。Page 94.CMMI 1.1介绍介绍CMM 关键过程域关键过程域CMMI 过程域过程域L2Requirements ManagementSoftware Project PlanningSoftware Project Tracking and OversightSoftware Configuration Management
10、 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 Organizat
11、ion 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
12、 Project Management Risk Management Decision Analysis and Resolution 4.3 CMMI与与CMM过程域的比较过程域的比较Page 105.CMM等级评估等级评估5.1 过程复杂过程复杂 u每一个CMM等级评估周期(从准备到完成)约需12-30个月。u每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员大部分来自企业内部。u评估过程包括员工培训(企业的高层领导也要参加)、问卷填写和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等。u评估结束由主任评估师签字生效(没有盖上公章的证书)5.2 取得主任评估
13、师的资格比较困难取得主任评估师的资格比较困难 u10年以上的软件开发经验 u在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。u经过两次以上CMM评估的全过程实习 u主任评估师的资格并非终身制 5.3 评估费用昂贵:大约是评估费用昂贵:大约是ISOISO认证的十倍认证的十倍u价格视客户需求的多少而定,可以与咨询公司协商。u2002年参考价:CMM2级50万元RMB,CMM3级80万元RMB。Page 116.CMM 在中国在中国6.1 国内国内IT企业采用企业采用CMM的目的的目的 u提高企业的软件过程能力,但并不关心CMM评估。u既要提高企业的软件过程能力,又想通过CMM评估来提升企
14、业的威望与知名度。u只是为了拿到CMM证书6.2 6.2 共性问题:费用高、难度大、见效慢共性问题:费用高、难度大、见效慢 u企业做一次比较完整的CMM 2-3级咨询和评估大约要花费60100万元。u企业内部组建SEPG的成本并不比咨询费低。u软件工程与项目管理工具比较昂贵(如Rational的产品)。u目前国内通过CMM 2-3级评估的企业屈指可数,而这些企业的实际能力也没有宣传的那么好。因为参加CMM评估的项目都是精心准备的,个别项目或者事业部通过了CMM评估并不意味着整个企业达到了那个水平,这里面的水分相当大。Page 126.CMM 在中国在中国6.3 国内国内通过通过CMM等级评估的
15、企业(等级评估的企业(2002年统计数据)年统计数据)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 业界关注的焦点:企业如何以比较低的代价有效地提高软件过程能力业界关注的焦点:企业
16、如何以比较低的代价有效地提高软件过程能力 Page 137.软件过程改进措施与建议软件过程改进措施与建议7.1 企业领导决策与支持企业领导决策与支持 u领导根据企业的发展战略和当前实力,决定投入多少资金、人力和时间,将过程能力提高到什么程度。u领导“支持”软件过程改进的行为是多方面的,例如批准必要的经费,组建SEPG,在某些场合宣传软件过程改进的重要性等。除此之外,企业领导应当亲自参与软件过程改进的实践,为员工们树立榜样,例如参加培训和考试,自己要遵守软件过程规范。7.2 7.2 制定适合于企业的过程规范制定适合于企业的过程规范 u首先要深入调查企业过程能力的现状,识别出薄弱环节,分清“轻重缓
17、急”。再根据企业的实力(如资金和人力),确定过程改进的各个阶段目标。u企业在参考业界推荐的过程标准或规范时,要舍弃那些听起来很先进但是对本企业无益处的东西,只选取对企业有实用价值的东西。如同老百姓买商品,“只买对的,不买贵的”。uCMM/CMMI和ISO都只是用来参考的,而不是用来“迷信”的。u使用软件过程规范的绝大部分人不是软件工程专家,所以规范应当通俗易懂。Page 147.软件过程改进措施与建议软件过程改进措施与建议7.3 7.3 规范的实施规范的实施 u企业制定软件过程规范是为了帮助人们把工作做得更好,而不是存心与人们过不去。企业一方面要用行政命令和奖罚措施来强制实施软件过程规范,另一
18、方面又要设法使员工们乐于执行规范从而避免流于形式。SEPG不要只是埋头写规范,写完了上缴了事。最好在内部网上开辟一个专栏,专门解释规范。要对全员进行培训与考试,使机构中的每个人都熟悉与自己工作相关的规范。只有这样才能防止有人拖后退,使团队发挥最大的力量。质量保证人员监督实施。人都有惰性,如果没有人来监督员工们按照规范办事,那么自觉性不强的员工就会回到“无序”的老路上。质量保证人员的职责就是周期性地检查项目成员的“工作过程以及工作成果”是否符合既定的规范,来监控和改进“过程质量以及产品质量”。SEPG要及时收集员工们反映的问题和建议,不断地完善规范,但是不能频繁地变更规范的版本,应当有计划地控制
19、规范的版本。Page 157.软件过程改进措施与建议软件过程改进措施与建议7.4 7.4 文档太多怎么办文档太多怎么办 u在推广软件过程规范时,员工们抱怨最多的就是“文档太多了”!甚至很多人把进度延误归罪于写文档。u如果过程规范是适合于本企业的,那么该规范所要求的文档工作量也应该是比较适宜的。之所以员工们抱怨“文档太多了”,那是因为他们以前文档写得太少了,一下子不习惯正常的文档工作量。u应该想办法降低写文档的难度,提高写文档的效率。基本措施有:机构要下功夫制定出结构良好的文档模板,给出充足的提示和示例。这样使用者就可以“依葫芦画瓢”,总比他自己琢磨怎样写要方便得多。提高开发人员的写作能力,这是练内功。一是要学习好的写作方法,二是要不断地练笔(其实写文档就是在练笔)。