第12章软件过程与软件过程改进课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第12章软件过程与软件过程改进课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 软件 过程 改进 课件
- 资源描述:
-
1、第12章 软件过程与软件过程改进 软件过程概述软件过程概述 软件生存期过程国际标准软件生存期过程国际标准 软件过程成熟度软件过程成熟度 软件能力成熟度模型软件能力成熟度模型 软件过程改进软件过程改进第12章 软件过程与软件过程改进 尽管软件工程项目的具体情况各有不同,但影响软件产品尽管软件工程项目的具体情况各有不同,但影响软件产品质量和软件项目生产率的共同因素主要有质量和软件项目生产率的共同因素主要有3 3个:人员、技个:人员、技术和过程。术和过程。如果把音乐会演出视为软件项目,则乐队和指挥就相当于如果把音乐会演出视为软件项目,则乐队和指挥就相当于参与项目的人员;舞台和乐器相当于支持开发的环境
2、条件、参与项目的人员;舞台和乐器相当于支持开发的环境条件、技术和工具;而乐谱相当于软件项目的过程。技术和工具;而乐谱相当于软件项目的过程。12.1 软件过程概述 软件过程软件过程尽管软件危机最早于上个世纪六十年代已经提出,尽管软件危机最早于上个世纪六十年代已经提出,业内人士确已投入了大量人力和物力,试图摆脱业内人士确已投入了大量人力和物力,试图摆脱软件业长期的发展之痛。然而,事实表明,问题软件业长期的发展之痛。然而,事实表明,问题至今还未得到很好地解决。至今还未得到很好地解决。在近十几年的大量研究和实践之后,许多人逐渐在近十几年的大量研究和实践之后,许多人逐渐认识到,从软件过程的改进来解决可能
3、是有效的认识到,从软件过程的改进来解决可能是有效的方法之一。方法之一。12.1 软件过程概述 软件过程软件过程著名的软件工程专家,也是著名的软件工程专家,也是CMM的主要创始人的主要创始人Watts Humphrey提出了以下几个重要论点:提出了以下几个重要论点:(1)软件系统的质量取决于用以开发和改进它的过程质量。)软件系统的质量取决于用以开发和改进它的过程质量。(2)解决软件问题的重要一步是把整个软件工作当作一个)解决软件问题的重要一步是把整个软件工作当作一个过程来对待,使其能够控制、度量和改进。过程来对待,使其能够控制、度量和改进。(3)软件过程是我们用以开发软件产品的一套工具、方法)软
4、件过程是我们用以开发软件产品的一套工具、方法和实践。和实践。(4)软件过程管理的目标是按计划生产产品,同时提高软)软件过程管理的目标是按计划生产产品,同时提高软件组织的能力,以利于生产出好的产品。件组织的能力,以利于生产出好的产品。12.1 软件过程概述 软件过程软件过程(5)成本估算和开发期安排的承诺应该是比较合)成本估算和开发期安排的承诺应该是比较合理的,开发出的产品应该在功能和质量方面都能理的,开发出的产品应该在功能和质量方面都能满足用户的期望。满足用户的期望。(6)有效的软件管理必须考虑所要完成的任务,)有效的软件管理必须考虑所要完成的任务,所采用的方法和工具,以及参与工作人员的技能、
5、所采用的方法和工具,以及参与工作人员的技能、培训和积极性。培训和积极性。(7)有效的软件过程必须是可预测的。)有效的软件过程必须是可预测的。12.2 软件生存期过程国际标准 19951995年年8 8月,国际标准化组织(月,国际标准化组织(ISOISO)和国际电工委员会)和国际电工委员会(IECIEC)联合发布了国际标准)联合发布了国际标准ISOISOIEC 12207 IEC 12207 Information Technology Software Life Cycle Information Technology Software Life Cycle ProcessesProcesse
6、s。20082008年,这两个国际标准化机构又联合了美国电气与电子年,这两个国际标准化机构又联合了美国电气与电子工程师学会(工程师学会(IEEEIEEE),共同发布了该标准的第二版:),共同发布了该标准的第二版:ISOISOIEC 12207:2008IEC 12207:2008(IEEE Std.12207-2008IEEE Std.12207-2008)Systems and software engineeringSoftware life Systems and software engineeringSoftware life cycle processescycle process
7、es。12.2 软件生存期过程国际标准 结构结构由于越来越多的软件作为系统的一部分开发和运行,因此由于越来越多的软件作为系统的一部分开发和运行,因此我们在研究和处理软件问题时,建立系统的观念是十分必我们在研究和处理软件问题时,建立系统的观念是十分必要的。软件项在系统中的位置如下图所示。要的。软件项在系统中的位置如下图所示。基于这一观念,该标准分为两部分:基于这一观念,该标准分为两部分:1)1)与系统相关的过程;与系统相关的过程;2)2)软件特有过程。软件特有过程。系统元素系统元素12.2 软件生存期过程国际标准 与系统相关的过程与系统相关的过程12.2 软件生存期过程国际标准 软件特有过程软件
8、特有过程12.3 软件过程成熟度 什么是软件过程成熟度什么是软件过程成熟度 过程制度化过程制度化12.3.1 什么是软件过程成熟度 软件过程成熟度的概念软件过程成熟度的概念任何一个软件组织,在完成自身的开发、维护等任何一个软件组织,在完成自身的开发、维护等工作中,都有自己的软件过程。这种过程有可能工作中,都有自己的软件过程。这种过程有可能是初级的、低效的,也可能是高效的,在其成熟是初级的、低效的,也可能是高效的,在其成熟性方面存在差异,这当然是相互比较而言的。性方面存在差异,这当然是相互比较而言的。软件过程成熟度软件过程成熟度(Software Process MaturitySoftware
9、 Process Maturity)是软件过程改进的一个重要概念,它是指:是软件过程改进的一个重要概念,它是指:一个一个特定软件过程得到清晰的定义、管理、测量、控特定软件过程得到清晰的定义、管理、测量、控制的有效程度。成熟度意味着能力的增长具有潜制的有效程度。成熟度意味着能力的增长具有潜力,并表示组织软件过程是珍贵的,他在组织内力,并表示组织软件过程是珍贵的,他在组织内所有项目中的应用是一致的。所有项目中的应用是一致的。12.3.1 什么是软件过程成熟度 不成熟过程与成熟过程的对比不成熟过程与成熟过程的对比1)角色与职责角色与职责不成熟过程不成熟过程成熟过程成熟过程l没有明确规定角色和职责没有
10、明确规定角色和职责l每个人做自己认为要做的每个人做自己认为要做的事事l常会发生重叠和不清楚的常会发生重叠和不清楚的所属关系和责任所属关系和责任l明确规定角色和职责明确规定角色和职责l相互关系无重叠相互关系无重叠l有明确的目标和测量方法有明确的目标和测量方法l能够体现持续改进过程的能够体现持续改进过程的机制机制2)处理变更的方式处理变更的方式不成熟过程不成熟过程成熟过程成熟过程l每个人都按自己的想每个人都按自己的想法做事法做事l遵循一个规划好的文遵循一个规划好的文件化过程件化过程l可分享取得的经验可分享取得的经验12.3.1 什么是软件过程成熟度3)对发生问题的反应对发生问题的反应不成熟过程不成
11、熟过程成熟过程成熟过程l无秩序的混乱现象随处可无秩序的混乱现象随处可见见l“救火救火”方式解决出现问方式解决出现问题的情况经常发生题的情况经常发生l每个人都想当英雄每个人都想当英雄l根据已有的知识和专业规根据已有的知识和专业规则对发生的问题进行分析则对发生的问题进行分析和处理和处理12.3.1 什么是软件过程成熟度4)可信性可信性不成熟过程不成熟过程成熟过程成熟过程l有时延迟交付产品或超出有时延迟交付产品或超出预算预算l如有估算也不可靠如有估算也不可靠l估算准确估算准确l项目得到有效的控制和管项目得到有效的控制和管理理l目标一般能够达到目标一般能够达到12.3.1 什么是软件过程成熟度5)对工
12、作人员的奖励对工作人员的奖励不成熟过程不成熟过程成熟过程成熟过程l奖励的对象是奖励的对象是“救火救火”队队员员l“如果你第一次就把事情如果你第一次就把事情做好了,那是你的本分,做好了,那是你的本分,没有人理睬,但你若先把没有人理睬,但你若先把事情搞乱,然后再去解决,事情搞乱,然后再去解决,你就成了英雄。你就成了英雄。”_Deming,1986l奖励那些生产高质量产品奖励那些生产高质量产品的团队的团队l奖励那些防火者而不是救奖励那些防火者而不是救火者火者12.3.1 什么是软件过程成熟度6)预见性预见性不成熟过程不成熟过程成熟过程成熟过程l质量不可把握,它依赖于质量不可把握,它依赖于个人个人l进
13、度和预算不能根据以往进度和预算不能根据以往的经验确定的经验确定l项目的进度和产品的质量项目的进度和产品的质量均可预见均可预见l进度和预算可根据以往项进度和预算可根据以往项目的经验确定,并且是符目的经验确定,并且是符合实际的合实际的12.3.1 什么是软件过程成熟度12.3.2 过程制度化 过程认同与过程制度化过程认同与过程制度化软件开发过程决定了在接受软件工程项目后工作人员的行软件开发过程决定了在接受软件工程项目后工作人员的行动方式和反应方式。为了实现某个既定的目标,人们的行动方式和反应方式。为了实现某个既定的目标,人们的行为、活动和任务都要遵循为达到此目标所经历的过程。为、活动和任务都要遵循
14、为达到此目标所经历的过程。规范化的过程体现了一系列有序的和协调一致的行为模式,规范化的过程体现了一系列有序的和协调一致的行为模式,无论这个过程是由一个人来完成或是由一个团队人员共完无论这个过程是由一个人来完成或是由一个团队人员共完成都是如此。成都是如此。12.3.2 过程制度化 过程认同与过程制度化过程认同与过程制度化当一个规范化过程已经渗入组织的日常生活之中,过程的当一个规范化过程已经渗入组织的日常生活之中,过程的要求已经变成全体员工的自觉行动,得到大家的认同和坚要求已经变成全体员工的自觉行动,得到大家的认同和坚持遵循时,过程便成为制度化的(持遵循时,过程便成为制度化的(process in
15、stitutionalization)。)。做到这一点并不容易,要靠过程文化和过程基础设施的支做到这一点并不容易,要靠过程文化和过程基础设施的支持,如图所示。持,如图所示。12.3.2 过程制度化 过程文化过程文化过程文化是指人们的习惯和行为受到过程思维和过程管理过程文化是指人们的习惯和行为受到过程思维和过程管理原则的影响。人们对于规范化过程是完全认同的,就是说,原则的影响。人们对于规范化过程是完全认同的,就是说,人们的活动自觉地按过程要求去作。人们的活动自觉地按过程要求去作。过程文化应具有自己的特性。过程文化应具有自己的特性。12.3.2 过程制度化 过程文化过程文化12.3.2 过程制度化
16、 过程基础设施过程基础设施对于软件过程来说,基础设施指的是支持软件过程的基础对于软件过程来说,基础设施指的是支持软件过程的基础框架和结构基础。它不仅包括组织和管理的岗位和职责,框架和结构基础。它不仅包括组织和管理的岗位和职责,而且包括支持定义过程、开展过程活动、获取和分析过程而且包括支持定义过程、开展过程活动、获取和分析过程有关绩效反馈以及不断进行过程改进活动所必须的技术工有关绩效反馈以及不断进行过程改进活动所必须的技术工具和平台。具和平台。事实上,过程基础设施包含了事实上,过程基础设施包含了 组织和管理基础设施、技术基组织和管理基础设施、技术基 础设施两个方面,如图所示。础设施两个方面,如图
17、所示。12.3.2 过程制度化 组织管理基础设施组织管理基础设施组织和管理基础设施包括建立、监控和推进过程活动的岗组织和管理基础设施包括建立、监控和推进过程活动的岗位及其职责。支持过程的岗位和职责又有面向全局的和面位及其职责。支持过程的岗位和职责又有面向全局的和面向局部之分。向局部之分。支持全局工作的功能组通常是在公司一级上工作的,如软支持全局工作的功能组通常是在公司一级上工作的,如软件工程过程组(件工程过程组(SPEGSPEG)。)。支持局部工作的功能组可能是在项目级上工作,也可能是支持局部工作的功能组可能是在项目级上工作,也可能是在某个特定的关键过程域上工作。在某个特定的关键过程域上工作。
18、在这些功能组工作的人员有些是全职(或称全时)的,如在这些功能组工作的人员有些是全职(或称全时)的,如SEPGSEPG组;也有的功能组人员是兼职的,如软件过程改进组组;也有的功能组人员是兼职的,如软件过程改进组(PIT Process Improvement TeamPIT Process Improvement Team)。)。12.3.2 过程制度化 技术基础设施技术基础设施软件过程技术基础设施是支持软件过程技术基础设施是支持SEPGSEPG和和PITPIT的技术平台、计的技术平台、计算机设施和工具。算机设施和工具。对于软件过程环境来说,基础设施的过程支持部件包括支对于软件过程环境来说,基础
19、设施的过程支持部件包括支持与过程有关活动的工具。下图表示软件过程技术基础设持与过程有关活动的工具。下图表示软件过程技术基础设施的结构。施的结构。12.4 软件能力成熟度模型 CMM与与SEI CMM的演化的演化 CMM族和族和CMMI CMM1.2简介简介 CMMI评估评估美国卡内基梅隆大学软件工程研究所在美国美国卡内基梅隆大学软件工程研究所在美国国防部资助下于国防部资助下于20世纪世纪80年代末建立的能力年代末建立的能力成熟度模型(成熟度模型(capability maturity model,CMM),是用于评价软件机构的软件过程能,是用于评价软件机构的软件过程能力成熟度的模型。最初,建立
20、此模型的目的力成熟度的模型。最初,建立此模型的目的主要是,为大型软件项目的招投标活动提供主要是,为大型软件项目的招投标活动提供一种全面而客观的评审依据,发展到后来,一种全面而客观的评审依据,发展到后来,此模型又同时被应用于许多软件机构内部的此模型又同时被应用于许多软件机构内部的过程改进活动中。过程改进活动中。12.4 能力成熟度模型改进对软件过程的管理是消除软件危机的突改进对软件过程的管理是消除软件危机的突破口,比采用先进的技术和工具更重要。破口,比采用先进的技术和工具更重要。能力成熟度模型的基本思想:能力成熟度模型的基本思想:通过建立成熟的优化的软件过程,提高软件通过建立成熟的优化的软件过程
21、,提高软件的生产率和质量。而技术的改进是软件过程的生产率和质量。而技术的改进是软件过程改进的结果。改进的结果。CMM的作用:指导软件机构通过确定当前的的作用:指导软件机构通过确定当前的过程成熟度并识别出对过程改进起关键作用过程成熟度并识别出对过程改进起关键作用的问题,进而稳步而有效地改进其软件过程,的问题,进而稳步而有效地改进其软件过程,提高成熟度,使其软件过程能力得到循序渐提高成熟度,使其软件过程能力得到循序渐进的提高。进的提高。CMM把软件过程从无序到优化的进化过程分成把软件过程从无序到优化的进化过程分成5个个有序的阶段,用以测量软件机构的软件过程成熟度有序的阶段,用以测量软件机构的软件过
展开阅读全文