《软件配置管理》PPT课件.ppt
1,软件配置管理,吕共欣2002年7月,2,内容,SCM介绍 SCM在CMM中的定义与基本内容 SCM实施,软件配置管理,3,软件配置管理主要是对软件生存期过程中的各种阶段产品和最终产品演化和变更的管理,它是软件质量管理的重要组成部分。,软件配置管理(SCM)介绍,什么是软件配置管理,4,软件配置管理(SCM)介绍,软件配置管理概念,软件配置项(software configuration item)软件配置,5,软件开发的过程中,会得到许多工作产品或阶段产品,还会用到许多工具软件,这可能是外购软件,也可能是用户提供的软件。所有这些独立的信息项都要得到妥善的管理,绝不能出现混乱,以便在提出某些特定的要求时,能将其进行约定的组合来满足使用的目的。这些信息项是配置管理的对象,称为软件配置项。,软件配置管理(SCM)介绍,软件配置项,6,软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。,软件配置管理(SCM)介绍,软件配置,7,以交付给不同用户的某一软件产品为例,开发的软件产品是具有一定功能和性能的初始系统,经调查,了解到“用户1”代表了一些用户,这个用户群使用的计算机为“机型1”,所用的操作系统是“操作系统1”;而“用户2”所代表的用户群使用着“机型2”和“操作系统2”。,软件配置管理(SCM)介绍,软件配置举例,8,软件配置管理(SCM)介绍,软件配置举例(续1),初始系统,操作系统1,机型1,机型2,机型n,操作系统2,用户1,用户2,9,软件配置管理(SCM)介绍,软件配置举例(续2),A,B,C,用户1,用户2,A,B,C,D,E,F,G,E,D,H,10,软件配置管理(SCM)介绍,软件配置举例(续3),A,B,C,用户1,用户2,ABCDEF,D,E,F,G,H,ABCDEGH,产品1,产品2,11,软件配置管理(SCM)介绍,软件配置管理意义,软件项目的特点软件产品是逻辑实体,是不可见的、抽象的智力产品 软件项目的规模日益庞大和复杂 参与项目人员数量增加,人员间的沟通渠道数量也倍增软件产品易于被拷贝 软件时时处在演化和变更状态 开发人员的离去对项目有较大的影响 忽视软件配置管理可能导致的混乱现象,12,软件配置管理(SCM)介绍,软件配置管理功能,配置标识 配置控制 配置状态报告 配置审核,13,软件配置管理(SCM)介绍,软件配置标识,确定配置项 技术性文档管理性文档 配置命名及其相关信息 唯一性 可追溯性 一个典型的实例是采用层次式命名规则来反映树状结构。例如CODE是根结点为PCL_TOOLS的树结构第六层结点,对其命名为:PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE,14,软件配置管理(SCM)介绍,配置控制,软件变更 配置库 配置基线 变更请求与变更控制,15,软件配置管理(SCM)介绍,配置控制软件变更,软件变更的不可避免性 用户软件开发人员或项目管理人员 软件变更的复杂性软件在一处变更,可能要涉及一些相关部件和文档,需要将这一变更通知到受影响的相关人员 变更管理的任务 分析变更:必要性、经济可行性、技术可行性 记录和追踪变更 采取措施保证变更在受授状态下进行,16,软件配置管理(SCM)介绍,配置控制配置库,配置库的作用 记录与配置相关的所有信息 利用库中的信息评价变更的后果 从库中提取各种配置管理过程的管理信息(如版本信息)三类库开发库 受控库 产品库,17,软件配置管理(SCM)介绍,配置控制配置基线,基线是软件生存期各开发阶段末尾的特定点,也称为里程碑 如果把软件看作是系统的一个组成部分,以下三种基线是最受人们关注的 功能基线 分配基线 产品基线,18,软件配置管理(SCM)介绍,配置控制变更请求与变更控制,利用配置库实现变更控制 变更请求,工作状态,评审状态,受控状态,开发人员满意,通过评审,Check in,未通过评审,Check out,19,软件配置管理(SCM)介绍,配置审核,配置审核的任务是验证配置项对配置标识的一致性 对配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象 配置标识的准则是否得到了遵循 变更控制规程是否已遵循,变更记录是否可供使用 在规格说明、软件产品和变更请求之间是否保持了可追溯性 配置审核内容功能配置审核 物理配置审核,20,软件配置管理(SCM)介绍,配置审核实施,配置审核时机 软件产品交付或是软件产品正式发行前 软件开发的阶段工作结束之后 在维护工作中,定期地进行 实施配置审核的责任人 项目组成员 非项目组成员其他项目的配置管理人员内部审核员配置管理人员,21,软件配置管理(SCM)介绍,配置审核实施(续),配置审核工作开展 由项目经理决定何时进行配置审核工作 质量保证组或软件组的配置管理组指定该项目的配置审核人员 项目经理和配置审核员决定审核范围 配置审核员准备配置审核检查单 配置审核员安排时间审核文档和记录,审核活动可能涉及到:项目范围配置项的入库及出库评审记录配置项的变更历史测试记录文件的命名变更请求版本的编号,22,软件配置管理(SCM)介绍,配置审核实施(续),配置审核工作开展 配置审核员在审核中发现不符合现象,并做记录 由项目经理负责消除不符合现象 配置审核员验证所有发现的不符合现象确已得到解决,23,软件配置管理(SCM)介绍,配置状态报告,任务有效地记录和报告管理配置所需要的信息目的及时、准确地给出软件配置的当前状况需要跟踪捕捉的状态报告信息 配置项的当前标识 已交付软件的配置 变更请求或问题报告的状态 已获准变更的状态,24,SCM在CMM中的定义与基本内容,CMM介绍,25,CMM软件过程成熟度的五个等级,CMM介绍,26,软件过程成熟度关键过程区域,CMM介绍,27,软件过程成熟度结构,CMM介绍,28,关键过程区域组织的共同特点,执行约定组织方针高级管理者支持 执行能力资源、组织结构、培训 执行的活动制定计划和规程工作与工作状态跟踪 测量和分析确定所执行活动的状态和有效性所采用的测量的例子 验证实施管理者和质量保证部门的评审和审计,CMM介绍,29,关键实践举例,CMM介绍,30,等级2的一个关键过程区域软件配置管理,目标,目标1软件配置管理活动是有计划的目标2所选定的软件工作产品是已标识的、受控的和适用的目标3 对已标识的软件工作产品的更改是受控的 目标4受影响的组和个人得到软件基线的状态和内容的通知,31,等级2的一个关键过程区域软件配置管理,执行约定,约定1项目遵循书面的实施软件配置管理的组织方针这些方针包括:明确指派每个项目的SCM职责在项目的整个生命周期内实行SCM对于对外可交付的软件产品、指定的内部软件工作产品和指定在项目内使用的支持工具都实行SCM项目建立或利用一个仓库,用来存储配置项/单元和相关联的SCM记录定期审计软件基线和SCM活动,32,等级2的一个关键过程区域软件配置管理,执行能力,能力1存在或建立一个有权力管理项目软件基线的委员会(即软件配置控制委员会SCCB)SCCB:审定软件基线的建立和配置项/单元的标识代表项目经理和所有可能受到软件基线更改影响的组的利益评审和审定对软件基线的更改审定由软件基线库制造的产品的生成,33,等级2的一个关键过程区域软件配置管理,能力1受到软件基线更改影响的组例子:硬件质量保证组硬件技术状态(配置)管理组硬件工程组制造工程组软件工程组(包括所有小组,如设计组)系统工程组系统测试组软件质量保证组软件配置管理组合同管理组文档支持组,34,等级2的一个关键过程区域软件配置管理,执行能力,能力2存在负责协调和实施项目的SCM的组(即SCM组)SCM组协调实现:项目软件基线库的生成和管理SCM计划、标准和规程的制定、维护和分发将置于SCM之下的软件工作产品集合的标识对存取软件基线库的管理软件基线的更新由软件基线库制造的产品的生成SCM行动的记录SCM报告的生成和散发,35,等级2的一个关键过程区域软件配置管理,执行能力,能力3为进行SCM活动提供足够的资源和投资安排一名经理专门负责SCM使得支持SCM活动的工具适用支持SCM活动的工具例子有:工作站数据库程序配置管理工具,36,等级2的一个关键过程区域软件配置管理,执行能力,能力4SCM组的成员在有关进行其SCM活动的对象、规程和方法方面受到培训。培训的例子包括:SCM标准、规程和方法 SCM工具,37,等级2的一个关键过程区域软件配置管理,执行能力,能力5软件工程组和其他软件有关组的成员受到培训以便完成其SCM活动。其他软件有关组的例子有:软件质量保证组文档支持组培训的例子包括:软件工程组和其他软件有关组内部进行SCM活动要遵循的标准、规程和方法SCM组的角色、职责和权力,38,等级2的一个关键过程区域软件配置管理,执行活动,活动1按照已文档化的规程对每个软件项目准备一份SCM计划。这个规程一般规定:SCM计划的制定是在整个项目策划的早期阶段,并平行于整个项目策划受影响的组评审SCM计划对SCM计划进行管理和控制,39,等级2的一个关键过程区域软件配置管理,执行活动,活动2用已文档化的经批准的SCM计划作为进行SCM活动的基础。该计划包括:将进行的SCM活动、活动的日程表、指派的职责和所要要求的资源(职员、工具和计算机设施)SCM需求和将由软件工程组及其它软件有关组进行的SCM活动,40,等级2的一个关键过程区域软件配置管理,执行活动,活动3建立一个配置库管理系统作为软件基线的仓库该库系统:支持SCM的多个控制层次提供对配置项/单元的存储和检索功能在受影响的组之间和在库内部的层次之间提供配置项/单元的共享和传送帮助使用配置项/单元的产品标准对配置项/单元的归档版本提供存储和恢复功能帮助保证由软件基线库制造的产品的正确生成对SCM记录提供存储、更新和检索功能支持SCM报告的编制提供对库结构和内容的维护,41,等级2的一个关键过程区域软件配置管理,执行活动,活动4标识将置于配置管理之下的软件工作产品基于已文档化的准则选择配置项/单元安排给配置项/单元唯一标志符详细说明每个配置项/单元的特征详细说明每个配置项/单元所属的软件基线详细说明在开发中将每个配置项/单元置于配置管理之下的时间点标识每个配置项/单元的负责人,42,等级2的一个关键过程区域软件配置管理,执行活动,活动4可标识为配置项/单元的软件工作产品例子有:过程有关文档(计划、标准或规程)软件需求软件设计软件代码单元软件测试规程为软件测试所构造的软件系统为交付给顾客或最终用户所构造的软件系统编译程序其它支持工具,43,等级2的一个关键过程区域软件配置管理,执行活动,活动5按照已文档化的规程,记录、评审、批准和跟踪所有配置项或单元的更改请求和问题报告,44,等级2的一个关键过程区域软件配置管理,执行活动,活动6按照已文档化的规程控制对基线的修改该规程一般规定:进行评审和回归测试以保证更改不会造成对基线未料到的影响仅仅那些经SCCB批准的配置项/单元才能进入软件基线库以能保证软件基线库的正确性的完整的方式进行配置项单元的登入和退出,45,等级2的一个关键过程区域软件配置管理,执行活动,活动6软件基线库登入和退出步骤:验证修改是经审定的建立更改日志保持一份更改拷贝更新软件基线库建立被取代的软件基线的档案,46,等级2的一个关键过程区域软件配置管理,执行活动,活动7按照已文档化的规程生成由软件基线库制造的产品并控制它们的发行。该规程一般规定:SCCB审定由软件基线库制造的产品的生成不论为外部使用或内部使用,由软件基线库制造的产品仅仅由软件基线库中的配置项或单元组成,47,等级2的一个关键过程区域软件配置管理,执行活动,活动8按照已文档化的规程记录配置项或单元的状态。该规程一般规定:足够详细的记录配置管理行动,使每个配置项/单元的内容和状态,都是清楚地并且能够恢复以前的版本对每个配置项或单元维护其当前状态并保留其历史,48,等级2的一个关键过程区域软件配置管理,执行活动,活动9编制用文档记载SCM活动和软件基线内容的标准报告,并使受影响的组和个人可以使用它。报告的例子有:SCCB会议记录更改申请的摘要和状态问题报告的摘要和状态软件基线更改的摘要配置项/单元的修改历史软件基线状态软件基线审结果,49,等级2的一个关键过程区域软件配置管理,执行活动,活动10按照已文档化的规程进行软件基线审计。该规程一般规定:为审计做好充分准备评估软件基线的完整性评审配置库管理系统的结构和设施验证软件基线库内容的完备性和正确性验证与适用的SCM标准和规程的符合性向项目软件经理报告审计结果跟踪得自审计的措施条款直至结束,50,等级2的一个关键过程区域软件配置管理,测量和分析,测量1进行测量并将测量结果用于确定SCM活动的状态。测量的例子有:每单位时间处理的更改申请数SCM活动的里程碑的完成情况与计划相比较在SCM活动中所完成的工作、花费的工作量和消费 的资金,51,等级2的一个关键过程区域软件配置管理,验证实施,验证1高级管理者定期参与评审SCM活动验证2项目经理既定期也事件驱动的参加评审SCM活动验证3SCM组定期审计软件基线以验证它们符合定义它们的文档验证4软件质量保证组评审和审计有关SCM的活动和工作产品,并报告其结果,52,等级2的一个关键过程区域软件配置管理,验证实施,评审和审计至少要检验以下各组对SCM标准和规程的依照情况SCM组SCCB软件工程组其它软件有关组定期进行软件基线审计的情况,53,SCM实施需求,任何类型的配置项唯一标识对规则的支持区分与合并问题关系历史日志记录版本控制管理关系,SCM实施,报告产生缺陷生命周期变更控制访问控制和安全发行提示发行管理度量搜集岗位职责规程依照检验,分发和部署管理产品制造管理,54,CM活动演进,SCM实施,55,关于软件工程管理,SCM实施,软件工程过程的建立和工程度量是软件工程管理的精髓,56,CMM软件过程财富概念,SCM实施,组织的软件过程财富组织标准软件过程(包括软件过程体系结构和软件过程元素)对批准使用的软件生存周期的描述用于裁剪组织标准软件过程的指南和准则组织的软件过程数据库软件过程有关文档库,57,软件质量与SCM,软件质量与SCM,质量测量方法Defect densityReview rateDevelopment time ratiosDefect ratiosYieldDefects per hourDefect removal leverageAppraisal to failure ratio(A/FR),58,质量测量方法Defect Density(缺陷密度),软件质量与SCM,定义:每千行新和修改的源代码中发现的缺陷数量如果150行代码中有18个缺陷,那么缺陷密度为1000*18/150=120 defects/KLOC。用途:测量整个开发过程或某个开发阶段的缺陷分布情况,59,质量测量方法Defect Density(示例),软件质量与SCM,图中可见,单元测试阶段发现的缺陷越少,代码质量就越高。在PSP中,单元测试阶段缺陷密度低于5 defects/KLOC,被认为该程序具有很好的质量。通常,经过PSP培训的软件开发人员,其测试阶段的缺陷密度范围为20 到 40 defects/KLOC。,60,质量测量方法Review Rate(复查速度),软件质量与SCM,定义:软件工程师自己对所承担程序的设计和代码进行复查的速度。当开发人员以高于每小时150到200行新增和修改代码速度复查设计和代码时,他们会漏掉很多缺陷。,61,质量测量方法Development Time Ratios(开发时间比例),软件质量与SCM,定义:指软件开发人员在两个开发阶段所化时间比。PSP中,利用3种开发时间比进行过程控制计算(1)设计时间和编码时间比(2)设计复查时间和设计时间比(3)代码复查时间和编码时间比,62,开发时间比例设计时间和编码时间比,软件质量与SCM,PSP的指导原则是软件开发人员应该使详细设计时间和编码时间大致相等。设计时间和编码时间比用于反映开发工程师的设计工作质量,当软件开发人员花在设计上的时间短而花在编码上的时间特别长时,那么可以断定他在一边编程一边“想”设计,这往往导致没有设计文件,压根不可能对设计进行复查和回溯,更无从谈设计质量。,63,开发时间比例设计复查时间和设计时间比,软件质量与SCM,从表中可以看出,软件开发人员在详细设计阶段每小时平均导入1.76 缺陷,而在设计复查阶段平均每小时发现2.96 缺陷。因此为了找出设计阶段导入的所有缺陷,花在设计复查上的时间至少是设计时间的59%。PSP指导原则是软件工程师花在设计复查上的时间至少是设计所花时间的一半。,64,开发时间比例代码复查时间和编码时间比,软件质量与SCM,编码阶段导入缺陷的平均速率为4.20 defects/小时,代码复查阶段发现缺陷的平均速率为6.52 defects/小时,按照这个数据,软件开发人员应该花在代码复查上的时间应该是编码时间的65%。PSP的指导原则为50%。,65,质量测量方法Defect Ratios(缺陷比),软件质量与SCM,定义:开发某阶段缺陷数量和另外一阶段缺陷数量比。PSP中使用的缺陷比有:(1)代码复查缺陷与编译缺陷比(2)设计复查缺陷与单元测试缺陷比经验法则:代码复查缺陷与编译缺陷比=2;设计复查缺陷与单元测试缺陷比大于2。,66,质量测量方法缺陷比,软件质量与SCM,用途:(1)代码复查缺陷与编译缺陷比反映编码质量(2)设计复查缺陷与单元测试缺陷比反映设计质量 经验法则:这两项缺陷比有一项不达标,按照PSP质量标准,这个程序在以后的测试和使用中将带来麻烦。,67,质量测量方法Yield(缺陷收益率),软件质量与SCM,PSP有两种缺陷收益率,开发阶段缺陷收益率和开发过程缺陷收益率,开发阶段缺陷收益率是指某开发阶段发现并修复的缺陷数与该阶段入口缺陷数百分比。开发过程缺陷收益率为在第一次编译和单元测试前修复的缺陷数百分比。为了达到高质量程序目标,PSP建议过程缺陷收益率大于70%。,68,质量测量方法缺陷收益率,软件质量与SCM,除非程序的使用周期已经结束,否则不可能准确地计算程序的缺陷收益率。但是,当程序具有相当的质量水平时,早期的收益率预测可以被推断出来。,69,质量测量方法缺陷收益率,软件质量与SCM,开发过程缺陷收益率为(11+28)/65=60.0%。,70,质量测量方法Defects per Hour(缺陷速率),软件质量与SCM,定义:每小时导入和修复缺陷数量,使用缺陷速率可以指导开发计划的制定。例如,假设一个软件工程师编码时的缺陷导入速度为4defects/hour,在代码复查阶段缺陷修复速率为8 defects/hour,那么他每花1小时的编码时间就需要花半小时对代码进行复查。,71,质量测量方法Defect Removal Leverage(DRL)(缺陷排除杠杆),软件质量与SCM,DRL反映的是不同开发阶段排除程序缺陷的效能比。例如,前例中,设计复查和单元测试排除缺陷效能比为DRL=2.96/2.21=1.34。这表明该软件开发人员在排除缺陷方面,在设计复查阶段是单元测试阶段的1.34倍。DRL有利于软件人员制定最有效的缺陷排除计划。,72,质量测量方法A/FR(质量评价成本比),软件质量与SCM,定义:A代表质量评估成本,或者花在质量评估活动上的开发时间百分比;F代表质量失败成本,指产品失败复原和修复所花时间。质量评估成本是指设计复查、代码复查以及复查阶段缺陷修复所花的时间;失败成本是指编译、单元测试,包含差错、修复、重新编译以及对编译和测试中发现的缺陷重新测试所花时间。,73,质量测量方法质量评价成本比续,软件质量与SCM,A/FR用途:1)个人程序以及比较应用于不同程序的开发过程控制程序质量都起到很好的测量作用 2)A/FR指示出软件开发初期阶段软件开发人员在发现和修复缺陷方面所要达到的程度PSP中,要求软件工程师在做计划时,A/FR值大于2,这就保证了他们在计划中为设计复查和代码复查留出足够的时间。,74,SCM流程图示例,SCM实施,The modify document process,75,SCM流程图示例,SCM实施,The identify agents for roles process,76,SCM流程图示例,SCM实施,The update document process,77,SCM文档模板,SCM实施,ENGINEERING CHANGE ORDERSOFTWARE CHANGE REPORTSOFTWARE CHANGE REQUESTSOFTWARE CONFIGURATION MANAGEMENT(SCM)PLAN,