《软件工程——理论、方法与实践》课件第15章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件工程——理论、方法与实践》课件第15章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程理论、方法与实践 软件工程 理论 方法 实践 课件 15
- 资源描述:
-
1、1 1第15章 软件过程改善第15章 软件过程改善15.1 软件过程类型15.2 过程改善活动15.3 能力成熟度模型CMM本章小结习题2 2第15章 软件过程改善15.1 软件过程类型IEEE定义过程(Process)是针对目标的一系列步骤。软件过程(Software Process)是人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和转换。其中的相关产品可能包括项目计划、设计文档、代码、测试用例、用户手册等。当前的软件开发机构和组织中所采用的软件过程,通常可分为四种类型:非正式的过程(Informal Process)、已管理的过程(Managed Process)、有方法的过程
2、(Methodical Process)和改善的过程(Improving Process)。3 3第15章 软件过程改善非正式的过程没有严格定义好的过程模型,所用过程的选择取决于开发团队。非正式的过程可能使用规范的软件活动和规程,例如配置管理,但是所用的规程以及规程间的关联关系并没有事先定义。非正式的过程仅适合原型系统、短生命周期系统、中/小规模的软件和用4GL语言构建的系统的开发。已管理的过程有定义好的过程模型,用来驱动开发过程。过程模型定义了所用的活动和规程、它们的进度以及规程间的关联关系。已管理的过程适合中、大型和长生命周期系统的开发。4 4第15章 软件过程改善有方法的过程具备很多定义
3、了的开发方法,如系统的面向对象设计方法。有方法的过程适合于对应用域有很好理解的系统以及进行再工程的系统等。这些过程具备有效的方法和工具的支持,如分析和设计工作平台、原型建立工具、测试工具等。改善的过程有其固有的改善目标。开发机构对过程改善设立了专门预算,具有不断改善过程的自觉意识,并引入了改善的活动。很多时候,作为过程改善基础,常引入对过程度量的量化活动。5 5第15章 软件过程改善当然,一个过程可能属于多个类型。比如,过程可以是非正式的,因为它是开发团队选择的结果。团队可能选择使用一个特别的设计方法,他们也可能有过程改善的能力。因此过程分别属于非正式的、有方法的和改善的类型。目前绝大多数软件
4、过程都有CASE工具的支持,因此它们是有方法支持的过程。工具对过程支持的有效性依赖于过程分类。举例来说,非正式的过程能使用通用工具,如原型建立语言、编译器、调试器、字处理器等,但一般很少持续使用更专业化的工具。图15.1给出了在软件开发当中可以使用的各种工具。特定工具的效力取决于使用它的过程类型。6 6第15章 软件过程改善图15.1 过程工具的支持7 7第15章 软件过程改善15.2 过程改善活动15.2.1 过程改善虽然开发机构在开发相同类型的软件时明显地有很多相同之处,但许多软件机构也会因自身的因素、规程和标准影响着过程。因此,对其他或通用过程改善方法的简单引进并不适合开发机构自身的特点
5、。不断地分析、总结和评估自身软件过程,并加以改善应该是软件机构的一项明确、持久的活动。过程改善的通用模型如图15.2所示。8 8第15章 软件过程改善图15.2 过程改善的通用模型9 9第15章 软件过程改善在过程改善的过程中有以下几个关键阶段:(1)过程分析。过程分析包括检查已有的过程并建立过程模型并以文档记录和理解过程。尽可能量化地分析过程,这可以为过程改善提供有力的依据。在变更的前后所做的量化分析可以对过程变更的利与弊做出客观的评估。(2)识别改善。这个阶段的活动是要利用过程分析的结果,发现影响质量、进度或成本的因素,以利于在后面的活动中提出新方法和工具来解决这些问题。1010第15章
6、软件过程改善(3)引入过程变更。引入过程变更就是要加入新的规程、方法和工具,将它们和其他的过程活动加以集成。同时要保证这些变更不和其他的过程活动以及机构已有的规程和标准发生冲突。(4)训练工程师。对软件工程师进行培训,让他们能理解、适应并完成变更。(5)调整变更。过程变更需要有一个调整阶段,其间会有问题的出现和对过程不断修改、执行的反复工程。调整阶段往往会持续数月,直到工程趋于稳定且能让开发工程师很好地适应。1111第15章 软件过程改善15.2.2 过程分析和建模软件过程改善活动中,过程分析极为重要,正确、有效地分析现有的过程,抽取的过程关键特征并度量是过程改善的基础。因此,过程分析人员需要
7、通过调查问卷和向项目中的工程人员询问实际过程中执行的情况,自动收集或手工收集各种过程数据(如程序员的编码进度、每千行代码测试出的错误数等),对过程进行详细的分析,并建立过程模型。1212第15章 软件过程改善过程模型既可以用很详细的形式表达,也可以用精简的形式描述。第2章所阐述的通用过程模型为本章讨论过程改善打下了基础,但这些模型并不包括足够的、用于过程分析和改善的信息。过程改善需要有关过程活动、可交付内容、人员、通信、进度以及其他的机构过程等能对软件开发过程带来影响的各方面信息。表15.1说明了一个详细的过程模型应该包括哪些内容。1313第15章 软件过程改善1414第15章 软件过程改善另
8、外,时间安排以及活动、可交付内容和通信之间的依赖关系也必须要在过程模型中体现出来。同一个工程师可能参与到几个交替或并行的活动,可交付内容也会依赖于其他可交付内容或者依赖于过程参与人员之间的通信。通常,很难在一个模型中详细描述过程的上述所有元素,因此,常常需要将过程分解成若干子模型加以描述。这里给出一个大型系统中单个模块的测试过程的模型,在该过程中,有着严格控制的配置管理活动,所测试的软件和测试数据受到配置管理的控制。图15.3给出了测试过程的角色、过程的输入和输出以及前置条件和后置条件。1515第15章 软件过程改善图15.3 模块测试过程1616第15章 软件过程改善图15.4是对这个过程中
9、的“模块测试”活动进行分解的模型,活动被分解成四个相对独立的活动,分别是测试数据准备、模块测试程序准备、执行测试和形成测试报告。1717第15章 软件过程改善图15.4 模块测试中的各种活动1818第15章 软件过程改善15.3 能力成熟度模型CMM 软件能力成熟度模型(Capability Maturity Model For Software,SW-CMM)最初由美国军方委托卡内基梅隆大学的软件工程研究所(Software Engineering Institute,SEI)研究,用以评估军用软件承包商的软件过程,从而评价其软件开发能力。1986年11月,在Mitre公司的协助下,SEI开
10、始建立过程成熟度框架。1987年9月,SEI给出了软件过程成熟度框架及支持工具。此后经过4年的实践,SEI将软件过程成熟度框架发展为能力成熟度模型(Capability Maturity Model,CMM),并在政府和企业等各领域里大力推广。1919第15章 软件过程改善CMM描述了开发组织或项目组遵循其软件过程能够实现预期结果的程度,它既可对整个软件开发组织而言,也可对一个软件项目而言。而软件过程的成熟度取决于特定软件过程实施时,被明确和有效地定义、管理、测量和控制的程度。CMM能帮助软件企业对其软件工程过程进行管理和改进,增强软件开发能力,从而能按时地、不超预算地制造出高质量的软件,因此
11、CMM得到国际软件产业界和软件工程界的普遍关注。2020第15章 软件过程改善CMM的主要意义在于:(1)用于软件过程的改进(Software Process Improvement,SPI):帮助软件企业对其软件过程的改进进行计划制定以及实施。(2)用于软件过程评估(Software Process Assessment,SPA):在评估中,一组经过培训的软件专业人员确定出一个企业软件过程的状况,找出该企业所面对(或存在)的与软件过程有关的、最迫切解决的所有问题,以及取得企业领导层对软件过程改进的支持。(3)软件能力评价(Software Capability Evaluation,SCE)
12、:在能力评价中,经过培训的专业人员可以鉴别出软件承包者的能力资格,或用于评估软件开发的软件过程的状况。2121第15章 软件过程改善15.3.1 CMM成熟度等级SEI的能力成熟度模型是对软件过程进行过程度量的有效方法和行为依据。通过研究以往软件工程过程改进的成果以及经验教训,CMM提供了一个基于过程改进的框架,明确指出了软件组织和机构在软件开发过程中,需要关注的主要活动、这些活动之间的关系、活动的先后次序,以及如何做好并改进过程活动。CMM模型旨在帮助软件机构通过过程的持续改进实现软件过程的不断成熟。CMM的结构如图15.5所示。2222第15章 软件过程改善图15.5 软件过程能力成熟度模
展开阅读全文