软件配置管理 ppt课件精选.ppt
软件配置管理,内容提要,软件配置管理的概念软件配置管理计划软件配置标识变更管理版本管理配置审核配置状态报告软件配置管理工具,一、软件配置管理的概念,(一)软件配置项的概念1、软件配置项:配置管理的对象称为软件配置项。表1 软件配置项的分类、特征和举例,2、软件配置 软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。,图1 不同用户有自己的工作环境,用户1,用户2,图2 面对不同用户产品的配置,产品1 产品2 图3 两个产品具有不同的配置,用户1: A、B、C、D、E和F用户2: A、B、C、D、E和G、H,(二)软件配置管理1、什么是软件配置管理(1)ISO 9000-3 :2019 配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。(2) W.Babich 的解释 软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。(3) GB/T 11457 :2019软件工程术语国家标准 A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。 B.对下列工作进行技术和行动指导与监督的一套规范: 对配置项的功能特性和物理特性进行标识和文件编制工作; 控制这些特性的更动情况; 记录并报告这些更动进行的处理和实现的状态。,2、软件配置管理的任务制定软件配置管理计划确定配置标识规则实施变更控制报告配置状态进行配置审核进行版本管理和发行管理,表2ISO/IEC 12207: 2019信息技术软件生存周期过程关于软件配置管理过程的规定,3、软件配置管理与软件开发过程 两类不同的变更:开发阶段内部发生的变更:开发过程解决不了的变更:变更的评估和批准以及变更实施都要由软件配置管理人员去做。开发过程应纳入配置管理过程的控制之下。,开发过程,图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(故障报告标识)故障信息故障描述故障严重程度怀疑有问题的部位故障的影响故障现象和环境信息估计的故障原因故障信息提供者评估意见批准或拒绝 优先性说明故障修复信息要变更的部分说明,3、变更记录变更记录置于模块首部的实例。,/ PROTEUS Projet( ESPRIT 6087)/ PCL_TOOLS/EDIT/FORMS/DISPLAY/INTERFACE/ Object: PCL_TOOL_DESC/作者:陈*/开发日期:2000.12.8/版权归属:ASDC/变更记录/版号变更负责人 日期 变更概要 变更理由/1.0王* 2019.4 * */1.1李* 2019.9 * *,表7 代码变更记录实例,五、版本管理,1、软件版本:包含两种不同含义(1)为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品。(2)软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能。2、版本标识版本管理也称版本控制。版本标识方法:(1)号码版本标识(2)符号版本标识:把重要的版本属性有选择地给出。 如:V1/VMS/DB Server3、版本管理工具,(一)什么是配置审核 它是指对于存储配置项及相关记录的软件基线库的结构、内容和设施进行检验,其目的在于验证基线是否符合描述基线的文档。 验证包括:配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象;配置标识的准则是否得到了遵循;变更控制规程是否以遵循,变更记录是否可供使用是否保持了可追溯性。配置审核工作主要集中在两个方面,即:功能配置审核验证配置项的实际功效是与其软件需求一致的。物理配置审核确定配置项符合预期的物理特性,即特定的媒体形式。,六、配置审核,(二)为什么要实施配置审核 确保软件配置管理的有效性,不允许出现任何混乱现象。例如:防止出现向用户提交了不适合的产品,如交付了用户手册不适当的版本;发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更;找出各配置项间不匹配或不相容的现象;确认配置项已在所要求质量控制审查之后作为基线入库保存;确认记录和文档保持着可追溯性。,(三)如何实施配置审核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)变更请求号 软件版本号申请 *申请人 *申请日期 *变更部位 *变更优先性 *变更概述 *变更预期效果 *附件,分析与审批 *受影响工作项 *估计工作量投入 *成本 *其他影响 *假设 *效果 *分析日期 *分析人 *是否批准 *理由 *审批日期 *批准人 *发行版本,实施状态 *受影响的每一个工作项 库标识 项标识 变更描述 出库版本 出库日期及时间 变更工作量 验证工作量 入库版本 入库日期及时间 *说明 *变更结束日期及时间 *变更结束负责人,发行(release)发行版本发行日期目的创建时间发行配置项及版本号库标识项标识项名称概述项类型(源代码 、测试计划等)版本号,备份备份号备份日期备份人目的介质备份配置项库标识项标识备份配置项版本库标识项标识版本号,3、定期提交的配置状态报告的内容示例各份变更请求概要:变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期基线库状态:库标识、至某日预计库内配置项数、实际配置项数发行信息:发行版本、计划发行时间、实际发行时间、说明备份信息:备份日期、介质、备份存放位置配置管理工具状态配置管理培训状态,八、软件配置管理工具,(一)手工方法实施软件配置管理存在的问题1、由于认识和理解的局限性,缺乏远见和坚定性2、规程过于繁琐3、可能出现人为的失误4、个别人可能持逆反心理5、必须作充分培训6、对人员的依赖性较大,(二)采用工具支持配置管理的自动方法采用工具可能有如下的好处减少了人为因素节省人工实施配置管理所花费的时间发生配置问题的机会较少程序人员可集中精力在自己的工作中,不必担心配置问题,(三)采用配置管理工具的经济考虑购置工具软件的成本培训成本改变工作方式的代价两条建议首先采用手工方法更为直观,积累经验,提高认识采购配置管理工具时应慎重选择,谢谢大家!,