基于模型的过程改进.ppt
我们的公约,(1)在本教室可以喝水、吃东西,但请爱护公共卫生、不出声(2)上课期间请不要看书,讲授顺序和重点与书本不完全一致(3)课后认真阅读“阅读材料”和“学习材料”(4)不要毫无意义地记笔记,第1讲:基于模型的过程改进,从日本谈起,我们熟知的日本企业,松下:电熨斗、电热器、收音机日立:变压器、电动机、电视机、洗衣机三菱:造船、飞机、铁路车辆、潜艇、航天、海洋丰田:脚踏车、电动车、汽车、电机,戴明在日本的故事,日本科技联盟(JUSE)1949年,戴明在日本举行为期8天的统计质量管理基础讲座1951年,戴明在日本举行为期2月的统计质量管理讲座戴明没有接受JUSE支付的讲义版税,JUSE设立“戴明质量奖”随后样本分析在日本出版,戴明再次捐献版税戴明质量奖分:戴明奖、戴明应用奖、戴明控制奖。TQCTQM,背景资料日本签署投降书,二战结束1949年中华人民共和国成立朝鲜战争,软件质量事故实例,1996年6月4日,阿丽亚娜5型运载火箭的首航,原计划将运送4颗太阳风观察卫星到预定轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。后来查明的事故原因是:代码重用。阿5型的发射系统代码直接重用了阿4型的相应代码,而阿4型的飞行条件和阿5型的飞行条件截然不同。此次事故损失3.7亿美元。,软件质量事故实例,1994年在苏格兰,一架吉努克型直升飞机坠毁,29名乘客全部罹难。然而最初指责声都指向飞行员,但后来有证据表明,直升飞机的系统错误才是罪魁祸首。另外一次因软件而引发的飞行事故发生在1993年。瑞典的一架JAS 39鹰狮战斗机因飞行控制软件的Bug而坠毁。,软件质量事故实例,美国火星气候轨道探测器,1998年12月发射,1999年9月探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元。失败的主要原因是人为失误。火星气候探测者上的飞行系统软件使用公制单位“牛顿”计算推进器动力,而地面人员输入的方向校正量和推进器参数则使用英制单位“磅力”。1牛顿0.225磅力,软件质量事故实例,太空中看到的天然气管道爆炸据传,在冷战时期,CIA曾成功向前苏联“输出”一个有设计缺陷的控制软件,该软件用来控制天然气主管道。(KGB从一家加拿大公司窃取该软件。)那个植入的Bug最终引发了1982年的西伯利亚天然气管道大爆炸。CIA前高/官里德回忆道:“那次爆炸的结果是非常惊人的,它是除了核爆炸之外最壮观的爆炸之一,腾起的熊熊大火甚至从太空中都能看到,并已被卫星拍摄了下来。”虽然这个例子是有意而为之的,但其足以证明软件缺陷可以引发的致命后果。,更多软件质量危机实例,2011年2月25日,伦敦股票交易所软件故障停盘半天2011年全国铁路订票网站启用,“票款被扣却订票失败”、“拥堵无法登陆”等BugXxxx年,软件故障致飞机坠毁某款3G手机成批删除短信死机,针对软件危机的历史性解决方案,1968年,北大西洋公约组织提出“软件工程”1960年代以来,科学家和工程师试图从技术和人员两方面解决问题:(1)技术和工具(开发、测试、架构、CASE等工具):不能解决问题(“有工具的笨蛋依然是笨蛋”)(2)合格的人员(学历、培训、实践、纪律等):依然不够(“没有好的组织和过程,即使拥有最好的球员,也只能组成一只差劲的球队”)1980年代,2000以后,重视“软件过程改进”美国国防部、NASA、SEI、ISO、军方、航空航天领域,Improved Process+Competent Workforce+Appropriate Technology=Reduced Risk,Higher Productivity,and Better Quality,项目成功的三要素,Quality Leverage Points,“过程”作为“过程人员技术”三角行的一角,是将人和技术统一起来的纽带 每个人都认识到有主动性、有质量工作的重要性,但即使是最好的员工也不能在不理解过程或者按照过程操作时做得最做到他们的最好。产品的主要决定因素:成本、进度和质量,过程,1、什么是过程?2、过程的要素3、过程的输出4、过程特性 v 产品特性5、过程质量 v 产品质量6、过程改进,“过程”的通常定义,A process is a set of practices performed to achieve a given purpose;it may include tools,methods,materials,and/or people.过程是为了达到某个给定的目的而采取的一系列活动;它可能包括工具、方法、材料和/或人。韦氏词典:生产某样东西的系统操作,达到终点或结果的一系列活动、变化和功能。IEEE:执行给定目的的一系列步骤。,过程四要素,输入输出资源活动,过程的描述方式之一,过程与产品,1、过程将输入转换成输出2、过程的输出是产品(或服务)3、过程特性决定产品特性4、过程质量决定产品质量5、过程改进,过程改进,1、为什么过程要改进?过程改进的重要性2、过程改进的成本与好处3、过程如何改进?才能保证越改越好!4、基于模型的过程改进,“过程”改进为什么重要,“过程”是将技术和人联系起来的纽带,好的技术和能干的人只有通过好的过程才能发挥作用企业的目标:“更好、更快、更便宜”地为用户提供产品和服务软件系统越来越复杂技术发展日新月异企业竞争加剧,“过程”改进的成本与好处,成本:一般会增加210的成本,这取决于原有基础好处:改善“进度”和“预算”的预测性(predictability)改进周期时间提高生产率(productivity)改善产品质量(quality)提高 用户满意度(satisfaction)提高士气增加 投资回报率(ROI)降低“质量成本”,改善“进度”和“预算”的预测性,.,0%,140%,-140%,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Without Historical Data,With Historical Data,Variance between+20%to-145%,Variance between-20%to+20%,(Mostly Level 1&2),(Level 3),Over/Under Percentage,.,(Based on 120 projects in Boeing Information Systems),.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,Reference:John D.Vu.“Software Process Improvement Journey:From Level 1 to Level 5.”7th SEPG Conference,San Jose,March 1997.,Results:Boeing Effort Estimation,改进生产循环周期时间,提高生产率和质量,Lockheed Martin Naval Electronics&Surveillance Systems(NE&SS)-Radar Systems-Syracuse,可度量的投资回报,Return on software improvement investment was reported to be between 5:1 and 8:1.(Herbsleb 94),Process improvement provides measurable return on investment.,应用CMMI模型的优势,数据来源:SEI 调查,每年改进的结果SEI 平均值.SEI最好值增加生产力 35%67%缩短投放市场的时间19%23%减少发布以后的过失 39%94%回报:投入的比率5:18.8:1缺点提前察觉22%25%,SEI过程改进的结果,SEI results,数据来源:SEI 调查,CMM投资回报实例,SEI 1994研究报告表明平均投资回报率是5:1Navy FMSO 美国海军舰物料供应办公室报告单单正式评审所节省的开支为$200万。美国空军后勤中心的ROI是7.5:1,生产率提高了10倍。Raytheon的ROI是7.7:1,生产率提高是2:1,缺陷下降了4.2倍,工作量减少了一半,并因为提前交付获得$960万美元奖金。PRC美国邮政管理委员会的文档缺陷减少了78%,代码缺陷减少了70%,运行缺陷减少了60%,达到月度成本目标能力提高了40%。波音的项目周期缩短了50%,生产率提高了240%,成本收率达到1:7。Ogden空军后勤中心花费了$500万达到5级,并获得$1亿的回报。(ROI-19:1),摩托罗拉的过程改进,1996 1997 1998SEI CMM Level23 4评审效率 11.682.00缺陷度(每千代码行)1.54.47编译周期时间NA1.19测试率,KLOC/Days14.7 20测试率,reqts/week112.7测试生产率,LOC/Stf Wk11.663.07-Motorola,Systems Solutions Group,SPIN 9/5/98,波音的过程改进,运行在成熟度3的项目生产效率提高62%,项目周期缩短36%,Reference:Boeing CIO,SEPG Conference 2000,计划更加准确,可以在更早期发现缺陷,产品质量随着成熟度等级的提高而不断提高,波音的过程改进,Lockheed Martin实施CMMI的好处,从SW CMM ML2(1993)到ML 3(1996)到CMMI ML5(2002)LM持续改进计划报告数据显示:软件生产率提高30%单位软件成本降低20%缺陷发现和改正成本降低15%管理费用成本降低 5%,Demonstrating the Impact and Benefits of CMMI:An Update and Preliminary Results,SEI Special Report,CMU/SEI-2003-SR-009,其它无形好处,Ogden Air Logistics Center:对工作环境的积极影响;对创造性没有限制有益于开发流程的组织架构意外、最后一分钟故障、“救火”减少更高的软件质量;加班减少,客户的不愉快减少-CrossTalk,May 1999Boeing Space Transportation Systems:员工满意度从74%提高到96%员工积极主动地去减少缺陷,改进质量。-IEEE Software,Sept/Oct 1999SSC San Diego:对项目的管理和控制更好软件的整体性能更好团队士气提升,加班、旷工情况减少团队的沟通更流畅竞争力提高,业务拓展方便-Costs and Benefits of SPI,Karen D.Prenger美国国防部统计客户满意度提高员工的专业精神提升-DACS:Business Case for SPI Revised,“过程”改进如此重要!也非常必要!问题是:如何改?改变就是改进吗?如何才能朝期望的方向改进?如何有步骤有序地进行改进?,答 案,基于模型的过程改进!,基于模型的过程改进,1、什么是“模型”?2、什么是“过程模型”3、模型为什么重要?4、软件过程相关模型,Model,Say what you doDo what you sayProve It,Model,“模型”是所研究的系统、过程、事物或概念的一种表达形式,也可指根据实验、图样放大或缩小而制作的样品,一般用于展览或实验或铸造机器零件等用的模子。,模型类型:(1)数学模型,如欧姆定律、牛顿定理等;(2)结构模型,如分子结构;(3)实物模型,如沙盘、房屋模型、船舶模型等;(4)过程模型,如CMM、瀑布模型、冶炼过程等;,What Is a Process Model?,描述有效过程特性的所有要素的结构化集合过程包含哪些被经验证明有效的要素,“模型”为什么重要,幸福的家庭个个都一样,不幸的家庭各有各的不幸。Happy families are all alike,every unhappy family is unhappy in its own way.,模型提供了:行动的起点前人的经验一个通用语言和一个共享的远景行动的优先顺序框架一种用于确定组织的改进手段的方法,过程模型的用途,软件过程评估(SPA,Software Process Assessment)由专业评估师对某个组织的软件过程进行的鉴定,其目的在于:l 确定组织中当前软件过程的状态 l 确定组织中与过程相关的最为紧迫的问题 l 获得组织对于软件过程改进的支持软件能力评价(SCE,Software Capability Evaluation)由专业评估师对某个组织的软件过程能力进行的鉴定,其目的在于:l 识别有资格完成软件工作的承包商 l 监控一项现有软件工作所用软件过程的状态软件过程改进(SPI,Software Process Improvement)软件组织依据CMM模型制定软件过程改进计划,确定改进策略,明确改进步骤,制定改进措施,并实施改进计划,过程相关模型,1、ISO9000系列?2、CMM3、CMMI4、SPICE5、精益工程6、6 Sigma7、,SEI、ISO、EIA、IEEE等组织都在创建模型。,“软件过程”相关的部分模型,模型太多了!成了模型泥潭!,没有模型头疼!有了模型头更疼!我该选哪个?,答 案,百川归海,就选CMMI,为什么选择CMMI,1、什么是CMMI模型?2、CMMI模型发展史3、CMMI模型的基本概念3、CMMI模型的应用,什么是CMMI?,Capability Maturity Model Integration(能力成熟度模型集成),CMM/CMMI简史,1984 成立软件工程研究所1987 全世界进行了第1次CMM评估1991 发布SW-CMM v1.01993 发布SW-CMM v1.11994 发布SE-CMM1998 启动CMMI产品集项目2001 发布CMMI-SE/SW v1.02002 发布CMMI-SE/SW/IPPD/SS v1.1产品集2005 宣布CMM结束2006-8-发布CMMI v1.2(for 开发、服务、采购)2010年发布CMMI v1.3(for 开发、服务、采购),CMM模型的迅速发展,针对软件的第一个CMM(CMM V1.0)模型于1990年8月完成并发布基于这一模型及其它需求,开发了针对其它应用背景及功能的各类CMM模型系统工程(SE)人(People)综合产品开发(IPD)软件获取(SACQ)软件质量保证(AQA)测量其它.,CMM模型的迅速膨胀-2,在组织看到各类有用的CMM模型的同时,也发现他们:相互重叠存在不一致缺乏清晰和可理解的接口缺乏标准化彼此的详略程度不同此外,许多组织还要进行 ISO 9001或基于ISO 9000-3 的TickIT审核这导致了高成本的、令人感到混乱和矛盾的过程改进,CMMI项目,CMMI项目的建立是为了:建立一个综合目前及未来各种模型的框架建立一套初始的综合模型用于建立CMMI的源模型包括:CMM for Software v2.0 Draft CEIA 731 Systems EngineeringIPD CMM(IPD)v0.98a,CMMI设计目标,对源模型进行综合,并消除源模型之间的不一致,减少重复内容 降低基于模型进行过程改进的成本 增加对模型的理解 统一的术语 一致的风格 统一的构建规则 一致的组成部分 确保与ISO15504一致 更加有利用于积累,CMMI Model,CMMI模型表现形式-1,PA,PA,连续表现形式,Capability,0 1 2 3 4 5,过 程,PA,CMMI模型表现形式-2,CMMI 模型通过表现形式支持每一种途径:连续表现形式用于最有效地支持过程域能力改进途径采用6个能力等级、能力水平内容、目标等级、以及对应等级关系作为组织模型组成部分的原则阶段表现形式用于最有效支持组织成熟度改进途径将过程域分成5个成熟度等级,以支持和指导过程改进,CMMI模型结构,CMMI模型(连续式表达),过程能力等级5 优化级4 定量管理级3 已定义级2 已管理级1 已执行级0 不完善级,能力水平,5 优化4 已定量管理3 已定义2 已管理1 已实施0 不完整,能力水平内容 连续表现形式,543210,能 力,CMMI模型(阶段式表达),CMMI的阶段式表示法就是组织成熟度方法,5 优化级(2)4 定量管理级(2)3 已定义级(11)2 已管理级(7)1 初始级(0),CMMI应用过程(以CMMI-DEV 1.3 ML3为例),启动阶段:主要工作是差距分析、协助客户建立EPG过程改进机构,制订过程改进计划。定义过程阶段:包括CMMI 的介绍培训、CMMI 2级和3级的PA培训、SQE及MA实战培训、PSP&TSP运用培训、指导体系过程编写并评审。推广实施阶段:重点参评项目实施过程中的方法培训、现场指导和答疑。评估阶段:包括CMMI ML3预审核及正式审核、内部评估小组成员培训、文档就绪评审及SCAMPI评估。,63,Some of the organizations using CMMI,谢 谢!,