软件需求过程管理SoftwareRequirementsProcessManagement——可重复性管理与标准化管理的区别姓名:学号:学院:2011年5月可重复性管理与标准化管理的区别一、CMM简介CMM(CapabilityMaturityModelforSoftware)是软件能力成就度模型,它是由软件工程研究所(SEI,SoftwareEngineeringInstitute)提出的,目的是领导软件机构进行在成本和进度的要求下能提交高质量的软件,CMM为软件企业提供了一条从混乱、不成熟的软件过程向成熟的、有纪律的软件过程改进的方法。CMM是全面质量管理(TQM,TQCtotalqualityManagement)中的过程管理部分在软件行业的应用,CMM比ISO9000更细致,更具有针对性,当然通过了ISO9000认证的软件企业基本上已经满足了CMM2至CMM3的要求。CMM一共有5个级别,分别是一级初始级、二级可重复级、三级已定义级、四级已管理级和五级优化级。二、可重复级管理1、CMM2:可重复级建立并实施了软件管理的规程,项目执行经过定义的、文档化的、有以往经验的、可测量的、强制的以及可改进的过程,管理级对软件项目制定了基本的软件管理和控制措施,项目负责人不断跟踪软件成本、进度,一旦出现问题能很快确定,对软件需求和开发过程中的工作产品进行基线(基线:)管理。软件项目的计划和跟踪是稳定的,并可以重复以前的成功,项目的过程处于一个项目管理系统的有效的控制之下,遵守并执行基于以前成功项目所制定的项目计划。在级别二,因为已经建立基本的项目管理,软件项目的开发过程可以看成是一系列黑盒的串连,在项目的里程碑处具有可视性(可以知道当然的状态和进度),客户可以在里程碑处对产品进行评审。2、CMM2的关键过程域它包括了6个关键过程域,分别是需求管理、软件项目计划、软件项目跟踪和监控、软件配置管理、软件质量保证、软件子合同管理。每一个关键过程域是之了实现相应的目标,例如需求管理的目标是:控制指定给软件的系统需求,为软件工程和管理应用建立基线(目标1),保持软件计划、产品和活动与指定给软件的系统需求一致(目标2)。每一个关键过程域可以分成执行约定、执行能力、执行的活动、测量和分析、及验证实施五个部分(共同特点),这五个部分从五个不同的方向反映了这个关键过程域的过程情况。对于整个CMM来说,每一系列关键过程域的完成,就代表着企业达到了某一个级别,CMM二级有6个关键过程域,三级有7个,四级2个,五级3个,整个CMM级别结构如下图:CMM2的RM关键过程域(需求管理)需求管理的目的是在客户和将处理客户需求的软件项目之间建立对客户需求的共同认识。需求管理包括和客户一起建立和维护有关软件项目需求的协议,该协议称作“分配给软件的系统需求”。“客户”可解释为系统工程组、销售部门、另一个内部组织、或者一个外部客户。协议既包括技术需求、又包括非技术需求(例如交付日期)。该协议形成估计、计划和跟踪整个软件生存周期内的软件项目活动的基础。将系统需求分配给软件、硬件和其它系统成分的工作可能由软件工程组之外的组(如系统工程组)完成,软件工程组可能不能直接控制需求的分配。在项目约束范围内,软件工程组采取适当的步骤以保证对分配给软件的需求形成文档、并加以控制。为了实施控制,软件工程组需要对初始的和经修改的分配给软件的系统需求进行评审,以保证有关问题在被纳入软件项目之前得以解决。每当改变分配给软件的系统需求时,都要调整受到影响的软件计划,工作产品和相关活动,使其与更新后的需求保持一致。CMM2的SPP关键过程域(软件项目计划)软件项目计划的目的是为完成软件工程和管理软件项目制定合理的计划。软件项目计划包含估计待完成的工作,建立必要的约定和确定进行该工作的计划。软件计划首先做出有关待完成的工作和其它定义及界定软件项目的约束和目标(由宪来管理关键过程域的实践所建立的)的陈述。软件计划过程包括以下步骤:估计软件工作产品规模及所需的资源,制定时间表,鉴别和评估软件风险和协商约定。为了制定软件计划(即软件开发计划),可能需要重复地通过这些步骤。该计划提供完成和管理软件项目活动的基础,并按照软件项目的资源、约束和能力,阐述对软件项目的客户作的约定。CMM2的关键过程域(软件项目跟踪和监控)软件项目跟踪和监督的目的是建立对实际进展的适当的可视性,使管理者能在软件项目性能明显偏离软件计划时采取有效措施。软件项目跟踪和监督包括对照已文档化的估计、约定、和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目策划关键过程域中所描述的)用作跟踪软件活动、传送状态和修订计划的基础。管理者监控软件活动。主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模。工作量、成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新策划遗留的工作或者采取改进性能的措施。CMM2的关键过程域(软件子合同管理)软件于合同管理的目的是选择合格的软件子承包商并有效地管理他们。软件于合同管理包括选择软件予承包商、建立和子承包商的约定,及跟踪和评审子承包商的性能和结果。这些实践包括对纯软件子合同的管理,也包括对子合同的软件成分的管理,后者含有软件、硬件和可能有的其它系统成分。基于子承包商完成工作的能力选择子承包商。许多因素对将主承包商工作的一部分签为子合同的决策产生影响。选择子承包商可以基于战略经营同盟及技术上的考虑。这个关键过程区域的实践阐述与将工作的一个确定部分签子合同给另一个组织相联系的传统的采购过程。当签子合同时,建立一个包括技术和非技术(例如交付日期)需求的已文档化的协议并将其用作管理于合同的基础。对将由于承包商完成的工作和关于该工作的计划建立文档。子承包商将遵循的标准和主承包商的标准一致。子承包商的软件的策划、跟踪和监督活动由于承包商完成。主承包商确保恰当地完成这些策划、跟踪和监督活动并且确保子承包商交付的软件产品满足其验收准则。主承包商和子承包商一起工作去管理他们的产品和过程界面。CMM2的关键过程域(软件质量保证)软件质量保证是项目管理提供的过程可见性的一个工具。由于用于开发软件系统或软件产品的过程是决定项目成功与否的关键因素,因此软件质量保证的工作是评审和审计软件活动和软件产品。评审和审计的依据是规定用于项目的步骤和相关标准。软件质量保证活动不能是随意的,必须经过充分的讨论和协商。相关的组织和个人要了解质量保证的活动和质量保证活动的结果。为了解决质量保证组织与开发组织对某些项目开发活动或开发出的产品的评价所发生的争议和分歧,企业要定义更高层次的管理组织,负责解决这些争议和分歧。CMM2的关键过程域(软件配置管理)软件从需求分析开始到最后提交产品要经历多个阶段,每个阶段的工作产品又会产生出不同的版本,如何在整个生存期内建立和维护产品的完整性是软件配置管理的目的。CMM软件配置管理关键过程域遵循了传统软件配置管理的概念,其基本工作内容是标识软件配置项,建立产品基线库,对配置项的修改加以系统的控制。产品基线库的状态可以随时了解。此外,同软件质量保证活动一样,软件配置管理活动必须制定计划,而不是随意的行为。三、标准化管理CMM3:已定义级将组织用于开发和维护的标准过程文档化,指定了一个负责机构过程活动小组(SEPG),在组织内部进行培训,保证全体人员和负责人具有所需的知识和技能。软件过程被严格定义,包括准备、输入、实施工作的标准和规程、验证机制、输出和完成准则的过程。无论是软件工程活动还是管理活动,其过程都是稳定的,可重复的,软件开发的成本、进度和功能均可受到良好的控制,软件质量被跟踪。在三级,软件过程中的任务具有可视性,管理人员和工程人员对自身的活动在一定程序进行相互交流,管理人员对可能发生的风险进行准备,客户可以随时得到关于项目准确的最新情况.CMM3的关键过程域CMM3(可定义级)有7个关键过程区域,主要涉及项目和组织的策略,是软件组织对项目建立起的有效计划和管理过程能力。(1).组织过程焦点:规定软件开发组织在改进其总体软件过程能力的过程活动中的职责。组织过程焦点活动所得到的是一组软件过程财富,它们在组织的过程定义中被描述。这些财富如集成软件管理中所述,是供各个软件项目使用。(2).组织过程定义:开发和保持一组便于各项目使用的软件过程财富,可改进跨越各个项目之间的过程特性并为软件组织积累长期有用的过程基础。它们也表明了一套稳固的基本规则,在培训等手段的促成下能使这些规则成为开发组织的制度。(3).培训程序:培养软件组织成员的个人技能和知识,使其正确高效地执行软件开发任务。基本培训应由软件组织提供,而软件项目组应另行识别该项目所需的独特技能并提供相关培训。(4).集成软件管理:将软件工程活动和软件管理活动集成为一个协调的,已定义的软件过程,该定义过程需经过对软件组织的标准过程的裁减和调整而得到,也是从过程定义中所述的过程财富而来,调整要基于单个项目的业务环境和技术需求,这在软件产品工程中有所描述。集成软件管理建立在第二级中的软件项目规划和软件项目追踪与监控之上。(5).软件产品工程:一致地实施一个正确制定了的软件过程,目的是为了能正确地和有效地生产合格一致的软件产品,在此,软件过程集成了全部的软件工程活动。项目的技术事项也通过软件产品工程得到明确,包括需求分析、设计、编程和测试。(6).组间协调:这是软件项目组与其他项目组相互支持的手段,它使项目更能正确高效地满足客户需求,它设计多种部门与学科的协调,不仅对软件过程进行集成,而且各项目组之间的关系也必须控制,以促进其沟通和协作。(7).同级评审:这是促进软件项目尽早和高效地发现并排除产品缺陷的有效手段,增强对软件产品和可预防的缺陷的了解。同业复查是经过长期软件开发验证的有效工程方法,对它的具体运用要根据不同的项目作调整。四、传统意义的标准化管理与可重复性管理传统意义的标准化管理是指符合外部标准(法律、法规或其它相关规则)和内部标准(企业所倡导的文化理念)为基础的管理体系。所谓标准化,就是将企业里有各种各样的规范,如:规程、规定、规则、标准、要领等等,这些规范形成文字化的东西统称为标准(或称标准书)。制定标准,而后依标准付诸行动则称之为标准化。那些认为编制或改定了标准即认为已完成标准化的观点是错误的,只有经过指导、训练才能算是实施了标准化。创新改善与标准化是企业提升管理水平的两大方向。改善创新是使企业管理水平不断提升的驱动力,而标准化则是防止企业管理水平下滑的制动力。没有标准化,企业不可能维持在较高的管理水平。在工厂里,所谓“制造”就是以规定的成本、规定的工时、生产出品质均匀、符合规格的产品。要达到上述目的,如果制造现场之作业如工序的前后次序随意变更,或作业方法或作业条件随人而异有所改变的话,一定无法生产出符合上述目的的产品。因此,必须对作业流程、作业方法、作业条件加以规定并贯彻执行,使之标准化。标准化有以下四大目的:技术储备、提高效率、防止再发、教育训练。标准化的作用主要是把企业内的成员所积累的技术、经验,通过文件的方式来加以保存,而不会因为人员的流动,整个技术、经验跟着流失。达到个人知道多少,组织就知道多少,也就是将个人的经验(财富)转化为企业的财富;更因为有了标准化,每一项工作即使换了不同的人来操作,也不会因为不同的人,在效率与品质上出现太大的差异。软件工程标准化是随着软件工程学的蓬勃发展而产生、发展起来的。通过开展软件工程标准化,可以将软件开发中复杂、多样、无序的事物或概念转变为简单、规整、有序的事物或概念,在一定范围内达成某种共识,满足软件开发技术发展的需要。对实现资源共享,大幅度缩短软件开发周期,节省软件的开发经费和运行维护成本,改进产品的安全性、通用性、可靠性和可维护性,提高生产效率、节省资源等都有重要的意义。由此可以获得巨大的