【教学课件】第9讲软件配置管理.ppt
第第9讲讲 软件配置管理软件配置管理毛新军毛新军http:/ 计算机科学与技术系计算机科学与技术系602教研室教研室 0731-(45)73649软件项目管理课程软件项目管理课程 之之Copyright Xinjun Mao 20051讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 20052项目案例项目案例案例角色和人物小王:软件项目负责人小王:软件项目负责人老王:公司技术老总老王:公司技术老总开发小组:小李,老赵,小田,小谢开发小组:小李,老赵,小田,小谢Copyright Xinjun Mao 20053要软件产品进行配置管理要软件产品进行配置管理(1/2)n软件项目已经成功实施了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品到了编码阶段已经有了近百个软件产品(包括技术文档、管理文档、程序模块等),项目组在管理这些产品方面感到繁琐和困难此时,用户提出要变更需求,软件项目组同意用户的需求变更请求,为此,修改了软件需求规格说明书项目组将更改后、新的软件需求规格说明书交给了软件设计小组,设计小组为此更改了设计。更改后的软件设计涉及诸多的软件模块和数据设计,为此导致许多的模块和源程序代码和可执行代码发生了变化由于变化的范围太大,项目组很难清晰地了解哪些作了变化、做了什么样的变化Copyright Xinjun Mao 20054要软件产品进行配置管理要软件产品进行配置管理(2/2)由此带来的新的问题是,项目组未能及时将这些变化通知给相关、受影响的小组和人员,从而出现软件产品之间的不一致(设计与编码不一致),所开发的产品没有完全符合和满足用户的需求对于某些模块更为糟糕,因为这些模块已经经过了多达67次的修改,而且每次修改都有意义,从而产生了不同版本的软件模块设计,由于没有相关的有效管理措施,开发人员已经很难清晰、有效识别、区分这些软件模块,出现许多开发人员都有该模块的诸多版本与此相对应的是,该模块的源代码也有许多版本在实际组装软件时,项目组不能有效提取出所需的软件产品,共同构成可运行的软件系统Copyright Xinjun Mao 20055案例提示我们案例提示我们n软件开发过程中会产生大量软件产品(包括文档、源代码和数据等),且这些产品之间存在关联关系n同一软件产品,也会发生变更从而产生许多版本n软件开发小组必须清晰的知道会有哪些产品、这些产品会有哪些不同的形式和版本n开发小组必须清晰的知道如何将产品的变更通知给受影响的小组n如果不能有效的了解软件产品及其变更,开发小组很难组装这些软件产品,从而得到所需的软件产品Copyright Xinjun Mao 20056项目管理问题项目管理问题n什么是软件配置?n软件配置需要关心哪些方面的问题?n如何进行软件配置?n如何撰写软件配置管理计划?n有哪些软件工具支持软件配置活动Copyright Xinjun Mao 20057讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 20058什么是软件配置管理?什么是软件配置管理?n软件配置项SCI:Software Configuration Itemn基线Baselinen软件配置管理Software Configuration ManagementCopyright Xinjun Mao 20059软件配置项软件配置项(1/4)软件概软件概要设计要设计文档文档模块模块模块模块1 1数据设数据设计文档计文档SRS详细设详细设计文档计文档模块模块模块模块n n模块模块模块模块mmCopyright Xinjun Mao 200510软件配置项软件配置项(2/4)n什么是SCI?软件生命周期内产生、需进行配置管理的各种工作产品n文档、程序、数据、标准和规约nSCI的形式技术文档n软件需求规格说明书n软件概要设计规格说明书n软件测试计划n用户手册,Copyright Xinjun Mao 200511软件配置项软件配置项(3/4)管理文档n软件开发计划n软件配置管理计划n软件质量保证计划,程序代码(源和可执行)n模块1的源程序代码(例如,A.Java)n模块1的可执行代码(例如,A.class)n组件(程序包,例如,code.dll)n可执行文件(例如,word.exe)数据n配置文件(例如,a.ini)n数据文件(例如,a.pot),Copyright Xinjun Mao 200512软件配置项软件配置项(4/4)nSCI的描述唯一的命名和编号n如SRS属性n版本(1.0)n类型(文档)关系n与软件概要设计文档、数据设计文档关联Copyright Xinjun Mao 200513基线基线(1/4)n什么是基线?已经通过正式复审复审和批准批准的软件产品、标准或规约,它们可以作为进一步开发的基础,并且只能通过正式的变化控制过程才允许对它们进只能通过正式的变化控制过程才允许对它们进行变更行变更如软件需求规格说明书经过评审后,发现的问题已经得到纠正,用户和项目组双方认可,并且正式批准,就可纳入基线Copyright Xinjun Mao 200514基线基线(2/4)n为什么需要基线?变化不可避免软件产品的变化不利于软件开发需要控制变化、软件产品保持一定程度的稳定n以此作为软件开发的基础n不允许随便、非正式更改n因此相对稳定n要改,须经评估和认可,要进行控制Copyright Xinjun Mao 200515基线基线(3/4)软件产品典型基线SRS软件设计软件设计文档文档源代码源代码源代码源代码测试计划测试计划测试计划测试计划/报告报告报告报告Copyright Xinjun Mao 200516基线基线(4/4)n作为基线的SCICopyright Xinjun Mao 200517软件配置管理软件配置管理(1/5)n什么是软件配置管理在软件的整个生命周期中,对SCI进行以下工作n系统地控制SCI的标识、存储、更动和发放n记录、报告其状态n验证SCI的正确性和一致性n对上述工作的审计Copyright Xinjun Mao 200518软件配置管理软件配置管理(2/5)n为什么需要SCM软件产品的易改性与可控性修改很可能引入新的错误,使结构变坏牵一发动全身(影响域)团队开发时,多人并发存取需加控制(存取控制)多应用开发时,同一软件的不同版本可能对应于不同应用,对此需加控制(版本控制)应对软件更动状态予以追踪,并及时向有关人员通报状态情况如果软件产品不能自始至终地保持清晰、互相一致,造成混乱、丢失,那么该软件系统会因无法使用而不得不报废Copyright Xinjun Mao 200519软件配置管理软件配置管理(3/5)nSCM要解决的问题如何标识SCI和管理SCI的诸多版本,以使得变化可以高效地进行如何在软件发布给用户之前和之后控制变化谁负责批准变化,并确定其优先级如何保证变化被恰当地进行采用什么机制告知有关人员已经实行了变化Copyright Xinjun Mao 200520软件配置管理软件配置管理(4/5)n软件配置管理的任务SCI的标识nSCI的识别:有哪些SCI?nSCI的描述:分别是什么SCI?版本控制n每个SCI有哪些版本n控制版本的演化变化控制n如何用对SCI的变化配置审计状态报告Copyright Xinjun Mao 200521软件配置管理软件配置管理(5/5)nSCM的目标必须使每个SCI保持与相关SCI的可追踪性(正确性)和完备性使相关的SCI之间满足文实相符,文文一致以确保SCI的有效性以清晰、明了、易管理的方式标识每个SCI,使其满足:可视性、唯一标识性使最终软件产品的正确地生成、改进和维护成为可能,保证最终软件产品的正确性Copyright Xinjun Mao 200522讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 200523如何进行软件配置管理如何进行软件配置管理?1.SCI标识2.版本控制3.变更控制4.软件配置审计5.状态报告6.谁来实施软件配置管理Copyright Xinjun Mao 2005243.1 SCI标识标识nSCI标识的任务n文档类SCI的命名和属性描述n程序和数据类SCI的命名和属性描述n描述关联关系Copyright Xinjun Mao 200525SCI标识的任务标识的任务(1/2)n任务识别有哪些SCI详细描述每个SCIn识别SCI的要求完整,不要有遗漏系统,包括所有的技术文档、必须的管理文档、所有的程序(源码和可执行)、所有的数据Copyright Xinjun Mao 200526SCI标识的任务标识的任务(2/2)nSCI描述的要求唯一和直观命名,在本项目中是唯一标识的,直觉意思明确,便于望文生义,有利于对该SCI的状态控制,便于增删、修改;描述属性,便于进一步详细了解SCI,如n类型、创建者、时间、修改者,描述与其他SCI的关系,便于追踪和管理其影响Copyright Xinjun Mao 200527文档类文档类SCI的命名和属性描述的命名和属性描述(1/3)n文档编号命名(样板例子)形式:项目名称或者编号:NUDTLIB子系统名称或者编号:2 or ReaderAdmin文档类型:RAAD-结构设计结构设计CR-更动报告更动报告DD-详细设计详细设计DP-开发计划开发计划FA-可行性分析可行性分析IC-接口控制接口控制IG -安装手册安装手册QA-质量保证质量保证RA-需求分析需求分析SL-源码列表源码列表SS-系统规格说明书系统规格说明书TP-测试计划测试计划TR-测试报告测试报告UM-用户手册序号用户手册序号Copyright Xinjun Mao 200528文档类文档类SCI的命名和属性描述的命名和属性描述(2/3)序号:1,表示本文档在同类型中的排序版本号:1修订号:00Copyright Xinjun Mao 200529文档类文档类SCI的命名和属性描述的命名和属性描述(3/3)n文档属性描述:编写人:例如,张三质检人:例如,李四审核人:例如,王五批准人:例如,刘八发布版本:例如,1.00发布日期:例如,2002/12/14变化情况Copyright Xinjun Mao 200530代码类代码类SCI的命名和属性描述的命名和属性描述n描述要体现其功能和所在的结构层次代码SCI的编号命名n形式:子系统编号.组件编号.模块编号.表示功能涵义的字符串n例如,3.32.324.Stack名称:Stack功能:堆栈语言:Java版本:1.0开发者:Dr.Mao开发时间:2002/12/30修改者:修改时间:Copyright Xinjun Mao 200531描述关联关系描述关联关系n为了便于更动控制时进行影响域评估,必须描述SCI之间的关联关系建立关联矩阵关联列表Copyright Xinjun Mao 2005323.2 版本控制版本控制(1/2)n为什么SCI会有不同的版本软件因纠错/改进/完善/扩充会导致同一SCI有多个版本此外,在同时从事多项目开发时,同一SCI的不同版本可能应用于不同的项目SCM应有一种手段使开发者能以正确的、一致的和可重复的方式恢复和构造任一最终的软件产品版本。这就是所谓的“版本控制”。Copyright Xinjun Mao 200533版本控制版本控制(2/2)nSCI的版本演化一般可采用存储版本树的办法来进行版本控制Copyright Xinjun Mao 2005343.3 变更控制变更控制(1/3)n变化不可避免,无控制的变化将导致混乱n无论何人、何时欲修改配置库中的SCI均应履行正规更动手续提出书面申请更动控制组审核和评估(必要性/可行性/影响域/资源)同意,则授权执行指定修改;结论也可能是不同意或暂缓Copyright Xinjun Mao 200535变更控制变更控制(2/3)Copyright Xinjun Mao 200536变更控制变更控制(3/3)Copyright Xinjun Mao 2005373.4 软件配置审计软件配置审计(1/2)n配置审计的内容检查配置控制手续是否齐全变化是否完成?验证当前基线对前一基线的可追踪性确认各SCI是否均正确反映需求确保SCI及其介质的有效性尤其是要确保:文实相符、文文一致定期复制、备份、归档,以防止意外的介质破坏Copyright Xinjun Mao 200538软件配置审计软件配置审计(2/2)n配置审计结果应写成报告,通报有关人员或组织n配置审计不应局限于在基线处,或更动控制时进行,而在整个软件生命周期中,必要时随时随地都可实施Copyright Xinjun Mao 2005393.5 状态报告状态报告(1/4)n为了清楚、及时地追踪并记载SCI的变化,以备审计时使用,需要在整个生命周期中对每个SCI的变化进行系统的记录发生了什么事谁做的事此事什么时候发生对其它产生什么影响Copyright Xinjun Mao 200540状态报告状态报告(2/4)n根据SCI的出入库情况和更动控制组的会议记录,产生配置状态报告,并将状态报告及时发放给各有关人员和组织,以避免造成互相矛盾和冲突。通常,有以下两种报告:现行状态报告历史状态报告n配置状态报告也被存放在受控库中,可供有关人员随时查询Copyright Xinjun Mao 200541状态报告状态报告(3/4)n现行状态报告:按指定要求提供指定SCI的现行状态,指明:现行版本号?前是否正被某人专用?还是可共享?(并发控制)Copyright Xinjun Mao 200542状态报告状态报告(4/4)n历史情况报告:按指定要求提供指定SCI的历史记录,报告:谁於何时因何故对何SCI做了何事(入库/出库/更动)?Copyright Xinjun Mao 2005433.6 谁来实施软件配置管理谁来实施软件配置管理n软件配置管理小组来实施软件配置管理负责制定软件配置管理计划实施软件配置活动Copyright Xinjun Mao 200544讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 200545软件配置管理计划软件配置管理计划(1/3)n软件配置管理计划指明何时何人做何事以及如何做?实例如下(详见:GB/T 12505-90)1.引言1.1 目的1.2 术语与缩略语1.3 参考资料Copyright Xinjun Mao 200546软件配置管理计划软件配置管理计划(2/3)2.管理2.1 机构2.2 任务2.3 职责2.4 接口控制2.5 里程碑2.6 适用的标准、条例和约定Copyright Xinjun Mao 200547软件配置管理计划软件配置管理计划(3/3)3.配置管理活动3.1 配置标识3.2 配置控制3.3 配置状态登录与报告3.4 配置审计4.技术、方法与工具5.对供货单位的控制6.记录的收集、维护和保存Copyright Xinjun Mao 200548讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 200549CMM对软件配置管理的要求对软件配置管理的要求(1/3)n软件配置管理是CMM 2级的一个关键过程域n所谓的软件配置管理是指在整个软件生命周期中,建立和标识软件配置管理项,并对其进行控制和管理,以维护其完整性、一致性和可跟踪性。Copyright Xinjun Mao 200550CMM对软件配置管理的要求对软件配置管理的要求(2/3)n软件配置管理的任务制定配置管理计划,建立配置管理机构 在给定时间点上,对软件配置管理项进行标识 系统地控制软件配置管理项的更动 配置状态报告 配置审计 在整个软件生命周期中,对软件配置项进行存储、处理、发行管理和交付 Copyright Xinjun Mao 200551关键实践类关键实践数目制定方针政策1确保必备条件5实施软件过程10度量和分析1检查实施情况4CMM对软件配置管理的要求对软件配置管理的要求(3/3)n共21个关键实践Copyright Xinjun Mao 200552目标目标n软件配置管理活动是有计划的 n所选的软件工作产品是已标识的、受控的和可得到的 n对已标识的软件工作产品的更动是受控的 n受影响组和个人得到软件基线的状态和内容的通知 Copyright Xinjun Mao 200553制定方针政策制定方针政策n项目遵循一个书面的、由组织制定的实施软件配置管理(SCM)的方针明确项目SCM的机构(或者人员)及其职责 在项目的整个生存周期中实行SCM 对要交付的软件产品、指定的内部软件工作产品和指定在项目内部使用的支持工具(例如编译器)都实行SCM 项目建立和存取一个用来存储配置项/单元和相关SCM记录的仓库 定期审计软件基线和SCM活动 Copyright Xinjun Mao 200554确保必备条件确保必备条件(1/5)n建立有权力的项目软件软件配置控制委员会审定软件基线的建立和配置项/单元的标识代表项目负责人和所有可能受到软件基线更动影响的组的利益 评审和批准对软件基线的更动 批准由软件基线库构造的产品的建立 Copyright Xinjun Mao 200555确保必备条件确保必备条件(2/5)n存在一个负责协调和实施项目的SCM的组(即SCM组),SCM组协调或实现 项目的软件基线库的建立和管理 SCM计划、标准和规程的制定、维护和散发 欲置于SCM之下的软件工作产品集合的标识 对存取软件基线库的管理 软件基线的更新 由软件基线库构造的产品的建立 SCM活动的记录 SCM报告的生成和散发 Copyright Xinjun Mao 200556确保必备条件确保必备条件(3/5)n为进行SCM活动提供足够的资源和经费指派一个人员专门负责SCM能得到支持SCM活动的工具 Copyright Xinjun Mao 200557确保必备条件确保必备条件(4/5)nSCM组的成员受到实施SCM活动的目的、规程和方法方面的培训,包括:SCM标准、规程和方法SCM工具 Copyright Xinjun Mao 200558确保必备条件确保必备条件(5/5)n软件工程组和其它软件有关组的成员受到培训以便实施其SCM活动 Copyright Xinjun Mao 200559执行活动执行活动(1/10)n按照文档化的规程,对每个软件项目准备一个SCM计划SCM计划的制定是在整个项目策划的早期阶段进行,并且平行于整个项目策划 受影响组评审SCM计划 SCM计划应受管理和控制 Copyright Xinjun Mao 200560执行活动执行活动(2/10)n一个文档化的经批准的SCM计划被用作进行SCM活动的基础欲进行的SCM活动、活动日程表、指派的职责以及要求的资源(包括职员、工具和计算机设施)SCM的需求以及将由软件工程组和其它软件有关组进行的SCM活动 Copyright Xinjun Mao 200561执行活动执行活动(3/10)n建立一个配置管理库系统作为软件基线仓库 支持SCM的多个控制级别 提供对配置项/单元的存储和检索功能 在受影响组之间和在库内部的控制级别之间提供配置项/单元的共享和传送 为配置项/单元的产品标准的使用提供帮助 对配置项归档版本提供存储和恢复功能 保证由软件基线库构造的产品的正确生成 对SCM记录提供存储、更新和检索功能 支持SCM报告的编制 对库的结构和内容提供维护 Copyright Xinjun Mao 200562执行活动执行活动(4/10)n标识欲置于配置管理之下软件工作产品 根据文档化的准则选择配置项/单元 给每个配置项/单元分配唯一的标识符 说明每个配置项/单元的特征 说明每个配置项/单元所属的软件基线 说明在开发过程中将各个配置项/单元置于配置管理之下的时间点 标识每个配置项/单元的责任人(即从配置管理的角度来说的所有者)Copyright Xinjun Mao 200563执行活动执行活动(5/10)n按照文档化的规程,起动、记录、评审、批准和跟踪对所有配置项/单元的更动请求和问题报告 进行评审和(或)回归测试,以保证更动不会造成对基线产生未料到的影响 仅仅那些经SCCB批准的配置项/单元才能进入软件基线库 以能保持软件基线库的正确性和完整性的方式进行配置项/单元的登入和退出 Copyright Xinjun Mao 200564执行活动执行活动(6/10)n按照文档化的规程控制对基线的更动进行评审和(或)回归测试,以保证更动不会造成对基线产生未料到的影响 仅仅那些经SCCB批准的配置项/单元才能进入软件基线库 以能保持软件基线库的正确性和完整性的方式进行配置项/单元的登入和退出 Copyright Xinjun Mao 200565执行活动执行活动(7/10)n按照文档化的规程,生成由软件基线库构造的产品并控制它们的发行SCCB审定由软件基线库构造的产品的生成 不论是内部或外部使用,由软件基线库构造的产品必须仅仅是由软件基线库中的配置项/单元组成的 Copyright Xinjun Mao 200566执行活动执行活动(8/10)n按照文档化的规程,记录配置项/单元的状态 足够详细地记录配置管理活动,使每个配置项/单元的内容和状态都是清楚的,并且能恢复到以前的版本 对每个配置项/单元的当前状态和其历史(即更动和其它活动)进行维护 Copyright Xinjun Mao 200567执行活动执行活动(9/10)n编制用文档记载SCM活动和软件基线内容的各种标准报表,并使受影响组和个人可得到它 Copyright Xinjun Mao 200568执行活动执行活动(10/10)n按照文档化的规程进行软件基线审计Copyright Xinjun Mao 200569度量和分析度量和分析n进行度量,并将度量结果用于确定SCM活动的状态 每单位时间处理的更动申请数 SCM活动的里程碑的完成情况与计划相比较 在SCM活动中已完成的工作、花费的工作量和消耗的资金 Copyright Xinjun Mao 200570验证实践验证实践(1/4)n高级管理者定期参与SCM活动的评审 Copyright Xinjun Mao 200571验证实践验证实践(2/4)n项目经理既定期地也事件驱动地参与SCM活动的评审 Copyright Xinjun Mao 200572验证实践验证实践(3/4)nSCM组定期地审计软件基线,以验证它们是否符合定义它们的文档Copyright Xinjun Mao 200573验证实践验证实践(4/4)n软件质量保证组评审和审计有关SCM的活动和工作产品,并报告其结果Copyright Xinjun Mao 200574讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 200575软件配置管理工具软件配置管理工具nRational ClearCasenMicrosoft SourceSafenPVCSCopyright Xinjun Mao 200576讲授内容讲授内容1.软件项目案例2.什么是软件配置管理?3.如何进行软件配置管理?4.软件配置管理计划5.CMM对软件配置管理的要求6.软件配置管理工具7.小结Copyright Xinjun Mao 200577小结小结n软件配置管理是极为重要的n需成立一个配置管理小组进行软件配置管理n软件配置管理涉及SCI标识、版本控制、变更控制、配置审计、状态报告n需制定软件配置计划,并且按照计划来实施nCMM对软件配置管理提出了具体的要求Copyright Xinjun Mao 200578教学目的教学目的n理解与软件配置管理有关的基本概念软件配置管理的重要性和意义n掌握软件配置管理的方法、手段和工具软件配置管理计划软件配置管理工具n运用在软件项目开发过程中能够运用方法、策略和工具对软件产品进行配置管理Copyright Xinjun Mao 200579Q&AQ&ASoftware Project Management Practice,Practice,and PracticeCopyright Xinjun Mao 200580