软件能力成熟度模型_第1页
软件能力成熟度模型_第2页
软件能力成熟度模型_第3页
软件能力成熟度模型_第4页
软件能力成熟度模型_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、CMM 软件能力成熟度模型软件能力成熟度模型Capability Maturity Model3.1 过程改进过程改进w 质量三角:组织的质量三角:组织的Q&P依赖于过程、人和技术三个因素;依赖于过程、人和技术三个因素;w 过程驱动的两种模式:过程驱动的两种模式:w 目标模式:根据一个预先设定的目标,自顶向下制定过目标模式:根据一个预先设定的目标,自顶向下制定过程度量或评价模型,有目的地开展相关改进活动的过程程度量或评价模型,有目的地开展相关改进活动的过程改进模式;改进模式;w 缺陷驱动模式:根据过程实施时所产生的关于过程缺陷缺陷驱动模式:根据过程实施时所产生的关于过程缺陷的反馈信息,

2、进行有针对性的改进活动;的反馈信息,进行有针对性的改进活动;w 有效结合。有效结合。w 软件过程成熟度,指一个特定的软件过程软件过程成熟度,指一个特定的软件过程被显式定义、管理、度量、控制和执行的被显式定义、管理、度量、控制和执行的程度;程度;3.2 CMM概述概述 一个成熟软件组织具有在全组织范围内管理软件、开发一个成熟软件组织具有在全组织范围内管理软件、开发过程和维护过程的能力过程和维护过程的能力 规定的软件过程被正确无误地通知到所有员工规定的软件过程被正确无误地通知到所有员工 工作活动均按照已规划的过程进行工作活动均按照已规划的过程进行,并,并通过可控的先导通过可控的先导性试验和费效分析

3、使这些过程得到改进性试验和费效分析使这些过程得到改进 对已定义过程中的所有岗位及其职责都有清楚的描述对已定义过程中的所有岗位及其职责都有清楚的描述 通过文档与培训使全组织有关人员对已定义的软件过程通过文档与培训使全组织有关人员对已定义的软件过程都有很好的理解,从而使其软件过程所导致的生产率和都有很好的理解,从而使其软件过程所导致的生产率和质量能随时间的推移得到改进。质量能随时间的推移得到改进。CMM的诞生的诞生 w 软件管理工程引起广泛注意源于软件管理工程引起广泛注意源于20世纪世纪70年代中期。当年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,时美国国防部曾立题专门研究软件项目做

4、不好的原因,发现发现70%的项目是因为管理不善而引起,而并不是因为的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。研发项目全局的因素,而技术只影响局部。w 到了到了20世纪世纪90年代中期,软件管理工程不善的问题仍然年代中期,软件管理工程不善的问题仍然存在,大约只有存在,大约只有10%的项目能够在预定的费用和进度下的项目能够在预定的费用和进度下交付。交付。w 软件项目失败的主要原因有:需求定义不明确;缺乏一软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过

5、程;没有一个统一领导的产品研发小个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。费用和风险;军用标准太少且不够完善等等。w 在关系到软件项目成功与否的众多因素中,软件度量、在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管工作

6、量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。理等都是与工程管理直接相关的因素。w 软件管理工程和其它工程管理相比有其特软件管理工程和其它工程管理相比有其特殊性:殊性:w 软件是知识产品,进度和质量都难以度量,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。生产效率也难以保证。w 软件系统复杂程度也是超乎想象的。软件系统复杂程度也是超乎想象的。w 因为软件复杂和难以度量,软件管理工程因为软件复杂和难以度量,软件管理工程的发展还很不成熟。的发展还很不成熟。w 软件管理工程的发展,在经历了从软件管理工程的发展,在经历了从70年代开始以结构化年代开始以结构化

7、分析与设计、结构化评审、结构化程序设计以及结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的测试为特征的结构化生产时代结构化生产时代;w 到到90年代中期,以年代中期,以CMM模型的成熟模型和日益为市场模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型接受为标志,已经进入以过程成熟模型CMM、个体软、个体软件过程件过程PSP和群组软件过程和群组软件过程TSP为标志的为标志的以过程为中心以过程为中心的时代的时代;w 而软件发展第三个时代,及而软件发展第三个时代,及软件工业化生产时代软件工业化生产时代,从,从90年代中期软件过程技术的成熟和面向对象技术、构件技年代中期软件

