书签 分享 收藏 举报 版权申诉 / 42
上传文档赚钱

类型《软件工程——理论、方法与实践》课件第15章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7924401
  • 上传时间:2024-09-04
  • 格式:PPT
  • 页数:42
  • 大小:273.50KB
  • 【下载声明】
    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 软件过程能力成熟度模

    13、型结构2323第15章 软件过程改善其中,软件过程成熟度指一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。成熟度可以指明一个软件开发组织软件过程能力的增长潜力。软件能力成熟度等级分为若干个等级,每个等级是具有明确定义的、表征软件过程能力的一组过程目标,当达到其中一个目标时,就表明软件过程的一个或几个重要部分得到了实现,从而使组织的软件过程能力的增长。SEI CMM 1.1将软件成熟度分为5个等级,用以测量软件开发组织的软件过程成熟度和评价其软件过程能力,如图15.6所示。2424第15章 软件过程改善图15.6 软件能力成熟度等级2525第15章 软件过程改善1初始级初始级是一个不

    14、成熟的软件开发组织的软件过程所处的等级。处于初始级的软件过程表现为:软件开发无规范,不遵循任何软件工程标准,项目的组织和实施主要依赖于软件负责人个人的能力和意愿;软件过程是无秩序,甚至是混乱的,对过程几乎没有定义;项目过程往往是不可见的;项目管理是消防式的,管理人员经常要集中精力处理难以预料的灾难事件,进度和经费往往失控。所以,处于初始级的软件开发组织的过程能力是不可预测的,只能通过个人的能力而非组织的能力来预测产品的质量。2626第15章 软件过程改善2可重复级处于可重复级的软件开发组织,其软件过程能力可概括为是规范的。处于可重复级的软件过程表现为:软件开发工作初步实现了标准化;软件过程已具

    15、备诸如文档化、有培训、有测量、可改善等特征;且过程可跟踪,利用基线来控制产品的完整性;项目的管理已制度化,新项目的计划和管理基于过去的经验、具有重复以前成功项目的环境和条件。2727第15章 软件过程改善3已定义级处于已定义级的软件开发组织,其软件过程能力可概括为标准的和一致的。从“可重复”到“已定义级”的变化,表明过程成熟度关注的焦点已由项目的管理转向组织的体系和管理。其软件过程表现为:开发过程中的技术工作和管理工作均已实现标准化和文档化,全部技术和管理活动均稳定实施;建立了完善的培训制度和专家评审制度;项目的费用、进度和质量均可控;在整个组织范围内,各项目的软件能力是均衡、一致的。2828

    16、第15章 软件过程改善4定量管理级处于定量管理级的软件开发组织,其软件过程能力可概括为可预测的。其软件过程表现为:组织对软件产品和过程都设置了可度量的质量目标;项目通过将其过程实施的变化限制在定量可接受的范围之内而实现对其产品和过程的控制;开发新应用领域软件的风险是可定量评估的;组织的软件过程能力是可定量预测的。2929第15章 软件过程改善5优化级处于优化级的软件开发组织,其软件过程能力可概括为是持续优化的。其软件过程主要表现为:整个组织可以有效识别出过程的缺陷和软件工程实践的技术革新,并不断改进过程;在过程活动中主动评估软件过程活动,能分析并确定缺陷发生的原因,可防止同类缺陷的再现,组织的

    17、过程能力可不断提高。3030第15章 软件过程改善15.3.2 关键过程域能力成熟度模型CMM并不详细描述所有与软件开发和维护有关的过程活动,但是,有一些过程是决定过程能力的关键因素,这就是CMM所称的关键过程域。关键过程域是指互相关联的若干软件实践活动和有关基础设施的集合。关键过程域的实施对达到相应成熟度等级的目标起保证作用。关键过程域所包含的关键实践按5个公共特征加以组织,即执行约定、执行能力、执行的活动、度量和分析、验证实施。3131第15章 软件过程改善关键实践是指对关键过程域的实施起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述“做什么”,而不强制规定“如

    18、何做”。关键过程域的目标是通过其包含的关键实践来达到的。关键过程域是达到一个成熟度等级的必要条件。每个软件能力成熟度等级(除第一级外)均包含若干个对该成熟度等级至关重要的关键过程域,它们的实施对达到该成熟度等级的目标起到保证作用。这些关键过程域指出了企业在达到此级需要集中力量改进的软件过程,也就是指明了为要达到该能力成熟度等级所需要解决的具体问题。图15.7给出了CMM各成熟度等级对应的关键过程域。3232第15章 软件过程改善图15.7 CMM各成熟度等级对应的关键过程域3333第15章 软件过程改善 下面对CMM各成熟度等级对应的关键过程域作一介绍。需求管理:在客户和软件项目之间建立对客户

    19、需求的共同理解。在取得关于客户的需求共识后,与顾客签定协议,作为软件项目策划和管理的基础。软件项目计划:制定软件工程和软件项目管理的合理的计划。这些计划是管理软件项目的必要基础。软件项目跟踪和监督:建立适当的对实际进展的跟踪和监督,使管理者在软件项目实施情况显著偏离软件计划时能及时采取有效措施。3434第15章 软件过程改善 软件子合同管理:选择合格的软件分承包商,并进行有效的管理。应将需求管理、软件项目计划、软件项目跟踪和监督、软件年质量管理、配置管理等关键过程域所关注的事情适当地实施于分包商的管理。软件质量保证:提供对软件项目所采用的过程和所构造的产品的某种可视性和透明性,使管理者能容易地

    20、发现软件过程和产品质量问题,以便采取及时有效的措施。软件质量保证是绝大多数软件工程过程和软件管理过程必不可少的部分。3535第15章 软件过程改善 软件配量管理:在整个软件生存周期中建立和维护软件产品的完整性和一致性。主要有需求变更和产品基线的控制。软件配置管理是绝大多数软件工程过程和软件管理过程必不可少的部分。组织过程焦点:规定组织在提高整体过程能力、改进软件过程活动方面的责任。组织过程焦点活动的主要成果是机构的软件过程活动的成功经验,一般包括组织的标准软件过程、关于准予使用的软件生存周期的描述、对组织的标准软件过程进行剪裁的指南和准则、组织的软件过程数据库和软件过程有关的文档库,这些均在“

    21、组织过程定义”中加以描述。3636第15章 软件过程改善 组织过程定义:总结和保持一组便于实用的软件过程的成功的实践经验,以便使项目的过程实施能得到改进,为组织获得积累性的长期效益奠定基础。这些成功经验将提供一组稳定的基本原则,通过培训等机制使其成为制度。培训大纲:培训个人的技能和知识,以提高其执行任务的质量和效率。集成软件管理:将软件工程活动和软件管理活动集成为一个协调的、已定义的软件过程。该过程是通过剪裁组织的标准软件过程和组织过程定义中描述的相关过程的成功经验而得到。剪裁要根据项目的经营环境和技术要求进行。3737第15章 软件过程改善 组间协调:制定组间协作的方法。组间协调是集成软件管

    22、理涉及多学科的一个方面,它将延伸到软件工程学科之外的学科。不仅应该有集成的软件过程,而且应该有协调和控制软件工程组和其他组间相互作用的过程。软件工程产品:一致地执行妥善定义的软件工程过程,实现全面彻底的软件工程化。软件工程产品将描述软件项目的各种技术活动。同行专家评审:及早且高效地消除软件工作产品中的缺陷,可以通过文档审查、结构化审查、评审会及其他评审方法加以实施。定量过程管理:为已定义的过程建立一套详细的性能度量机制。定量过程管理给组织过程定义、集成软件管理、组间协调和同行专家评审等实践附加了内容丰富的度量计划。3838第15章 软件过程改善 软件质量管理:为产品和过程设立质量目标,度量软件

    23、过程和产品。软件质量管理要求对软件产品实施有效的度量计划。技术变更管理:能跟踪和识别软件工程的新技术,包括工具、方法和过程,并能合理、有序地引入这些新技术。活动关注的焦点是在不断变化的环境中,追求高效和创新。过程变更管理:持续不断地改进组织中所采用的软件过程,以改进软件质量、提高生产率和缩短产品开发周期。缺陷预防:鉴别缺陷出现的原因,并防止其再度出现。将具有普遍价值的过程变更通知其他软件项目。3939第15章 软件过程改善本 章 小 结一般可以把软件过程分为四类:非正规过程、已管理的过程、有方法的过程和改善的过程。不同类型的产品和开发可以使用不同类型的过程。软件过程改善主要是通过充分分析和理解

    24、现有过程,发现问题和缺陷并改善这些过程,其目的是提高产品质量、降低成本以及减少开发时间。软件过程改善有四个关键阶段:过程分析、识别改善、引入过程变更、训练工程师和调整变更。4040第15章 软件过程改善能力成熟度模型(CMM)描述了开发组织或项目组遵循其软件过程能够实现预期结果的程度。软件过程的成熟度取决于特定软件过程实施时,被明确和有效地定义、管理、测量和控制的程度。CMM能帮助软件企业对其软件工程过程进行管理和改进,增强软件开发能力,从而能按时地、不超预算地制造出高质量的软件。CMM明确地定义了5个不同的成熟度等级:初始级、可重复级、已定义级、定量管理级和优化级。一个软件开发组织可用一系列

    25、小的改善步骤逐步迈入更高的成熟度等级。4141第15章 软件过程改善习 题1什么是软件过程?简述软件过程改善的目的。2软件过程可以分为几类?不同类型的产品和开发可以使用哪种类型的过程?3软件过程改善有哪些关键阶段?4过程分析的目的是什么?可采用哪些过程分析技术?5为下面的过程设计出过程模型:(1)建造一个宠物狗居住的小木屋。(2)开发一个小程序(小于500行)。4242第15章 软件过程改善6什么是软件能力成熟度模型(CMM)?7简述软件能力成熟度模型(CMM)的结构。8名词解释:(1)软件过程成熟度;(2)软件能力成熟度等级;(3)关键过程域;(4)关键实践。9软件能力成熟度模型(CMM)是如何分级的?其主要用途是什么?10简述各CMM成熟度等级对应的关键过程域。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《软件工程——理论、方法与实践》课件第15章.ppt
    链接地址:https://www.163wenku.com/p-7924401.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库