
软件配置管理ppt课件.ppt
59页软件配置管理内容提要1.软件配置管理的概念2.软件配置管理计划3.软件配置标识4.变更管理5.版本管理6.配置审核7.配置状态报告8.软件配置管理工具9.CMM 2级 SCM KPA一、软件配置管理的概念(一)软件配置项的概念1、软件配置项:配置管理的对象称为软件配置项表1 软件配置项的分类、特征和举例分 类特 征举 例环境类软件开发环境 及 软件维护环境编译器、操作系统、编辑器、数据库管理系统、开发工具(如测试工具)、项目管理工具、文档编辑工具定义类需求分析及定义阶段完成后得到的工作产品需求规格说明书、项目开发计划、设计标准或设计准则、验收测试计划设计类设计阶段结束后得到的产品系统设计规格说明、程序规格说明、数据库设计、编码标准、用户界面标准、测试标准、系统测试计划、用户手册编码类编码及单元测试后得到的工作产品源代码、目标码、单元测试数据及单元测试结果测试类系统测试完成后的工作产品系统测试数据、系统测试结果、操作手册、安装手册维护类进入维护阶段以后产生的工作产品以上任何需要变更的软件配置项2、软件配置 软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。
初始系统机型1机型2机型n操作系统1操作系统2用户1用户2图1 不同用户有自己的工作环境ABCGDHEABFCDE 用户1 用户2图2 面对不同用户产品的配置 AFBDGCHE用户1用户2ABCDE FABCDE GH 产品1 产品2 图3 两个产品具有不同的配置用户1: A、B、C、D、E和F用户2: A、B、C、D、E和G、H(二)软件配置管理1、什么是软件配置管理(1)ISO 9000-3 :1997 配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给予技术上的和管理上的指导配置管理的应用取决于项目的规模、复杂程度和风险大小2) W.Babich 的解释 软件配置管理能协调软件开发,使混乱减少到最小软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率3) GB/T 11457 :1995《软件工程术语》国家标准 A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性 B.对下列工作进行技术和行动指导与监督的一套规范: ——对配置项的功能特性和物理特性进行标识和文件编制工作; ——控制这些特性的更动情况; ——记录并报告这些更动进行的处理和实现的状态。
2、软件配置管理的任务——制定软件配置管理计划——确定配置标识规则——实施变更控制——报告配置状态——进行配置审核——进行版本管理和发行管理 表2《ISO/IEC 12207: 1995信息技术—软件生存周期过程》关于软件配置管理过程的规定活活 动动任任 务务解解 释释1.实施过程开发配置管理计划计划描述:配置活动、这些活动的规程、进度、配置管理组织及与其他组织的关系计划应形成文件2.配置标识制定标识规则以控制软件项及其版本标识内容包括:基线文档、版本基准号、其他3.配置控制标志并记录变更申请分析与评价变更批准(或不期准)申请实现、验证和发行已变更的软件项审核跟踪变更控制并审核受控软件项 跟踪变更原因、变更授权以保证重要功能的安全或保密4.配置状态报告编制管理记录和状态报告表明受控项(包括基线)的状态和历史状态报告应包括变更号、最新版本、发行标识、版本号及各种版本比较5.配置评价确定和保证软件项的功能完整性、物理完整性 6.发行管理和交付有效控制软件产品和文档的发行和交付在产品的生存期内保存代码、文挡的主拷贝 包括重要的安全或保密功能的代码和文档应按组织的方针处理、储存、包装和交付3、软件配置管理与软件开发过程• 两类不同的变更:–开发阶段内部发生的变更:–开发过程解决不了的变更:•变更的评估和批准以及变更实施都要由软件配置管理人员去做。
•开发过程应纳入配置管理过程的控制之下配 置 管 理阶段 1阶段 2阶段 n开发过程图4 配置管理与开发过程(三)软件配置管理的意义1、软件项目的特点(1)不可见的逻辑实体(2)软件项目的规模日益庞大和复杂(3)参与软件项目的人员增加,人员间的沟通渠道数量按指数倍增4)产品非常容易拷贝(5)时时处在演化和变更状态这包括: ——技术 ——业务环境 ——不同用户各有不同的需求 ——需求变更(6)开发人员的离去有较大的影响2、忽视软件配置管理可能导致的混乱现象–发错了版本–安装后不工作–异地不能正常工作–已经解决的缺陷过后又出现错误–开发人员把产品拿出去出售赢利–找不到最新修改了的源程序–找不到编程序的人二、软件配置管理计划配置管理计划标准——IEEE 828-19901.引言——配置管理计划的目的、适应范围、使用要求——项目概述——项目中需特别关注的配置管理问题和风险——软件配置管理严格性要求的等级——限制和假设——术语——参考文件2、软件配置管理——配置管理的组织结构——职责和权限——指令和方针——参照的规程(组织的规程或客户的规程)——遵循的标准3、软件配置管理活动——配置管理活动——变更管理和配置控制——配置状态说明——配置审核——接口和子合同方控制4、软件配置管理进度安排——软件配置管理重要事件的顺序——软件配置管理各项活动间的依赖关系5、软件配置管理所需的资源——采用的工具——使用的设备——所需的培训——对其他人员的要求6、软件配置管理计划的维护——维护的职责——计划更新的条件和审批——计划变更的交流和通报三、软件配置标识(一)确定配置项1、 系统规格说明2、软件项目计划3、软件需求规格说明书a.图形分析模型b.处理规格说明c.原型d.数学规格说明4. 初步用户手册5. 设计规格说明书a.数据设计描述b.体系结构设计描述c.模块设计描述d.接口设计描述e.对象描述(采用面向对象技术时)6. 源代码清单7、 测试规格说明 a.测试计划和步骤 b.测试用例和记录的结果8、操作和安装手册9、 可执行程序 a.模块可执行代码b.连接的模块10、数据库描述 a.模式和文件结构 b.初始内容11、联机用户手册12、维护文档 a.软件问题报告 b.维护请求 c.工程变更指令13.软件工程标准和规程图5 软件配置项(二)配置项命名及其相关信息1、配置项命名。
命名的基本要求:唯一性;可追溯性 例:CODE是根结点为PCL_TOOLS树结构的第六层结点,对其命名为:PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE 2、配置项的相关标识信息 每一配置项的有关信息:——组名——项名——项标识(文件名或命名规则)——版本编号规则——什么情况下纳入控制之下,或——版本号——所遵循的变更控制规程四、变更管理(一)软件变更1、软件变更的不可避免性2、软件变更的复杂性–软件配置项数量大–版本多–变更的迁延性–人员沟通协调3、变更管理的任务–分析变更–记录和追踪变更–采取措施保证变更在受控状态下进行(二)配置库1、配置库的作用–记录与配置相关的所有信息–利用库中的信息可评价变更的后果–可利用库中的信息查询,例如:•那些客户已提取了某个特定的系统版本?•运行一个给定的系统版本需要什么硬件和系统的哪些版本?•一个系统到目前已生成了多少版本,何时生成的?•如果某一特定的构件变更了,会影响到系统的那些版本?•一个特定的版本曾提出过那几个变更请求?•一个特定的版本有多少已报告的错误?2、三类库 (1)开发库: 存放开发过程中需要保留的各种信息,供开发人员个人专用。
2)受控库: 在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入3)产品库: 在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装(三)配置基线 基线是软件生存期各开发阶段末尾的特定点,也称为里程碑2、三种常见基线 ——功能基线 在系统分析和软件定义阶段结束时,经过正式评审和批准的系统设计规格说明中对被开发软件系统的规格说明;经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对被开发软件系统的规格说明;由下级申请及上级同意或直接由上级下达的项目任务书中所规定的开发软件系统的规格说明——分配基线 在软件需求分析阶段结束时,经正式评审和批准的软件需求规格说明——产品基线 在软件组装与系统测试阶段,经正式评审和批准的有关所开发的软件产品的全部配置项的规格说明3、基线与配置项4、典型的配置项和基线库内容——初始库:包括项目开始时可供利用的配置项•已有的源代码(如可以利用且需要)•已有的软件文档(如可以利用且有需要)•已有的测试计划和测试数据(如可利用且有需要)•合同或建议书——环境配置项:包括对稳定的开发环境或维护环境所必需的配置项•编译器、操作系统、编辑程序、实用程序、RDBMS•团组所用的工具(项目管理工具,进展表,测试工具,缺陷追踪等)•第三方库•文档工具(字处理器、电子表格等)——定义库:在需求规格说明工作结束时生成的•需求规格说明•项目计划•设计标准与设计准则•验收测试计划——设计库:在设计工作结束时所产生的•系统设计说明书•程序规格说明•数据库设计•编码标准、用户接口标准、测试标准•系统测试计划•用户手册——构 造 库 : 在 编 码 和 段 单 元 测 试 结 束 时 生 成的•源代码•标代码 •单元测试数据——测试库:系统测试完成后生成的•系统测试数据•运行手册和安装手册——维护库:验收测试、安装和培训等之后•将有变更的所有配置项(四)变更控制1、变更控制组 变更控制组(Change Control Board)也称为配置控制组(Configuration Control Board),是配置项变更的监管组织。
其任务是对建议的配置项变更做出评价、审批以及监督已批准的变更的实施2、变更请求与变更控制(1)利用配置库实现变更控制•软件配置项通过评审作为基线,将准许进入配置库(实施检入Check-in),开始“冻结”•由于多种原因需要变更就需要提出“变更请求”在得到批准的情况下,允许配置项从库中检出(Check-out)(2)变更请求的主要内容•变更描述•对变更的审批•有关变更实施的一些信息表5 变更请求表CRF(3)变更控制过程表6(4)故障报告故障报告包含的内容有:——FR ID(故障报告标识)——故障信息•故障描述•故障严重程度•怀疑有问题的部位•故障的影响•故障现象和环境信息•估计的故障原因•故障信息提供者——CCB评估意见•批准或拒绝• 优先性•说明——故障修复信息•要变更的部分•说明3、变更记录变更记录置于模块首部的实例// PROTEUS Projet( ESPRIT 6087)// PCL_TOOLS/EDIT/FORMS/DISPLAY/INTERFACE// Object: PCL_TOOL_DESC//作者:陈**//开发日期:2000.12.8//版权归属:ASDC//变更记录//版号变更负责人 日期 变更概要 变更理由//1.0王** 2001.4 **** ****//1.1李** 2001.9 **** ****表7 代码变更记录实例五、版本管理1、软件版本:包含两种不同含义(1)为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品。
2)软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能2、版本标识版本管理也称版本控制版本标识方法:(1)号码版本标识(2)符号版本标识:把重要的版本属性有选择地给出 如:V1/VMS/DB Server3、版本管理工具V1.0V1.1V1.1aV1.1bV1.1.1V1.2V2.0V2.1V2.2(一)什么是配置审核 它是指对于存储配置项及相关记录的软件基线库的结构、内容和设施进行检验,其目的在于验证基线是否符合描述基线的文档 验证包括:验证包括:–配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象;–配置标识的准则是否得到了遵循;–变更控制规程是否以遵循,变更记录是否可供使用–是否保持了可追溯性配置审核配置审核工作主要集中在两个方面,即:–功能配置审核——验证配置项的实际功效是与其软件需求一致的–物理配置审核——确定配置项符合预期的物理特性,即特定的媒体形式六、配置审核(二)为什么要实施配置审核 确保软件配置管理的有效性,不允许出现任何混乱现象例如:——防止出现向用户提交了不适合的产品,如交付了用户手册不适当的版本;——发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更;——找出各配置项间不匹配或不相容的现象;——确认配置项已在所要求质量控制审查之后作为基线入库保存;——确认记录和文档保持着可追溯性。
(三)如何实施配置审核1、实施配置审核的时机——软件产品交付或是软件产品正式发行前——软件开发的阶段工作结束之后——在维护工作中,定期的进行2、实施配置审核的责任人 参与实施配置审核的审核人员包括:项目组人员和非项目组人员,例如其他项目的配置管理人员、软件组织的内部审核员以及软件组织的软件配置管理人员 3、配置审核工作的开展 (1)由项目经理决定何时进行配置审核工作 (2)质量保证组或软件组的配置管理组指定该项目的配置审核 人员 (3)项目经理和配置审核员决定审核范围 (4)配置审核员准备配置审核检查单 (5)配置审核员安排时间审核文档和记录,审核活动可能涉及 到: 项目范围 配置项的检入(check-in)及检出(check_out) 评审记录 配置项的变更历史 测试记录 文件的命名 变更请求 版本的编号 (6)配置审核员在审核中发现不符合现象,并作记录 (7)由项目经理负责消除不符合现象 (8)配置审核员验证所有发现的不符合现象确已得到解决。
七、配置状态报告(一)什么是配置状态报告 1、 配 置 状 态 报 告 ( configuration status reporting)也称配置状态说明与报告(configuration status accounting & reporting)–任务:有效的记录和报告管理配置所需要的信息–目的:及时、准确的给出软件配置项的当前状况,供相关人员 了解,以加强配置管理工作 2、需要跟踪捕捉的状态报告信息可以是:–配置项的当前标识–已交付软件的配置–变更请求或问题报告的状态–已获准变更的状态(二)配置状态报告信息1、状态说明的实体关系2、状态说明数据词典——配置项库(repository)•库名•库标识•所有者•范围/描述——配置项(configuration item)•库标识•项标识•项名•描述•项类型(源代码、测试计划等)——配置项版本(configuration item version)•库标识•项标识•版本号•入库日期、时间•与前版差异描述•锁定状态——检出与检入(check-out & check-in)•库标识•项标识•出库版本号•出库负责人•出库日期及时间•实施的变更请求号•变更描述•入库版本号•入库负责人•入库日期及时间————变更请求变更请求 ( (change request)change request)•变更请求号 •软件版本号•申请申请 *申请人 *申请日期 *变更部位 *变更优先性 *变更概述 *变更预期效果 *附件•分析与审批分析与审批 *受影响工作项 *估计工作量投入 *成本 *其他影响 *假设 *效果 *分析日期 *分析人 *是否批准 *理由 *审批日期 *批准人 *发行版本 •实施状态实施状态 *受影响的每一个工作项 —库标识 —项标识 —变更描述 —出库版本 —出库日期及时间 —变更工作量 —验证工作量 —入库版本 —入库日期及时间 *说明 *变更结束日期及时间 *变更结束负责人——发行(release)•发行版本•发行日期•目的•创建时间——发行配置项及版本号•库标识•项标识•项名称•概述•项类型(源代码 、测试计划等)•版本号 ——备份•备份号•备份日期•备份人•目的•介质——备份配置项•库标识•项标识——备份配置项版本•库标识•项标识•版本号 3、定期提交的配置状态报告的内容示例——变更请求概要:变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期——基线库状态:库标识、至某日预计库内配置项数、实际配置项数——发行信息:发行版本、计划发行时间、实际发行时间、说明——备份信息:备份日期、介质、备份存放位置——配置管理工具状态——配置管理培训状态八、软件配置管理工具(一)手工方法实施软件配置管理存在的问题1、由于认识和理解的局限性,缺乏远见和坚定性2、规程过于繁琐3、可能出现人为的失误4、个别人可能持逆反心理5、必须作充分培训6、对人员的依赖性较大(二)采用工具支持配置管理的自动方法采用工具可能有如下的好处–减少了人为因素–节省人工实施配置管理所花费的时间–发生配置问题的机会较少–程序人员可集中精力在自己的工作中,不必担心配置问题(三)采用配置管理工具的经济考虑–购置工具软件的成本–培训成本–改变工作方式的代价–首先采用手工方法更为直观,积累经验,提高认识–采购配置管理工具时应慎重选择九、CMM 2级SCM KPA图15 SCM KPA 结构G12级RMSPPSPTOSSMSQASCMG2G3G4Ab5V3V4约定能力活动测量验证C1Ab1Ac1M1V1Ab2Ac2V2Ab3Ab4Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ac10 目标 活动图16 SCM KPA的目标与活动目标1目标212345678910目标3目标4(一)目标与活动 目标目标1 1:软件配置管理活动是有计划的。
软件配置管理活动是有计划的 活动1:按照文件化的规程为每一个软件项目制定软件配置管理计划 活动2:以文件化和经批准的软件配置管理计划作为开展软件配置管理活动的基础 目标目标2 2:选定的软件工作产品是已标识的、受控的和可用的选定的软件工作产品是已标识的、受控的和可用的 活动2:(同上) 活动3:建立配置管理库作为软件基线仓库 活动4:对置于配置管理下的软件工作产品做出标识 活动7:根据文件化规程由软件基线库中生成产品,并控制这些产品的发行目标目标3 3:对已标识的软件工作产品的变更加以控制对已标识的软件工作产品的变更加以控制 活动5:按已文件化规程启动、记录、评审、批准和跟踪对所有配置项或单元的变更请求和问题报告 活动6:按已文件化规程控制基线的变更目目标标4 4::受受影影响响的的组组合合人人员员都都应应得得知知软软件件基基线线的的状状态态和和内内容 活动8:根据文件化规程记录配置项或配置单元的状态 活动9:编制记载软件配置管理活动和软件基线内容的标准报告并使受影响的组和人员可以使用它 活动10:根据文件化规程进行软件基线审核(二)约定与能力约定1:项目遵循实施软件配置管理的书面组织方针。
SCM的组织方针一般规定:•明确指派每个项目的SCM职责•在项目的整个生存期内实施SCM•对可交付的软件产品、指定的内部软件工作产品和指定在项目内部使用的支持工具(如编译器)都实施SCM•项目要设一个基线库,用以存放配置项/配置单元和相关SCM记录•定期审核软件基线和SCM活动为体现上述约定软件组织需要具有以下能力:能力1:要设有或组建一个有权管理项目软件基线的机构,如软件配置控制委员会(SCCB),其职能包括:–审定软件基线的建立和配置项或配置单元的标识–代表项目经理和所有可能受到软件基线变更影响的小组的利益–评审和审定软件基线的变更–评定由软件基线库获取产品的生成能力2:要设置一个负责协调和实施项目配置管理的小组,如软件配置管理组(SCM),其职责可以有:–项目软件基线库的生成和管理–SCM计划、标准和规程的制定、维护和分发–标识在SCM控制之下的软件工作产品–管理软件基线库的存取–更新软件基线–记录SCM活动–生成和分发SCM报告能力3:为开展软件配置管理各项活动提供足够的资源和资金能力4:对SCM组人员进行实施软件配置管理的目标、规程和方法诸方面的培训能力5:对软件工程组何与软件相关的其他组成员进行有关软件配置管理活动的培训。
(三)测量和验证测量1:要进行测量,并将测量结果用于确定软件配置管理活动的成本和进度安排测量的内容可以是:•单位时间内处理的变更请求数•软件配置管理活动的里程碑完成情况与计划的比较•软件配置管理活动中完成的工作、花费的工作量和消耗的资金验证1:高级管理定期参与软件配置管理活动的评审验证2:项目经理既定期的、也要在出现特定事件时 参与软件配置管理活动的评审验证3:SCM组定期审核软件基线,以验证其符合定义 基线的文件验证4:软件质量保证组(SQA)评审和审核有关SCM 的活动和工作产品,并报告结果至少要评审和审核:–以下各组对SCM标准和规程遵循情况•SCM组•SCCB•软件工程组•其他与软件相关的小组–定期进行软件基线审核的情况(四)入口-任务-验证-出口(ETVX) 表9 SCM的ETVX。