8、过程技术的成熟和面向对象技术、构件技术的发展为基础,可以实现真正的软件工业化生产。软术的发展为基础,可以实现真正的软件工业化生产。软件生产转向以改善软件过程为中心。件生产转向以改善软件过程为中心。CMM的发展的发展 wCMM框架用框架用5个不断进化的层次来评定软件生产的历史与现状:个不断进化的层次来评定软件生产的历史与现状:w初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。过程。w任

9、何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这够成熟,但总体上必然属于这5个层次中的某一个层次。而在某个层次内个层次中的某一个层次。而在某个层次内部,也有成熟程度的区别。在部,也有成熟程度的区别。在CMM框架的不同层次中,需要解决带有不框架的不同层次中,需要解决带有不同层次特征的软件过程问题。同层次特征的软件过程问题。w因此,一个软件开发单位首先需要了解自己正处于哪一个层次,然后才能因此,一个软件开发单位首先需要了解自己正处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题

10、。任何软件开发单位在够对症下药地针对该层次的特殊要求解决相关问题。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化。而且致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化。而且在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具备的能力还必须得到保持与发扬。备的能力还必须得到保持与发扬。CMM的一些基本概念的一些基本概念(1)w 软件过程:人们用于开发和维护软件及其相关过程的一软件过程:人们用于开发和维护软件及其相关过程的一系列活动,包括软件工程活动和软件管理活动。系列活动,包括软件

11、工程活动和软件管理活动。w 软件过程能力:描述(开发组织或项目组)遵循其软件软件过程能力:描述(开发组织或项目组)遵循其软件过程能够实现预期结果的程度,它既可对整个软件开发过程能够实现预期结果的程度,它既可对整个软件开发组织而言,也可对一个软件项目而言。组织而言,也可对一个软件项目而言。w 软件过程性能:表示(开发组织或项目组)遵循其软件软件过程性能:表示(开发组织或项目组)遵循其软件过程所得到的实际结果,软件过程性能描述的是已得到过程所得到的实际结果,软件过程性能描述的是已得到的实际结果,而软件过程能力则描述的是最可能的预期的实际结果,而软件过程能力则描述的是最可能的预期结果,它既可对整个软

