软件工程化和CMM_第1页
软件工程化和CMM_第2页
软件工程化和CMM_第3页
软件工程化和CMM_第4页
软件工程化和CMM_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程化和CMM解决软件危机的一种方法1软件危机的产生1.正在运行的计算机软件的数量正以惊人的速度急剧膨胀,软件规模庞大,耗资巨大。2.微电子技术的进步,计算机软件已经成为限制计算机系统发展的关键因素。3.在计算机系统开发早期时代所形成的一些错误观点和做法,已严重的影响了计算机的开发,更严重的是用错误的方法开发出来的许多大型软件几乎根本无法维护,只好提前报废,造成大量人力、物力的浪费。2软件危机的具体表现1.对软件开发成本和进度的估计常常很不准确。2.用户对“已完成的”软件系统不满意的情况经常发生。3.软件产品质量往往靠不住。4.软件常常是不可维护的。5.软件通常没有适当的文档资料。6.软件

2、成本在计算机系统总成本中所占的比例逐年上升。7.软件开发成本生产率提高速度远跟不上计算机应用迅速普及深入的趋势。3 由于软件所引起的后果海湾战争中,一枚飞毛腿导弹刺入爱国者反导弹的外壳中,打中了位于沙特的一座军营,造成28名美国军人死亡,98人受伤,其原因是爱国者导弹的软件包含一个累加计时故障,其导弹在设计时规定运行几小时,时钟将复位。该故障从未产生重大影响,因而没有被发现,而在战争中,此导弹的电池连续运行100多个小时,这使累计时间差变的太大,导致系统错误。在战争期间,美军将爱国者导弹运往以色列,防卫飞毛腿导弹。以色列军队8小时就发现了此错误,立即向美国导弹生产商报告。后者以最快的速度修正了

3、错误,但新软件在军营被飞毛腿导弹击中后一天才到达。4软件工程的基本原理1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚的审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性5软件生命周期模型1.边做边改模型2.瀑布模型3.快速原型模型4.增量模型5.螺旋模型6软件工程研究的新领域1.CASE2.CMM3.软件构件技术4.面向对象技术5.UML6.XML7.可移植软件系统的开发7工程化软件的开发与研究8软件工程化产生的背景解决软件危机的有效途径传统建模方法的弊端软件工程化研究的内容软件工程化的研究意义9失之毫厘,

4、谬之千里由于软件开发过程中存在错误而导致的积累与放大效应原始要求正确的规格说明 错误的规格说明需求分析设计正确的设计 错误的设计 对错误说明的设计编码正确编码 对错误说明的编码 错误编码 对错误设计的编码测试正确功能 潜伏的错误 不可改正的错误 可改正的错误不完善的软件10软件危机的形成高 中 低分析 设计 编程 测试 维护修改错误的阶段代价(成本、质量、效率)原始要求正确的规格说明 错误的规格说明需求分析设计正确的设计 错误的设计 对错误说明的设计编码正确编码 对错误说明的编码错误编码对错误设计的编码测试正确功能 潜伏的错误 不可改正的错误 可改正的错误不完善的软件软件危机的形成11实体-关

5、系图数据流图设计方案分析结果OO程序非OO设计方案传统建模方法面临严重困境 三条难以逾越的鸿沟12软件产业自身的特点我国软件产业的现状解决传统的软件开发的弊端解决软件危机的需要软件工程化产生的背景作用13软件复用技术工程环境技术软件实用技术软件规范化技术软件过程化技术软件工程化的研究内容典型应用14CMM软件能力成熟度模型15软件能力成熟度模型概念产生的背景研究CMM的意义国外的发展现状国内的发展现状16国外发展现状CMM分为五个等级,目前世界上通过CMM认证的软件企业共有400多家,其中通过二级认证有243个三级认证的有100个四级认证的有60个五级认证的有13个返回17国内发展现状目前,我

6、国的软件企业通过CMM二级认证的软件企业不超过10家,而通过三级认证的企业仅有1家(由IBM公司和清华大学共同支柱的鼎新软件开发公司),同印度的软件企业相比,我们虽然比他们早起步了10年,但是目前我国的软件产品出口仅为印度的1%。印度有7家软件企业通过了五级认证。返回18产生的背景CMM在1996年由Carnegie-Mellon大学软件工程研究所SEI的Watts Humpherey提出的。CMM的基本思想是:由于许多的软件开发过程中的问题是由管理软件过程方法引起的,所以新软件的技术的运用不会自动提高生产率和利润率。191987年诞生于美国; 5层的分层进化结构;使用过程成熟度的概念来标志软

7、件组织开发软件产品的能力;1初始级1初始级过程能力不可预知5优化级 软件过程持续改进2可重复级可以重复以前的成功3已定义级组织的标准软件过程4 定量管理级软件过程可预测和控制返回20引进CMM的目的1.在软件生命周期的维护阶段花费的比例接近70%。(HP公司大约有60%-80%的研究人员和开发人员都涉及到维护工作)2.软件产品的特殊性。3.目前世界范围内的的软件开发现状(维护费用高、软件开发周期过长、软件产品不能按期的交付使用)返回21软件能力成熟度模型的概念CMM(Capability Maturity Model)。它与传统的软件生命周期模型不同,它不是一个软件生命周期模型,而是一种改进软

