|
CMM基础知识 软件过程是目前非常活跃的研究领域,是人们建立、维护和演化软件产品整个过程中技术活动和管理活动的集合,在软件过程中有三个研究方向:1、软件过程分析及建模,目前行业内主要是使用UML来进行系统建模;2、软件过程支持,这个方面就是研究和开发支持软件过程活动的CASE工具;3、软件过程评估和改进,根据某种模型,对目前的软件过程进行考核和评价,找出其中的不足之处,然后进行改进,CMM、CMMI就是目前主要根据的模型。 对于一个软件过程,用软件过程能力来进行衡量其能力,它表示在遵循该过程以后,能够得到的预期的一个结果。而实际上所能达到的实际结果是软件过程性能,软件过程性能是针对一个具体项目而言的,软件过程能力与软件过程性能是有区别的,软件过程性能不能充分反映软件过程能力,它受限于软件过程环境。 CMM(软件能力成熟度模型)的目标是将成熟的过程从不成熟或特定的过程中区分出来。在具有不成熟的软件过程的机构中,项目的执行没有多少准则,项目的结果在很大程度上依赖于小组和项目负责人的能力,因此结果是不可预料的。另一方面,在具有成熟过程的机构内,项目依据机构为软件项目建立的不同运作。这样项目的结果很少依赖于队伍的能力,更大程度地由过程来控制。因此过程越成熟,项目越好控制,结果越容易估计。 CMM的每个成熟度级别,对特定的过程规定了特性,在更成熟的软件过程中,越具有更高的成熟度级别,越具有更先进的特性。因此CMM体系描述了不同成熟度级别下的软件过程的关键因素,CMM具有5个成熟度级别,18个关键过程域。 第一级:初始级 机构是根据项目或项目负责人认为合适的方式来执行项目。在这个级别中,软件过程的特点是无秩序的,有时甚至是混乱的。有的企业制定了一些软件工程规范,但是这些规范未能覆盖基本的关键过程要求,且执行时没有政策、资源等方面的保证,仍然是初始级。在初始级中,没有关键过程域PKA。 第二级:可重复级 可重复级,已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目有章可循,并能重复以前 所取得的成功。焦点集中在软件管理过程上,第二级关注的是项目本身的过程,已经建立了很好的项目管理实践,并没有机构范围的过程。 可重复级的PKA包括: 需求管理: 1、软件需求受控制,为软件工程和管理活动建立基线; 2、软件计划、产品和活动与需求保持一致; (需求管理的目的是在顾客和软件项目间建立对顾客需求的共同理解,顾客需求将由软件项目管理) 软件项目计划:1、项目活动和约定是有计划的,并成文归档; 2、受影响的小组和个人认同与项目相关的约定; 3、对项目的估计要文档化,便于在项目计划和跟踪时使用; (目的是制定进行软件工程和管理软件项目的合理的计划,没有切合实际的计划是不可能实施有效的项目管理) 软件项目跟踪和监督:1、实际的结果和性能要按照软件计划进行跟踪; 2、实际的结果和性能严重偏离软件计划时,要采取正确的 措施, 并设法关闭; 3、受影响的组和个人认同对约定的更改; (目的是建立适当的对实际进展的可视性,使管理者在软件项目性能显著偏离软件计划时能采取有效的措施) 软件子合同管理:1、主合同方和子合同方认同他们的约定; 2、主合同方根据他们的约定跟踪子合同方的实际结果; 3、主合同方和子合同方在项目进行期间保持联系; 4、主合同方根据他们的约定跟踪子合同方的实际性能; (目的是选择合格的软件子承包商,并有效地管理他们) 软件质量保证: 1、软件质量保证活动纳入计划; 2、软件产品和活动与采用的标准、规程和需求间的一致性被客观地 验证; 3、受影响的组和个人知道软件质量保证活动和结果; (目的是给管理者提供对于软件项目正采用的过程和正在构造的产品的恰当的可视性) 4、项目中无法解决的有意见分歧的事宜通知高级管理部门处理; 软件配置管理: 1、软件配置管理活动纳入计划; 2、选定的软件工作产品被标识、受控制和便于利用; 3、被标识的软件工作产品的更改是可控的; 4、受影响的小组和个人知道软件基线的状态和内容; (目的是在项目的整个软件生命周期中建立和维护软件产品的完整性) 第三级:已定义级 机构用于管理和工程的软件过程均已经文档化、标准化,并形成机构的标准软件过程。这样机构的所有项目(与以前项目类似的项目、以前没有做过的项目)采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。机构范围的软件过程工程化标准,是一套文档化的标准,所有的开发项目都必须根据这个标准过程,裁剪出这个项目适宜的过程,并严格执行这个过程,当然这个裁减不是随意的,是要经过批准的。达到这个等级,机构可以从不同的项目中学习,随即改进过程,使以后的项目受益。 已管理级的KPA包括: 机构过程焦点:1、软件过程开发和改进活动在机构内保持一致; 2、所使用的软件过程饿强弱之处被确定; 3、机构级的过程开发和改进活动纳入计划; (目的是规定机构在改进其整体软件过程能力的软件过程活动方面的职责) 机构过程定义:1、开发并维护机构的一个标准软件过程; 2、与软件项目使用机构标准软件过程相关的信息被收集、评审并可用; (目的是开发和保持一组便于使用的软件过程财富,它们能改进横跨项目的过程性能,并且为机构能获得积累性、长期得益奠定基础) 培训大纲: 1、培训活动纳入计划; 2、提供关于执行软件管理和技术的人员所需的开发技巧和知识的培训; 3、软件工程组和软件相关组里的每个人都接受了执行工作所需的培训; (目的是培训个人的技能和知识,使得他们能有效地和高效地执行其任务) 集成软件管理:1、项目定义的软件过程是机构标准软件过程的裁减版本; 2、根据项目定义的软件过程来计划和管理项目; (目的是将软件工程活动和管理活动集成为一个协调的、已定义的软件过程,该过程是剪裁机构的标准软件过程和组织过程定义中所描述的相关的过程财富而得到的) 软件产品工程:1、软件工程任务被定义、集成并遵照执行,以产生软件; 2、软件工作产品相互间保持一致; (目的是一致地招待一个妥善定义的工程过程,为了能有效地和效率高地生产正确的、一致的软件产品,该工程过程集成全部软件工程活动) 组间协调: 1、所有受影响的组认同客户需求; 2、所有的组认同不同组间的约定; 3、各组识别、跟踪和解决组间问题; (目的是为机构积极参与其他工程组工作制定一种方法,使得项目更能有效地和高效地满足顾客的需求) 同行评审: 1、同行评审活动纳入计划; 2、软件工作产品的缺陷被识别和清除; (目的是及早和高效地除去软件工作产品中的缺陷) 第四级:已管理级 软件过程和产品质量有详细的度量标准,软件过程与产品质量得到定量的认识与控制;已管理级的管理是量化的管理;所有过程必须建立相应的度量方式,所有的产品的质量必须有明确的度量指标,量化控制将使软件开发变成一个真正的工业生产活动。 已管理级的KPA包括: 量化过程管理:1、将量化过程管理活动纳入计划; 2、项目定义的软件过程的过程性能得到量化控制; 3、机构标准软件过程的过程能力以量化项值表示 (目的是定量地控制软件项目的过程性能) 软件质量管理:1、将项目的软件质量管理活动纳入计划; 2、对软件产品质量及其优化级的可测目标有定义; 3、软件产品向质量目标的实际进步得到量化管理 (目的是建立对项目的软件产品质量的定量了解和实现特定的质量目标) 第五级:优化级 通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。 优化级的KPA包括: 缺陷预防: 1、将缺陷预防活动纳入计划; 2、找出和识别引起缺陷的共同原因; 3、引起缺陷的共同原因被赋于优先次序并被系统地清除; (目的是鉴别缺陷的原因并防止它们再次出现) 技术更新管理:1、将技术更新纳入计划; 2、新技术被评估以决定它们对质量和生产率的影响; 3、合适的新技术被引进到机构内正常使用 (目的是识别出能获利的新技术,包括工具、方法、过程,并以有序的方式将它引进到组织中去,技术更新管理的关注焦点是在不断变化的环境里高效率地进行创新) 过程变更管理:1、将持续地过程改进纳入计划; 2、机构软件过程改进活动的参加者遍及全部机构; 3、机构标准软件过程和项目定义的软件过程得到持续地改进。 (目的是出于改进软件质量、提高生产率和缩短产品开发周期的目的,持续不断地改进组织中所采用的软件过程) 一个机构要实施CMM,应该按照如下步骤进行: 1、 提高思想认识,实施CMM是软件企业的发展中起着重要作用的战略,当然不是说通过了CMM就表示软件企业具有了质的飞跃,而是在于企业实施CMM,可以更好地规范软件生产和管理,使得企业的行为规范化。 2、 进行CMM培训和咨询 培训的目的是建立理论基础,只有机构的管理人员和开发人员都对CMM真正地了解,并自觉地按照CMM方法去执行,才能真正实施CMM。 3、 确定合理的目标 CMM模型分成5个等级,对于机构来说,应该选择一个合适的等级来作为自己的目标,不可好高务远,因为每通过一个CMM等级都要投入大量的人力、物力,而且要通过等级高的级别,要先达到等级低的级别的所有的关键过程域。 4、 组建工作组 机构要实施CMM,要成立专门的CMM实施领导小组或专门的机构,需要有强有力的组织保证,只有领导参与,组织保证,才能作好CMM的实施。 5、 制定和完善软件过程 CMM模型强调软件过程的改进,如果机构还没有一个文档化的软件过程,首先要做的就是制定一套具有本机构风格的软件过程,并利用该过程来指导软件项目的开发。如果机构已经有了文档化的软件过程,就不用再准备软件过程文档。 6、 内部评审 为了能顺利通过评估,一般建议先进行机构内部评审和评估,按照CMM规范评估过程,找出本机构的软件过程的不足并加以改进。 7、 正式评估 CMM评估是外部评估,一般是由外籍主任评估师领导进行,包括员工培训、问卷调查、文档审查、数据分析、高层讨论、撰写评估报告,评估结束的时候由主任评估师签字生效 8、 根据评估结果改进软件过程 在评估以后,应该作出软件过程改进的计划,因为CMM强调是过程的改进,而不是一个终级目标,机构只有不断改进自身的软件过程,才能在以后的开发中提高产品的质量,提交产品的生产率。
CMM学习笔记World格式版本免费下载 |