导论: 第一级:初始级 在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。 第二级:可重复级 在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。 第三级:定义级 在这一级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。 第四级:定量管理级 在这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案, 要对所有项目的重要的过程活动进行生产率和质量的度量。软件 产品因此具有可预期的高质量。 第五级:(不断)优化级 在这个等级,整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷 的目标。同时,分析有关过程的有效性的资料,作出对新技术的 成本与收益的分析,以及提出对过程进行修改的建议。
(2)过分的承诺,常作出良好的承诺:如“按照软件工程方式,有序的工程来工作”;或达到高目标的许诺。但实际上却出现一系列问题。 (3)遇到危机就放弃原计划过程,反复编码和测试。 (4)成功完全依赖个人努力和杰出的专业人才,取决于超常的管理人员和杰出有效的软件开发开发人员。具体的表现和成果都源 于或者说是决定于个人的能力和他们先前的经验、知识以及他们的进取心和积极程度。 (5)能力只是个人的特性,而不是开发组织的特性。依靠着个人的品质或承受着巨大的压力;或找窍门取得成果。但此类人一旦离去,对组织的稳定作用也消失。 (6)软件过程是不可确定的和不可预见的。软件成熟性程度处于第一级软件组织的软件过程在实际的工作过程中被经常的改变(过程是随意的)。这类组织也在开发产品,但其成果是不稳定的,不可预见的,不可重复的。也就是说,软件的计划、预算、功能和产品的质量都是不可确定和不可预见的。 ◆ 过程 (2)所谓“过程”,往往是“就这么干”而言。 (3)各种条例,规章制度互不协调,甚至互相矛盾。 ◆ 人员 ◆ 技术 ◆ 度量 ◆ 改进方向 (2)首要任务是进行需求管理,建立客户与软件项目之间的共同理解,使项目真正反映客户的要求。 (3)建立各种软件项目计划、如软件开发计划、软件质量保证计划、软件配置管理计划、软件测试计划、风险管理计划及过程改进计划。 CMM第二级:可重复级 ◆ 特征 (2)主要是逐个项目地建立基本过程管理条例来加强过程能力。 (3)建立了基本的项目管理过程来跟踪成本、进度和功能。 (4)管理工作主要跟踪软件经费支出、进度及功能。识别在承诺方面出现的问题。 (5)采用基线(BASELINE)来标志进展、控制完整性。 (6)定义了软件项目的标准,并相信它,遵循它。 (7)通过子合同建立有效的供求关系。 ◆ 过程 (2)有规则的软件过程是在一个有效的工程管理系统的控制之下,先前的成功经验可以被重复。 (3)问题出现时,有能力识别及纠正。承诺是可实现的。 ◆ 人员 (2)理解管理的必要性及对管理的承诺。 (3)注意人员的培训问题。 ◆ 技术 ◆ 度量 ◆ 改进方向 (2)确定全组织的标准软件过程,把软件工程及管理活动集成到一个稳固确定的软件过程中。从而可以跨项目改进软件过程效果,也可作为软件过程剪裁的基础。 (3)建立软件工程过程小组(SEPG)长期承担评估与调整软件过程的任务,以适应未来软件项目的要求。 (4)积累数据,建立组织的软件过程库及软件过程相关的文档库。 (5)加强培训。 CMM第三级:确定级 ◆ 特征 (2)软件过程标准被应用到所有的工程中,用于编制和维护软件。有的项目也可根据实际情况,对软件开发组织的标准软件过程进行剪裁。 (3)在从事一项工程时,产品的生产过程、花费、计划以及功能都是可以控制的,从而软件质量也可以控制。 (4)软件工程过程组(SEPG)负责软件活动。 (5)在全组织范围内安排培训计划。 ◆ 过程 (2)软件过程起了预见及防范问题的作用,能使风险的影响最小化。 ◆ 人员 (2)在整个组织内部的所有人对于所定义的软件过程的活动、任务有深入了解,大大加强了过程能力。 (3)有计划地按人员的角色进行培训。 ◆ 技术 ◆ 度量 (2)在全项目中系统性地共享数据。 ◆ 改进方向 (2)通过软件的质量管理达到软件的质量目标。 CMM第四级:管理级 ◆ 特征 (2)软件组织的能力是可预见的,原因是软件过程是被明确的度量标准所度量和操作。不言而喻,软件产品的质量就可以预见和得以控制。 (3)组织的度量工程保证所有项目对生产率和质量进行度量、并作为重要的软件过程活动。 (4)具有良好定义及一致的度量标准来指导软件过程,并作为评价软件过程及产品的定量基础。 (5)在开发组织内已建立软件过程数据库,保存收集到的数据,可用于各项目的软件过程。 ◆ 过程 (2)软件过程的变化小,一般在可接受的范围内。 (3)可以预见软件过程中和产品质量方面的一些趋势。一旦质量经度量后超出这些标准或是有所违反,可以采用一些方法去改正,以达到良好的目标。 ◆ 人员 ◆ 技术 ◆ 度量 (2)度量标准化。 (3)数据用于定量地理解软件过程及稳定软件过程。 ◆ 改进方向 (2)主动进行技术变动管理、标识、选择和评价新技术,使有效的新技术能在开发组织中施行。 (3)进行过程变动管理,定义过程改进的目的,经常不断地进行过程改进。
◆ 特征 (2)加强定量分析,通过来自过程的质量反馈和吸收新观念,新科技,使软件过程能不断地得到改进。 (3)根据软件过程的效果,进行成本/利润分析,从成功的软件过程中吸取经验,加以总结。把最好的创新成绩迅速向全组织转移, 对失败的案例,由软件过程小组进行分析以找出原因。 (4)组织能找出过程的不足并预先改进,把失败的教训告知全体组 织以防止重复以前的错误。 (5)对软件过程的评价和对标准软件过程的改进,都在全组织内推 广。 ◆ 过程 (2)理解并消除产生问题的公共根源,在任何一个系统中都可找到:由于随机变化造成重复工作、进而导致时间浪费。为了防止浪 费人力可能导致的系统变化。要消除“公共”的无效率根源,防止浪费发生。尽管所有级别都存在这些问题,但这是第五级的焦点。 ◆ 人员 (2)每个人都致力过程改进,人们不再以达到里程碑的成就而满足, 而要力求减少错误率。 ◆ 技术 ◆ 度量 ◆ 改进方向 CMM总结:五层结构图 我们看到,在第五级上,技术和过程的改进像普通商业活动一样有计划、有管理地进行。由于组织不断的致力于改进过程的能力,所以软件开发组织的能力可持续改进。这种改进不仅表现在对存在的软件过程逐步改进,不表现在采用新技术和新方法方面的革新。 画一个图吧:(CMM的五层结构图)
-- |