资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,短期软件配置管理培训教程,上海应用技术学院计算机系,讲师:王志敏,1,目录,配置管理的目的,配置管理的组织与人员,配置管理的定义,配置管理的主要任务和活动,配置管理的阶段,常用的配置管理方法,变更申请例如表单,总结,附录,2,1.配置管理的目的,随着软件团队人员的增加,软件版本不断变化,开发时间的紧迫以及多平台开发环境的采用,使得软件开发面临越来越多的问题,其中包括对当前多种产品的开发和维护、保证产品版本的精确、重建先前发布的产品、加强开发政策的统一和对特殊版本需求的处理等等,解决这些问题的唯一途径是加强管理,而软件开发管理的核心是软件配置管理。,3,可行性报告,项目开发计划,对应大规模软件所规定的文件可进一步细分,软件需求说明,数据要求说明,测试计划,项目开发计划,软件需求说明,测试计划,软件需求与开发计划,概要设计说明,详细设计说明,数据库设计说明,软件设计说明,软件设计说明,使用说明,使用说明,用户手册,操作手册,模块开发卷宗,测试分析报告,测试分析报告,模块开发卷宗,测试分析报告,开发进度月报,项目开发总结,开发进度月报,项目开发总结,项目开发总结,小规模软件,中规模软件,大规模软件,超大规模软件,请看以下图,1.配置管理的目的,4,软件配置管理的目的是在工程的整个软件生命周期内建立并维护软件工程产品的完整性。涉及在给定时间点标识软件的配置即选定的软件工作产品及其描述,系统地控制对配置的更改并维护在整个软件生存周期中配置的完整性和可跟踪性。软件配置管理是大多数软件工程和管理流程的一个构成局部,1.配置管理的目的,5,2.,配置管理的组织与人员,2.1配置控制委员会Configuration Control Board,CCB,成员构成 如下:,组长是总体组代表,他对有关软件配置管理的各项工作全面负责,特别要对更改建议的审批和评审负责;,软件工程小组组长负责监督在软件配置管理工作中认真执行软件工程标准;,工程的专职配置管理人员检查在作配置更改时的质量保证措施;,各子系统的配置管理人员具体负责实施各自的配置管理工作,并参与各子系统的功能配置检查和物理配置检查;,6,2.配置管理的组织与人员,用户代表负责反映用户对配置管理的要求,并协助检查各类人员对软件配置管理方案的执行情况;,工程专职的配置管理人员协助组长开展各项软件配置管理活动,负责审查所采用的配置管理工具、技术和方法,并负责汇总、维护和保存有关软件配置管理活动的各项记录。,总任务:负责指导和控制配置管理的各项具体活动的进行,为工程经理的决策提供建议。,7,2.配置管理的组织与人员,其具体职责为以下几项:,定制开发子系统,定制访问控制,制定常用策略,建立、更改基线的设置,审核变更申请,根据配置管理员的报告决定相应的对策,8,2.配置管理的组织与人员,2.2配置管理员Configuration Management Officer,CMO,根据配置管理方案执行各项管理任务,定期向CCB提交报告,并列席CCB的例会。,主要职责如下:,软件配置管理工具的日常管理与维护;,提交配置管理方案;,各配置项的管理与维护;,执行版本控制和变更控制方案;,完成配置审计并提交报告;,对开发人员进行相关的培训;,识别软件开发过程中存在的问题并拟就解决方案,9,3.配置管理的定义,软件配置管理Software Configuration Management,SCM是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可防止的,而变更加剧了工程中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。,软件配置管理Software Configuration Management,SCM作为CMM 2能力成熟度模型级的一个关键域Key Practice Area,KPA,在整个软件的开发活动中占有很重要的位置。,10,4.配置管理的主要任务和活动,4.1主要任务,Pressman所说的:“软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来1标识变化,2控制变化,3保证变化被适当的发现,以及4向其他可能有兴趣的人员报告变化。所以,我们必须为软件配置管理活动设计一个能够融合于现有的软件开发流程的管理过程,甚至直接以这个软件配置管理过程为框架,来再造组织的软件开发流程。,11,4.配置管理的主要任务和活动,到达的效果,软件配置管理的各项工作是有方案进行的。,被选择的工程产品得到识别,控制并且可以被相关人员获取。,已识别出的工程产品的更改得到控制。,使相关组别和个人及时了解软件基准的状态和内容。,12,4.配置管理的主要任务和活动,4.1主要的活动,配置项Software Configuration Item,SCI识别,工作空间管理,版本控制,变更控制,状态报告,配置审计,13,4.配置管理的主要任务和活动,配置项Software Configuration Item,SCI识别,Pressman对于SCI给出了一个比较简单的定义:“软件过程的输出信息可以分为三个主要类别:1计算机程序源代码和可执行程序,2描述计算机程序的文档针对技术开发者和用户3数据包含在程序内部或外部。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。,由此可见,配置项的识别是配置管理活动的根底,也是制定配置管理方案的重要内容。,14,4.配置管理的主要任务和活动,软件配置项分类软件的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,软件配置管理引入了“基线Base Line这一概念。IEEE对基线的定义是这样的:“已经正式通过复审核批准的某规约或产品,它因此可作为进一步开发的根底,并且只能通过正式的变化控制过程改变。,所以,根据这个定义,我们在软件的开发流程中把所有需加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括工程的各类方案和报告等。,15,4.配置管理的主要任务和活动,配置项的标识和控制,所有配置项都都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节局部记录对象的标识信息。在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。所有配置项的操作权限应由CMO严格管理,根本原那么是:基线配置项向软件开发人员开放读取得权限;非基线配置项向PM、CCB及相关人员开放。,16,4.配置管理的主要任务和活动,工作空间管理,在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下。所以为了让每个开发人员和各个开发团队能更好的分工合作,同时又互不干扰,对工作空间的管理和维护也成为了软件配置管理的一个重要的活动。,一般来说,比较理想的情况是把整个配置库视为一个统一的工作空间,然后再根据需要把它划分为个人私有、团队集成和全组公共这三类工作空间分支,从而更好的支持将来可能出现的并行开发的需求。,17,4.配置管理的主要任务和活动,每个开发人员按照任务的要求,在不同的开发阶段,工作在不同的工作空间上,例如:对于私有开发空间而言,开发人员根据任务分工获得对相应配置项的操作许可之后,他即在自己的私有开发分支上工作,他的所有工作成果表达为在该配置项的私有分支上的版本的推进,除该开发人员外,其他人员均无权操作该私有空间中的元素;而集成分支对应的是开发团队的公共空间,该开发团队拥有对该集成分支的读写权限,而其他成员只有只读权限,它的管理工作由SIO负责;至于公共工作空间,那么是用于统一存放各个开发团队的阶段性工作成果,它提供全组统一的标准版本,并作为整个组织的Knowledge Base。,18,4.配置管理的主要任务和活动,当然,由于选用的软件配置管理工具的不同,在对于工作空间的配置和维护的实现上有比较大的差异,但对于CMO来说,这些工作是他的重要职责,他必须根据各开发阶段的实际情况来配置工作空间并定制相应的版本选取规那么,来保证开发活动的正常运作。在变更发生时,应及时做好基线的推进。,19,4.配置管理的主要任务和活动,版本控制,版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段,我们还需要定义、收集一些元数据Metadata来记录版本的辅助信息和标准开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持的话,这些辅助数据将能直接统计出过程数据,从而方便我们软件过程改进Software Process Improvement,SPI活动的进行。,20,4.配置管理的主要任务和活动,对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,那么应按照变更控制的流程来进行操作。,21,4.配置管理的主要任务和活动,变更控制,在对,SCI,的描述中,我们引入了基线的概念。从,IEEE,对于基线的定义中我们可以发现,基线是和变更控制紧密相连的。也就是说在对各个,SCI,做出了识别,并且利用工具对它们进行了版本管理之后,如何保证它们在复杂多变得开发过程中真正的处于受控的状态,并在任何情况下都能迅速的恢复到任一历史状态就成为了软件配置管理的另一重要任务。因此,变更控制就是通过结合人的规程和自动化工具,以提供一个变化控制的机制。,变更控制的对象主要指配置库中的各基线配置项,22,4.配置管理的主要任务和活动,变更管理的一般流程,提出变更请求;,由CCB审核并决定是否批准;,被接受修改请求分配人员,提取SCI,进行修改;,复审变化;,提交修改后的SCI;,建立测试基线并测试;,重建软件的适当版本;,复审审计所有SCI的变化;,发布新版本。,在这样的流程中,CMO通过软件配置管理工具来进行访问控制和同步控制,而这两种控制那么是建立在前文所描述的版本控制和分支策略的根底上的,23,4.配置管理的主要任务和活动,状态报告,配置状态报告就是根据配置项操作数据库中的记录来向管理者报告软件开发活动的进展情况。这样的报告应该是定期进行,并尽量通过,CASE,工具自动生成,用数据库中的客观数据来真实的反映各配置项的情况。,配置状态报告应根据报告应着重反映当前基线配置项的状 态,以作为对开发进度报告的参照。同时也能从中根据开 发人员对配置项的操作记录来对开发团队的工作关系作一定的分析。,24,4.配置管理的主要任务和活动,配置状态报告应该包括以下主要内容,配置库结构和相关说明;,开发起始基线的构成;,当前基线位置及状态;,各基线配置项集成分支的情况;,各私有开发分支类型的分布情况;,关键元素的版本演进记录;,其它应予报告的事项。,25,4.配置管理的主要任务和活动,配置审计,配置审计的主要作用是作为变更控制的补充手段,来确保某一变更需求已被切实实现。在某些情况下,它被作为正式的技术复审的一局部,但当软件配置管理是一个正式的活动时,该活动由SQA人员单独执行。,26,4.配置管理的主要任务和活动,总之,软件配置管理的对象是软件研发活动中的全部开发资产。所有这一切都应作为配置项纳入管理方案统一进行管理,从而能够保证及时的对所有软件开发资源进行维护和集成。,因此,软件配置管理的主要任务也就归结为以下几条:,制定工程的配置方案;,对配置项进行标识;,对配置项进行版本控制;,对配置项进行变更控制;,定期进行配置审计;,向相关人员报告配置的状态。,27,5.配置管理的阶段,一
展开阅读全文