8、件过程的策略。它与实际的使用的模型无关。221.CMM明确的定义了五个不同的成熟的等级。(国外的情况)2.CMM 的软件过程完善是不可能在一夜之间完成的。(尤其是从第一级到第二级的过度)3.CMM是以增量方式逐步引入变化的。返回23意义自从人类发明数字计算机以后,计算机软件的开发一直是广泛应用计算机的瓶颈。研究新的软件开发方法和技术以提高计算机软件的生产率和质量一直是软件工程研究的焦点。大约在1987年前后,美国工业界和政府部门开始认识到,在软件开发过程中,最关键的问题是软件开发组织不能很好的定义和管理其软件过程,从而使一些好的开发方法和技术都得不到所期望的作用。而CMM是一个分级的模型,其分

9、层结构基于已有60多年历史的产品质量原理建立起来的。该框架为软件过程的定量控制建立了项目管理和项目工程的基本原则,这是软件过程得以不断改进的基础。返回24200000行的数据处理产品由CMM的第一级到第五级的组织开发时的数据25CSCMM能力成熟度模型0.初始级(Initial)1.基本级(basic)2.可重复级(Repeatable)3.已定义级(Defined)4.已管理级(Managed)5.优化级(Optimizing)26 CMM的内部结构CMM的相关概念CMM的关键过程域运用CMM进行软件过程改进时的注意事项CMM的相关知识27CMM的内部结构成熟度等级度等级过程能力关键关键过程

10、域过程域目标标关键实践类有关职责和目的 关键实践关键实践 基础设施或活动指示包含含达到 组织成一些织成一些阐述包含若干描述28 关键过程域:每个关键过程域只与特定的成熟度等级直接相关,它指明一组相关的实践活动,当这些活动全部完成时,就能达到对增强过程能力至关重要的若干个目标。关键实践:一个关键过程域的关键实践表示,实施这些关键实践是实现该关键过程域目标的必要条件关键实践类:制定方针政策、确保必备条件、实施软件过程和检查实施情况相关概念29CMM的关键过程域30过程改进时需要注意的事项1、对改进模型的充分理解(能力成熟度模型和包括于每一个关键过程域中的关键实践);2、理解自己组织的实际的实践活动

11、和模型所要求的实践活动之间的差异;3、定义满足改进目标的必要过程;4、确保改进过程被实施并且能够持续的改进。31不断改进的软件开发过程是软件工程的基本原理之一;软件过程改进是软件生存周期的基本过程之一;目前软件过程改进技术有三大流派;CMM得到了学术界和工业界公认;用工程化的思想推动软件产业发展;达到与世界软件水平同步的目标;研究基于CMM软件过程改进的意义特点32建立了软件过程改善组织提出了基于CMM的评估剖面图提出了环境对过程改进的影响模型和支持工具模型设计了基于CMM的教务系统方案形成了与传统的开发方法不同的教务系统改进框架利用PSP设计了详细的开发流程制定了保证软件过程改进顺利实施的条

12、件CMM在教务系统中的应用33建立教务系统软件过程改善组管理委员会SEPG工作组技术支持组培训组工具组信息组34环境因素对软件过程改进的影响当前项目状态前项目状态有关项目的信息项目决策活动 环境因素35基于CMM教务系统软件过程改进设计成熟度等级关键过程域域度等级建立软件过程改善组善组善组目标制定改制定活动计划进活动计划较低的成熟度等级的成熟度等级等级较高的成熟度等级高的成熟度等级系统自身特点进行软件过程改进环境因素评估当前系统改进过程是否满足改进要求要求形成过程改进框架是否36形成教务系统软件改进框架高层设计高层设计评审循环开发详细设计和设计评审测试开发和评审实现和代码评审编译测试再评估和再

13、循环需求和计划37利用PSP所形成的软件开发流程需求分析高层设计详细设计系统测试计划集成计划编码产品单元测试验收测试集成系统测试评估当前系统文档安装 需求文档 设计文档 编码文档38教务系统改进过程中的支持工具人员管理工具过程流程工具过程文档工具评审工具明确责任人负责各项活动支持审查并记录39首先必须对当前系统的过程改进进行评估,找出当前系统的弱点,从而作为软件过程改善的基础。评估可以依据CMM所提供的标准来进行,由管理委员成员和软件过程改善组的成员组成评估组对当前的系统进行评估。我们可以通过填写的CMM提问单的来对当前的系统进行分析和响应,根据响应和分析的结果,召开座谈会、对文档资料进行复审

14、,以便进一步了解软件开发所遵循的软件过程,在这个过程中应当以CMM中的关键过程域和关键实践作为基础,以便更好的确定所考察的实践与CMM之间存在的差异,同时形成文档作为今后过程改进的基础和理论依据。另外评估组成员也可以根据评估结果制作KPA剖面图,标明该软件开发组织以满足和未满足的其目标的关键过程域,同时在评估的过程中我们也可以聘请一些有经验的软件过程改进人员来参与软件组织的评估活动,进而能够确定过程改进中关键过程域和关键实践的优先级。基于CMM的软件过程评估过程40关于CMM调查单形式关于调查者的基本信息关于调查者的背景关于调查者回答问题的响应方式关于关键过程域和关键实践的响应41教务系统的评估结果42保证软件过程改进顺利进行的措施软件开发组织负责人的支持始终将软件的过程改进放到首要的位置制定严格的时间管理软件过程改进出现问题时能够及时改正软件质量的保证策略43制定严

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论