12、件开发组织而言,也可对一个特结果,它既可对整个软件开发组织而言,也可对一个特定项目而言。定项目而言。w 软件过程成熟:一个特定软件过程被明确和有效地定义,软件过程成熟:一个特定软件过程被明确和有效地定义,管理测量和控制的程度。管理测量和控制的程度。CMM的一些基本概念(的一些基本概念(2)w 软件能力成熟度等级:软件开发组织在走向成熟的途中软件能力成熟度等级:软件开发组织在走向成熟的途中几个具有明确定义的表示软件过程能力成熟度的平台。几个具有明确定义的表示软件过程能力成熟度的平台。w 关键过程域:每个软件能力成熟度等级包含若干个对该关键过程域:每个软件能力成熟度等级包含若干个对该成熟度等级至关

13、重要的过程域,它们的实施对达到该成成熟度等级至关重要的过程域,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域,反之有非关键过程域,是指对熟度等级的关键过程域,反之有非关键过程域,是指对达到相应软件成熟度等级的目标不起关键作用。归纳为:达到相应软件成熟度等级的目标不起关键作用。归纳为:互相关联的若干软件实践活动和有关基础设施的一个集互相关联的若干软件实践活动和有关基础设施的一个集合。合。CMM的一些基本概念(的一些基本概念(3)w 关键实践:对关键过程域的实践起关键作用的方针、规关键实践:对关键过程域的实践

14、起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一程、措施、活动以及相关基础设施的建立。关键实践一般只描述般只描述“做什么做什么”而不强制规定而不强制规定“如何做如何做”。整个软件。整个软件过程的改进是基于许多小的、渐进的步骤,而不是通过过程的改进是基于许多小的、渐进的步骤,而不是通过一次革命性的创新来实现的,这些小的渐进步骤就是通一次革命性的创新来实现的,这些小的渐进步骤就是通过一些着关键实践来实现。过一些着关键实践来实现。w 软件能力成熟度模型:随着软件组织定义、实施、测量、软件能力成熟度模型:随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力也伴随着这些

15、控制和改进其软件过程,软件组织的能力也伴随着这些阶段逐步前进,完成对软件组织进化阶段的描述模型。阶段逐步前进,完成对软件组织进化阶段的描述模型。CMM五级模型五级模型(1)w 第一级:初始级第一级:初始级 在初始级,企业一般不具备稳定的软件开在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。放弃原定的计划而只专注于编程与测试。 CMM五级模型五级模型(2)w 第二级:可重复级第二级:可重复级 在这一级,建立了管理软件项目的政策以在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施

16、。基于过往及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。的项目的经验来计划与管理新的项目。 CMM五级模型五级模型(3)w 第三级:定义级第三级:定义级 在这一级,有关软件工程与管理工程的一在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准集成到一个协调的整体。这就称为企业的标准软件过程。软件过程。 CMM五级模型五级模型(4)w 第四级:定量管理级第四级:定量管理级 在这一级,企业

17、对产品与过程建立起定量在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案,的连续的度量。作为企业的度量方案, 要对所要对所有项目的重要的过程活动进行生产率和质量的有项目的重要的过程活动进行生产率和质量的度量。软件产品因此具有可预期的高质量。度量。软件产品因此具有可预期的高质量。 CMM五级模型五级模型(5)第五级:(不断)优化级第五级:(不断)优化级 在这个等级,整个企业将会把重点放在对在这个等级,整个企业将会把重点放在对过程进行不断的优化。企业会采取,以达到预过程进行不断的优化。企业会采取,以达

18、到预防缺陷防缺陷 的目标。同时,分析主动去找出过程的的目标。同时,分析主动去找出过程的弱点与长处有关过程的有效性的资料,作出对弱点与长处有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程新技术的成本与收益的分析,以及提出对过程进行修改的建议。进行修改的建议。 CMM等级模型图等级模型图 w CMM的作用:的作用:w 科学地评价软件开发单位的软件能力成熟科学地评价软件开发单位的软件能力成熟等级;等级;w 帮助软件开发单位进行自检,了解自己的帮助软件开发单位进行自检,了解自己的强项和弱项,从而不断完善和改进单位的强项和弱项,从而不断完善和改进单位的软件开发过程,确保软件质量,提

19、高软件软件开发过程,确保软件质量,提高软件开发能效率。开发能效率。 CMM的意义的意义w 迄今为止学术界和工业界公认的有关软件迄今为止学术界和工业界公认的有关软件工程和管理实践的最好的软件过程。工程和管理实践的最好的软件过程。w 为评估软件组织的生产能力提供了标准为评估软件组织的生产能力提供了标准。w 为提高软件组织的生产过程指明了方向。为提高软件组织的生产过程指明了方向。 CMM和和ISO9001的比较的比较w CMM专为软件企业定制,而专为软件企业定制,而ISO适用于各行各适用于各行各业业w ISO9001确定了一个质量体系的最少要求确定了一个质量体系的最少要求w CMM明确强调持续的过程

20、改进明确强调持续的过程改进w 既有联系又有区别既有联系又有区别w 最重要的是保证企业产品质量并不断改进和提最重要的是保证企业产品质量并不断改进和提高高链接链接1:解析:解析CMM和中国软件和中国软件 w 有意向中国软件公司发包的外商最关心的是两有意向中国软件公司发包的外商最关心的是两个事情:一个是对知识产权的保护,另一个则个事情:一个是对知识产权的保护,另一个则是人力资源上是否具备和甲方进行有效沟通的是人力资源上是否具备和甲方进行有效沟通的能力。能力。w 关于开发的管理,有外商认为,如果在美国,关于开发的管理,有外商认为,如果在美国,一个企业如果拿出任何能够证明其公司管理能一个企业如果拿出任何

21、能够证明其公司管理能力的资料,他都不会有任何怀疑,而在中国:力的资料,他都不会有任何怀疑,而在中国:No,I only believe my eyes!w 所谓软件外包就是一些发达国家的软件公司将他们的一些非核心的所谓软件外包就是一些发达国家的软件公司将他们的一些非核心的软件项目通过外包的形式交给人力资源成本相对较低的国家的公司软件项目通过外包的形式交给人力资源成本相对较低的国家的公司开发,以达到降低软件开发成本的目的。众所周知,软件开发的成开发,以达到降低软件开发成本的目的。众所周知,软件开发的成本中本中70%是人力资源成本,所以,降低人力资源成本将有效地降低是人力资源成本,所以,降低人力资

22、源成本将有效地降低软件开发的成本。软件开发的成本。 w 软件外包已经成为发达国家的软件公司降低成本的一种重要的手段。软件外包已经成为发达国家的软件公司降低成本的一种重要的手段。目前,全球软件的销售额为目前,全球软件的销售额为6,000亿美元,而其中软件外包的销售亿美元,而其中软件外包的销售额即达到额即达到500600亿美元。预期到亿美元。预期到2005年软件外包的销售额将达到年软件外包的销售额将达到1,000亿美元。软件外包的大幅度增长为人力资源成本相对较低的亿美元。软件外包的大幅度增长为人力资源成本相对较低的印度和中国带来了新的发展机会。印度和中国带来了新的发展机会。 w 中国目前已经有不少

23、的公司开始介入软件外包这一领域。中国目前已经有不少的公司开始介入软件外包这一领域。目前软件外包产业较为发达的地区有上海、北京、大连目前软件外包产业较为发达的地区有上海、北京、大连以及深圳等城市。以北京为例,有以及深圳等城市。以北京为例,有40%的软件企业参与的软件企业参与外包项目,软件行业外包项目,软件行业60%70%的营业额来自外包。在的营业额来自外包。在上海和北京,一个软件外包工程师的月薪达到上海和北京,一个软件外包工程师的月薪达到7,00010,000元人民币,而同样能力的软件工程师在武汉只需元人民币,而同样能力的软件工程师在武汉只需要三四千元人民币。资本的特征是向成本更低的地方要三四千

24、元人民币。资本的特征是向成本更低的地方流动,所以,近一段时间以来已经有大量的东部软件公流动,所以,近一段时间以来已经有大量的东部软件公司准备迁移到中部地区,目前首选的地区主要是武汉和司准备迁移到中部地区,目前首选的地区主要是武汉和西安。西安。w CMM/CMMI本身是一套非常有价值的过程模型,但简本身是一套非常有价值的过程模型,但简单的将其图腾化却是整个中国软件行业的悲哀,反观单的将其图腾化却是整个中国软件行业的悲哀,反观CMM/CMMI的发源地的发源地美国,除了和军方有业务往美国,除了和军方有业务往来的软件企业会寻求通过来的软件企业会寻求通过CMM/CMMI评审外,其他多评审外,其他多数的企

25、业并不怎么在乎是通过了数的企业并不怎么在乎是通过了CMM/CMMI的三级还的三级还是四级,象是著名的微软、甲骨文等知名企业都没听说是四级,象是著名的微软、甲骨文等知名企业都没听说过和过和CMM/CMMI沾过边,但这也丝毫不影响以他们为沾过边,但这也丝毫不影响以他们为代表的美国软件企业在整个行业中独领风骚。代表的美国软件企业在整个行业中独领风骚。w 只有有效的而不是最权威的,才是最好的。只有有效的而不是最权威的,才是最好的。链接链接2:CMM/CMMI不是软件企业唯一的选项不是软件企业唯一的选项 w CMM/CMMI来到中国已经变质。只要花钱,只要招待,你就可能来到中国已经变质。只要花钱,只要招

26、待,你就可能拿到一张证书。虽然拿到了这个证书,但是软件企业并没有得到什拿到一张证书。虽然拿到了这个证书,但是软件企业并没有得到什么实惠。么实惠。w 举例说来,软件企业的效率、过程的能力仍然是跟以前一样,因为举例说来,软件企业的效率、过程的能力仍然是跟以前一样,因为CMM/CMMI在做的同时,他们仍然在按照原来的方法在做,原来在做的同时,他们仍然在按照原来的方法在做,原来的体制在运行。的体制在运行。w 一边按照一边按照CMM/CMMI做各种需要的文档,一边还在按照老传统做做各种需要的文档,一边还在按照老传统做什么调研、方案设计、调试,跟什么调研、方案设计、调试,跟CMM/CMMI并不合拍。并不合

27、拍。w CMM/CMMI是一个评估的依据,也是一个过程改进的框架,并不是一个评估的依据,也是一个过程改进的框架,并不是一个标准。是一个标准。 链接链接3:软件市场的通行证:软件市场的通行证CMM w 世界上第一家通过世界上第一家通过CMM5认证的并非美国公司,认证的并非美国公司,而是来自印度的而是来自印度的WIPRO。同时,。同时,WIPRO还是还是全球第一个通过人力成熟度模型(全球第一个通过人力成熟度模型(PCMM)5级级认证的软件及服务公司。认证的软件及服务公司。w 据据SEI统计,目前有大约统计,目前有大约300家印度软件公司通家印度软件公司通过了过了CMM认证,其中通过最高质量等级认证

28、,其中通过最高质量等级CMM5的有的有50余家,占全球的余家,占全球的60%以上。高品质的管以上。高品质的管理决定了高品质的产品,从而也确立了印度在理决定了高品质的产品,从而也确立了印度在美国外包市场的垄断地位。美国外包市场的垄断地位。w 为增强自身实力,积极参与国际竞争,国内软件企业把为增强自身实力,积极参与国际竞争,国内软件企业把资质认证也提上了日程。我国政府明确表示鼓励软件出资质认证也提上了日程。我国政府明确表示鼓励软件出口型企业通过口型企业通过CMM认证。各地方政府也制定了相应的认证。各地方政府也制定了相应的政策,如上海市就规定对在本市注册并通过政策,如上海市就规定对在本市注册并通过C

29、MM35认认证的企业可以分别获得证的企业可以分别获得40万、万、60万和万和80万元人民币资助。万元人民币资助。w 获得了获得了CMM认证就获得了迈向国际市场的认证就获得了迈向国际市场的“通行证通行证”。IDG统计数据显示,目前全球软件外包市场规模已达到统计数据显示,目前全球软件外包市场规模已达到1000亿美元。中国拥有软件企业近亿美元。中国拥有软件企业近9000家。家。链接链接4:微软解决方案框架:微软解决方案框架MSF与与CMM 微软成功的实践经验:微软成功的实践经验: w 每天都保持出货状态每天都保持出货状态使用一对一的测试人员使用一对一的测试人员建立特性小组建立特性小组使用有缓冲的多个

30、开发周期使用有缓冲的多个开发周期建立固定的出货日期建立固定的出货日期增量式开发软件增量式开发软件分享经验教训分享经验教训w 应用应用MSFw 开发观念与原则:并不需要强制执行统一的过程,开发观念与原则:并不需要强制执行统一的过程,相反,每个产品组都需要通过吸收学习当前成功相反,每个产品组都需要通过吸收学习当前成功的实践经验来发展自己的合理的开发过程。的实践经验来发展自己的合理的开发过程。w 组成组成企业结构原则:商业结构,应用结构,技术结构,信息结构企业结构原则:商业结构,应用结构,技术结构,信息结构应用开发原则:组队模型,开发模型,风险管理应用开发原则:组队模型,开发模型,风险管理组件设计原

31、则:概念设计,逻辑设计,物理设计组件设计原则:概念设计,逻辑设计,物理设计基础开发原则:组队模型,开发模型,风险管理基础开发原则:组队模型,开发模型,风险管理w MSF组队模型组队模型 w MSF过程模型过程模型 w MSF内部发布里程碑内部发布里程碑链接链接5: CMM在对日软件开发中的应用在对日软件开发中的应用 遗留缺陷率遗留缺陷率无缺陷比率无缺陷比率w 无缺陷比率是在给定的阶段内没有缺陷的无缺陷比率是在给定的阶段内没有缺陷的产品部件所占的百分比。产品部件所占的百分比。 链接链接6:CMMI成功案例成功案例 每日培训每日培训华微软件的培训制度华微软件的培训制度http:/ Maturity

32、 Model Integration,即能力成熟度模型集成。,即能力成熟度模型集成。 w主要基于以下几个方面进行考虑:主要基于以下几个方面进行考虑: w实施企业的业务特点:实施企业的业务特点: 如果企业的规模不是很大,业务又集中在软件开发为主,那如果企业的规模不是很大,业务又集中在软件开发为主,那么还是软件么还是软件CMM比较适用。如果企业的规模比较大(开发人员比较适用。如果企业的规模比较大(开发人员100人以上),并且人以上),并且业务不仅仅集中在软件开发,还包括硬件开发哪怕是硬件代理(采购)都可以考虑业务不仅仅集中在软件开发,还包括硬件开发哪怕是硬件代理(采购)都可以考虑实施实施CMMI。

33、 w实施企业对过程改进的熟悉程度:实施企业对过程改进的熟悉程度: 如果企业已经实施过如果企业已经实施过ISO 9000,并且取得了较好,并且取得了较好的效果,那么可以考虑实施的效果,那么可以考虑实施CMMI。如果企业虽然没有实施过。如果企业虽然没有实施过CMM,但是对于过,但是对于过程改进一直比较关注,接受过不少相关培训,甚至能够自发的进行一些过程改进,程改进一直比较关注,接受过不少相关培训,甚至能够自发的进行一些过程改进,那么也可以考虑实施那么也可以考虑实施CMMI。如果过去没有接触过类似的工作,那么最好先从软件。如果过去没有接触过类似的工作,那么最好先从软件CMM 2级开始,首先建立持续过

34、程改进的思路。另外,软件级开始,首先建立持续过程改进的思路。另外,软件CMM的要求也比的要求也比CMMI要稍低一些。可以适当降低实施的难度。要稍低一些。可以适当降低实施的难度。 w实施企业对过程改进项目的预算:实施企业对过程改进项目的预算: 不论怎样,几乎可以肯定地说,实施不论怎样,几乎可以肯定地说,实施CMMI的费的费用肯定要比实施用肯定要比实施CMM高出一些。而就模型本身来看,高出一些。而就模型本身来看,CMMI的的2级级7个过程区域在个过程区域在内容上并不比软件内容上并不比软件CMM的的2级级6个关键过程区域多多少。这样的话,我们完全可以个关键过程区域多多少。这样的话,我们完全可以“少花

35、钱、多办事少花钱、多办事”,也就是说可以采用,也就是说可以采用CMM的实施和评估方法,但可以在过程的实施和评估方法,但可以在过程改进的时候参考改进的时候参考CMMI的要求,这样就经济很多。的要求,这样就经济很多。PSP 个体软件过程个体软件过程Personal Software ProcessPSP概述概述w 19951995年推出,是由定向软件工程走向定量软件工程的标志。年推出,是由定向软件工程走向定量软件工程的标志。w 是一种用于控制、管理和改进个人工作方式的自我改善过是一种用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。程,是一个包括软件开

36、发表格、指南和规程的结构化框架。 w 为基于个体和小型群组软件过程的优化提供了具体而有效为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。人相互协作等等。w 在软件设计阶段,在软件设计阶段, PSPPSP的着眼点在于软件缺陷的预防,其的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。具体办法是强化设计结束准则,而不是设计方法的选择。w 绝大多数软件缺陷是由于对问题的错误理解或简单的失误绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很

37、少一部分是由于技术问题而产生的。所造成的,只有很少一部分是由于技术问题而产生的。w PSPPSP保障软件产品质量的一个重要途径是提高设计质量。保障软件产品质量的一个重要途径是提高设计质量。PSP的演化PSP的内容的内容 PSP与具体的技术(程序设计语言、工具或者与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。任何的软件工程任务之中。PSP能够:能够:(1) 说明个体软件过程的原则;说明个体软件过程的原则;(2) 帮助软件工程师作出准确的计划;帮助软件工程师作出准确的计划;(3) 确定软件工程师为改善产品

38、质量要采取的步确定软件工程师为改善产品质量要采取的步骤;骤;(4) 建立度量个体软件过程改善的基准;建立度量个体软件过程改善的基准;(5) 确定过程的改变对软件工程师能力的影响。确定过程的改变对软件工程师能力的影响。PSP的作用的作用w 使用自底向上的方法来改进过程,向每个软件工程师表使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出明过程改进的原则,使他们能够明白如何有效地生产出高质量的软件。高质量的软件。w 为基于个体和小型群组软件过程的优化提供了具体而有为基于个体和小型群组软件过程的优化提供了具体而有效的途径。其研究与实践填补了效的途径。其研

39、究与实践填补了CMM的空白。的空白。w 帮助软件工程师在个人的基础上运用过程的原则,借助帮助软件工程师在个人的基础上运用过程的原则,借助于于PSP提供的一些度量和分析工具,了解自己的技能水提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工参与高级管理人员和过程人员推动的组

40、织范围的软件工程过程改进。程过程改进。PSP举例举例w 过程缺陷的记录,要求软件工程师按一定方式记录他们过程缺陷的记录,要求软件工程师按一定方式记录他们注入软件中的缺陷及其可能的改进方法注入软件中的缺陷及其可能的改进方法w 代码长度估算,要求软件工程师预测所写的模块或算法代码长度估算,要求软件工程师预测所写的模块或算法的可能长度的可能长度w 代码时间估算,例如,时间估算是代码时间估算,例如,时间估算是5-10-20,5代表乐观代表乐观时间,时间,10代表可能时间,而代表可能时间,而20代表悲观时间,使用这三代表悲观时间,使用这三种时间,再用一定的方法计算出平均估算时间种时间,再用一定的方法计算

41、出平均估算时间链接链接8: PSP 塑造世界一流的专业软件工程师塑造世界一流的专业软件工程师 w Watts Humphrey 作为作为8000个工程师的编码主管,在个工程师的编码主管,在IBM长达长达27年年的工作期间,亲身经历过无数次软件项目开发的成功与失败,总结的工作期间,亲身经历过无数次软件项目开发的成功与失败,总结出一系列宝贵经验。出一系列宝贵经验。w 在在 美国国防部的赞助下,他美国国防部的赞助下,他 于于 1986年开始研究并于年开始研究并于1991年提出能年提出能力成熟度模型力成熟度模型CMM,为软件过程改进制定了基本框架。,为软件过程改进制定了基本框架。w Humphrey在

42、在1994年推出了个体软件过程年推出了个体软件过程(Personal Software Process,PSP)和群组软件过程(和群组软件过程(Team Software Process, TSP)。)。w 虽然虽然PSP/TSP在国外许多大中型软件企业得到了广泛应用,并取得在国外许多大中型软件企业得到了广泛应用,并取得了令人瞩目的成效,但在我国还属于刚刚起步。了令人瞩目的成效,但在我国还属于刚刚起步。w PSP提倡以人为本提倡以人为本w 多数软件工程师总喜欢把自己当作精英,崇尚个人主义,多数软件工程师总喜欢把自己当作精英,崇尚个人主义,以编码速度快而自傲。管理人员进行项目管理时,往往以编码速

43、度快而自傲。管理人员进行项目管理时,往往会采用统一死板的模式,将规定强加于工程师身上,效会采用统一死板的模式,将规定强加于工程师身上,效果不佳。果不佳。 PSP过程改进正是针对这一情况,采用以人为过程改进正是针对这一情况,采用以人为本的方针,以自身为出发点,从本人做起。工程师根据本的方针,以自身为出发点,从本人做起。工程师根据自身的情况,亲自搜集有关本人的开发数据,基于这些自身的情况,亲自搜集有关本人的开发数据,基于这些来制订最适合自己的改进目标和具体的改进措施,并实来制订最适合自己的改进目标和具体的改进措施,并实行自我监督。自觉地、不断地改进和提高。从理论上讲,行自我监督。自觉地、不断地改进

44、和提高。从理论上讲,这种策略最有实效,易于接受。这种策略最有实效,易于接受。w PSP使您成为一名更好的专业软件工程师使您成为一名更好的专业软件工程师w 培训就是给开发人员补课,让他(她)们掌握软件过程管理和项目培训就是给开发人员补课,让他(她)们掌握软件过程管理和项目管理方面最先进的技能和最佳的实践,包括:精确地估算软件规模管理方面最先进的技能和最佳的实践,包括:精确地估算软件规模大小大小 ;合理安排自己的项目开发时间;以时间和规模为根据合理;合理安排自己的项目开发时间;以时间和规模为根据合理地规划项目,准确地预计工期;地规划项目,准确地预计工期; 减少产品缺陷;减少产品缺陷; 度量和跟踪自

45、己度量和跟踪自己的绩效;使用挣值法跟踪进度;兑现自己所做的承诺;抵制不合理的绩效;使用挣值法跟踪进度;兑现自己所做的承诺;抵制不合理的承诺压力;收集数据来持续地提高自己的生产率、软件质量、以的承诺压力;收集数据来持续地提高自己的生产率、软件质量、以及工期预测能力;客观地发现自己的薄弱环节并及时进行改进提高及工期预测能力;客观地发现自己的薄弱环节并及时进行改进提高等。等。w PSP 不仅帮助开发人员提高编码水准,还指导开发人员更好地进行不仅帮助开发人员提高编码水准,还指导开发人员更好地进行需求或过程定义、评审、测试、文档编写等。需求或过程定义、评审、测试、文档编写等。TSP 群组软件过程群组软件

46、过程Team Software Process什么是什么是TSPw 规划和管理小组项目规划和管理小组项目w 小组中已分配不同角色,每个角色有明确小组中已分配不同角色,每个角色有明确的目标,各司其职。的目标,各司其职。w 在整个开发过程中明确每一个步骤应该做在整个开发过程中明确每一个步骤应该做什么。什么。群组是什么?群组是什么?w 至少至少2 2个人,为共同目标和任务而工作个人,为共同目标和任务而工作, ,每每个人都有自己的角色和职责,要通过合作个人都有自己的角色和职责,要通过合作来完成任务。来完成任务。w 更高的境界:更高的境界:n自始至终对项目有控制自始至终对项目有控制n知道该做什么,怎么做

47、,何时做,何时完成。知道该做什么,怎么做,何时做,何时完成。n整体实力大于个人实力之和。整体实力大于个人实力之和。n成员可以从合作中得到合作的乐趣。成员可以从合作中得到合作的乐趣。TSP的管理团队组合的管理团队组合w 组长:运行一个有效的团队。组长:运行一个有效的团队。w 开发经理:生产一个功能强大的高质量的产品,开发经理:生产一个功能强大的高质量的产品,全面发挥小组成员能力和才干。全面发挥小组成员能力和才干。w 计划经理:详细计划,每周准确报道小组状况。计划经理:详细计划,每周准确报道小组状况。w 质量生产经理:保证生产出没有缺陷的稳定的质量生产经理:保证生产出没有缺陷的稳定的产品。产品。w

48、 技术支持经理:保证整个过程得到适当的支持。技术支持经理:保证整个过程得到适当的支持。TSP的的7条原则:条原则:w 1 提供一个简单的框架,每个人在其中各司其职。提供一个简单的框架,每个人在其中各司其职。w 2 把产品的开发分为多个周期。把产品的开发分为多个周期。w 3 建立标准的评估机制。建立标准的评估机制。w 4 对小组和组员有准确的评价。对小组和组员有准确的评价。w 5 采用针对角色和小组的评估。采用针对角色和小组的评估。w 6 开发过程中强调纪律性。开发过程中强调纪律性。w 7 有人提供关于小组协同工作的问题的指导。有人提供关于小组协同工作的问题的指导。链接链接9: Google小组

49、研发模式分析小组研发模式分析w GOOGLE和其他大公司采用不同的研发和其他大公司采用不同的研发模式,其研发模式是小组开发。这个研发模式,其研发模式是小组开发。这个研发模式可以说是模式可以说是GOOGLE目前最大的核心目前最大的核心竞争力。这种研发模式诱发了不断的创新。竞争力。这种研发模式诱发了不断的创新。但是很明显的一点是:这种研发模式只是但是很明显的一点是:这种研发模式只是适用于现阶段适用于现阶段GOOGLE的模式,最终这的模式,最终这种模式会被其他研发模式取代。种模式会被其他研发模式取代。 w 在在Google有个点子库,每个人都可以抛出新点子,有个点子库,每个人都可以抛出新点子,让大家

50、用脚投票,即让认同且愿意加入开发的人很让大家用脚投票,即让认同且愿意加入开发的人很快聚集,并一起落实这个点子。因此一个可行的新点子,快聚集,并一起落实这个点子。因此一个可行的新点子,从发想到完成只需六个月,而且常常两三人就能完成;从发想到完成只需六个月,而且常常两三人就能完成;反之,不可行的点子,大家也会提供建议,因此不会有反之,不可行的点子,大家也会提供建议,因此不会有无谓的浪费。此外,无谓的浪费。此外,Google让每人享有让每人享有20%的时间,做的时间,做自己想到的点子,一旦成熟,就可以成为公司的指定任自己想到的点子,一旦成熟,就可以成为公司的指定任务,务,80%的时间就可以用来处理它

51、。的时间就可以用来处理它。w 总结:总结: w 小组开发模式;小组开发模式;w 研究和开发一体,都在小组这个级别内完成;研究和开发一体,都在小组这个级别内完成;w 创意共享机制;创意共享机制;w 组内竞争机制;组内竞争机制;w 内部创业模式(某些受欢迎的项目会获得创始内部创业模式(某些受欢迎的项目会获得创始人奖,获得数额不菲的奖金);人奖,获得数额不菲的奖金);w 小组研发模式的特点分析小组研发模式的特点分析w 优点:优点:w a.小组内人员比较少,沟通成本低,所以能够快速开发产品;小组内人员比较少,沟通成本低,所以能够快速开发产品;w b.小组之间形成内部竞争局面,优胜劣汰机制,适者生存;有利于小组之间形成内部竞争局面,优胜劣汰机制,适者生存;有利于公司内部人员潜力的发挥;公司内部人员潜力的发挥;w c.内部创业机制,有利于最大的发挥技术人员的积极性,使得优秀内部创业机制,有利于最大的发挥技术人员的积极性,使得优秀人才留在公司而不是选择自行创业;人才留在公司而不是选择自行创业;w d.多开发小组导致新的创意多,创新的速度和广度

温馨提示

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

评论

0/150

提交评论