声明本讲座内容,是软件工程课程的补充材料,仅供同学们复习本课程时参考之用,不可作为他用,违者必究!主讲教师:何彪PDF文件使用pdfFactoryPro试用版本创建讲座内容要点:(补充材料)一、能力成熟度模型二、软件开发技术上---三大突破性成果三、中间件四、软件构件、框架和架构PDF文件使用pdfFactoryPro试用版本创建一、能力成熟度模型CMM和CMMI的简介1、CMM模型简单描述:CMM(CapabilityMaturityModel---即能力成熟度模型),是美国卡耐基梅隆大学软件工程研究所(SEI)在美国国防部资助下于二十世纪八十年代末建立的,用于评价软件机构的软件过程能力成熟度的模型。此模型在建立和发展之初,主要目的在于提供一种评价软件承接方能力的方法,为大型软件项目的招投标活动提供一种全面而客观的评审依据。而发展到后来,又同时被软件组织用于改进其软件过程。PDF文件使用pdfFactoryPro试用版本创建认证方面,中国只有少数几家通过CMM5级认证(如:海辉软件(国际)集团公司是中国大陆首家整体通过CMM5级评估的软件企业;东软是中国第一家上市的软件企业,是第一家通过CMM5和CMMI(V1.2)5级认证的软件企业),而印度通过CMM5级认证的企业高达40家(全世界共有52家)。---(2008-05-的资料)PDF文件使用pdfFactoryPro试用版本创建提供了一个成熟度等级框架:1级-初始级、2级-可重复级、3级-已定义级、4级-已管理级和5级-优化级。1.初始(initial)级:软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力。2.可重复(repeatable)级:建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。PDF文件使用pdfFactoryPro试用版本创建已定义(defined)级:己将管理和工程活动两方面的软件过程文档化、标准化,并综合成该机构的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。4.已管理(managed)级:收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。5.优化(optimizing)级:整个组织关注软件过程改进的持续性、预见及增强自身,防止缺陷及问题的发生。过程的量化反馈和先进的新思想、新技术促使过程不断改进。PDF文件使用pdfFactoryPro试用版本创建初始级标准、一致的过程有纪律的过程可预测的过程持续改进的过程软件过程成熟度的5个等级模型:PDF文件使用pdfFactoryPro试用版本创建、CMMI模型简单描述:CMMI(CapabilityMaturityModelIntegration--能力成熟模型集成)是由美国软件工程研究所(SEI)正在开发的一种过程改进模型,由SEI发布了CMMI最新标准文件V1.2---即CMMIV1.2)。该模型的出现是过程改进领域的一次重要变化,会对今后软件组织的过程改进工作产生巨大影响。CMMI产品组决定尽量将CMMI与新的国际标准(包括:15015504、15012207、15015288等)兼容,为使CMMI尽早成为一个国际标准而努力。PDF文件使用pdfFactoryPro试用版本创建◆CMMI是由三种源模型组成:CMMI源模型:CMMI项目组决定以SW-CMMZ.o草案C、EIA/15731和SE一CMM、IP仆CMMv0·98a三种模型为基础进行CMMI的开发工作.由于CMMI的三种源模型应用于不同的规范,其结构也不尽相同,重点也不一致,导致集成过程改进模型成为一件很困难的工作。CMMI项目组将目标定为:集成不同的源模型,消除相互之间的不协调,减少重复;降低基于模型的过程改进工作的费用;采用通用的术语、一致的风格、统一的结构和规则、通用的组件,以使模型的结构更清晰,内容更容易理解和掌握;所有的CMMI产品国际标准15015504保持兼容;使己经使用CMMI源模型进行过程改进工作的软件组织能够保留他们的工作成果。PDF文件使用pdfFactoryPro试用版本创建◆CMMI产品套件有三大组成部分:CMMI规范模型、评估产品、培训产品。(l)CMMI规范模型:是CMMI产品中最为重要的部分,包含多种规范模型,用于指导过程改进工作。CMMI模型以“过程域”为基本的结构单位,每个过程域描述了在本过程范围内应该进行的实践以及原因。软件组织可以根据自身需要,选择CMMI产品中的一个或多个规范,或不同的描述版本,以适应组织的实际情况。目前己涉及的规范有:软件工程、系统工程等。(2)评估产品:主要包括评估需求、评估方法等,用于CMMI的评估。(3)培训产品:主要包括CMMI介绍、评估方法培训等,用于CMMI的培训。PDF文件使用pdfFactoryPro试用版本创建◆CMMI与CMM1)CMMI是“集成的”。将互补的规范集成为一体,会对整个企业范围的过程改进带来更大的效益。MMI将系统工程和软件工程的过程改进紧密地结在一起。对于一个希望进行过程改进以提高软件性能的软件组织,采用CMMI,可以对系统工程和软件程同时进行改进,甚至可以考虑关于产品集成方面改进问题。可以通过一次性的过程改进,从多个方面高组织的软件能力。如果采用以前的CMM模型,不可能得到这种效果的。PDF文件使用pdfFactoryPro试用版本创建)CMMI过程改进方法学能够帮助组织消除内过程改进环境的冗余。如果按照几种不同过程模型改进工作,就不得不围绕着这些模型分别建立过,这会造成改进环境的冗余,并增加了过程改进费。例如:系统工程组要建立系统工程过程改进环境,软件工程组要建立软件过程改进环境。但如果使用CMMI,只需建立一个通用的过程改进环境,不但降低了结构的重复性,而且降低了改进费用。采用这种一次性投资长期受益的方法,对于软件组织来说,是一个良好的选择。PDF文件使用pdfFactoryPro试用版本创建)能力成熟模型本身是不断发展的。各种CMM模型已经被使用了很长时间,由于技术的不断发展,原有的CMM模型己不能满足需要了,使用者发现许多重要的内容应该被加入到CMM中。于是,CMMI提供了这些内容。例如:修改了“需求管理”过程域的内容、将“风险管理”作为一个单独的过程域、引进了软件复用和产品线的概念等。新概念的引入,使得改进内容更加丰富,也更加适用。可以预见,随着技术的发展,处于不断完善中的CMMI必然会加入更多的新内容。为使CMMI尽早成为一个国际标准而努力。对于采用CMMI的软件组织,可以及时、有效地使用这些新的内容而不需重新改变过程改进方法。PDF文件使用pdfFactoryPro试用版本创建)CMMI提供了一条可增长的组织范围的过程改进之路。例如,某个软件组织现在使用Sw一CMM进行软件工程过程改进,但将来会进行系统工程的过程改进,甚至IPPD,或者基于其他规范(例如:15015504)的过程改进。这些规范以后都会被包含在CMMl模型中。采用CMMI模型,软件组织可以从过程改进中得到最大程度的回报,即,从低向高根据组织的不同需求逐步改进各个方面的过程,直到一个理想的状态,而这也正是组织所追求的目标。[注:IPPD是一个管理过程,这个过程将产品概念开发到生产支持的所有活动集成]PDF文件使用pdfFactoryPro试用版本创建)CMMI可以进行持续的过程改进。使用CMMI的连续模型,组织可以在一个持续的环境,而不是一个阶段性的环境中对组织本身进行评估以及改进。例如:对于许多组织,可能并不需要改进2级中的所有内容,CMMI允许组织选择3级或4级中的部分内容用于特定方面的过程改进。组织可以通过一种可选择的途径,改进某个特殊环节以解决当前对组织最为重要的问题,同时,持续的改进环境可以让组织根据自身需要更好地对模型进行裁减。PDF文件使用pdfFactoryPro试用版本创建相比,是一个质的飞跃。基于SEI在过程改进方面的主导地位、CMM模型的广泛应用已成为事实上的国际标准,CMMI有可能成为新一代的过程改进标准的代表,并在软件开发工业化中发挥重要作用。CMMI的出现,不仅仅是将多种模型结合起来,更重要的是,CMMI是能力成熟模型发展史上的一次重要变革,CMMI提供了更广泛的过程改进范围环境。CMMI之前的CMM能力成熟模型,都是偏向于对某一单独规范(如:软件工程或系统工程)过程的改进,而CMMI模型并不考虑规范本身的局限性,将重点放于产品或服务的开发和维护过程的改进之上。因此,有可能会对过程改进领域中的所有相关规范产生巨大影响。PDF文件使用pdfFactoryPro试用版本创建二、软件开发技术上---三大突破性成果近年来,在软件开发技术上产生了三大突破性成果:1、构件/构架的软件开发方法七十年代提出了一种称为“结构程序设计”的方法,应用于开发大型软件系统时称为“结构化分析和结构化设计”,这种方法延用了十多年的历史,形成了软件工程这门学科。PDF文件使用pdfFactoryPro试用版本创建然而,如何缩短开发周期、提高开发效率和质量、以及适应按需而变等问题,就成为软件工程中的核心问题,这就出现面向对象的开发方法。这种方法的基本思想是知识重用,就是尽量重用现有的成果,从而可以提高开发质量和效果。到了90年代这种方法成了研究的热点。后来,在面向对象方法基础上出现了构件技术,这种思想来自汽车制造业和建筑业中,采用流水线生产方式的预制件装配方式,它的预制件要求并不苛刻,而只要是重用就可以了,所以称为构件。PDF文件使用pdfFactoryPro试用版本创建在这个生产流水线上各阶段,可以由不同专业人员去完成,社会有了分工,效率和质量都有了保证,这种开发技术称为“基于构件的开发技术”。正好像现在盖一栋大厦,采用了预制件组装就可以大大提高开发效率、缩短开发时间、而且还能提高质量。PDF文件使用pdfFactoryPro试用版本创建当基于构件的开发方法用于开发分布式系统时,出现了比“构件重用”更重要的技术---软件体系结构和软件框架(简称构架)。1998年在日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为软件开发方法离不开“构件和构架技术”。直到2007年这种技术才完美成熟,由此软件危机获得了初步解决。PDF文件使用pdfFactoryPro试用版本创建、正在不断完善的UML(统一建模语言)UML诞生过程:识时务者为俊杰。为了突破上世纪90年代初OO方法论混战的局面,1994年杰出的Rational公司OO大师GradyBooch邀请通用电气公司著名OO大师JamesRumbaugh博士加盟Rational,启动了OO方法的统一历程。另一位超一流OO大师、瑞典爱立信公司的IvarJacob