版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 软件配置管理第四部分第四部分项目案例案例角色和人物小王:软件项目负责人小王:软件项目负责人老王:公司技术老总老王:公司技术老总开发小组:小李,老赵,小田,小谢开发小组:小李,老赵,小田,小谢软件产品进行配置管理(1/2) 软件项目已经成功进行了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品 到了编码阶段已经有了近百个软件产品(包括技术文档、管理文档、程序模块等),项目组在管理这些产品方面感到繁琐和困难,常常测试人员正在测试某个模块时,开发人员却调整了程序。 特别是在不同省市阶段试用和现场测试的时候,用户提出要变更需求,软件项目组汇总用户的需求,并经过审批同意了变更请求,为此,
2、修改了软件需求规格说明书 项目组将更改后、新的软件需求规格说明书交给了软件设计小组,设计小组为此更改了设计。更改后的软件设计涉及诸多的软件模块和数据设计,为此导致许多的模块和源程序代码和可执行代码发生了变化 由于某些编码的变化的是在当地开发,项目组很难清晰地了解哪些作了变化、做了什么样的变化软件产品进行配置管理(2/2) 由此带来的新的问题是,项目组未能及时将这些变化通知给相关、受影响的小组和人员,从而出现软件产品之间的不一致(设计与编码不一致),所开发的产品没有完全符合和满足用户的需求 对于某些模块更为糟糕,因为这些模块已经经过了多达67次的修改,而且每次修改都有意义,从而产生了不同版本的软
3、件模块设计,由于没有相关的有效管理措施,开发人员已经很难清晰、有效识别、区分这些软件模块,出现许多开发人员都有该模块的诸多版本 与此相对应的是,该模块的源代码也有许多版本 在实际组装软件时,项目组不能有效提取出所需的软件产品,共同构成统一的可运行的软件系统 进而,不得不形成虽然似乎功能相同,但不同的地方版本。想到后续的维护大家都头疼。案例提示 软件开发过程中会产生大量软件产品(包括文档、源代码和数据等),且这些产品之间存在关联关系 同一软件产品,也会发生变更从而产生许多版本 软件开发小组必须清晰的知道会有哪些产品、这些产品会有哪些不同的形式和版本 开发小组必须清晰的知道如何将产品的变化通知给受
4、影响的小组 如果不能有效的了解软件产品及其变化,实施小组很难组装这些软件产品,从而得到所需的软件产品什么是软件配置管理什么是软件配置管理 软件配置管理软件配置管理(Software Configuration Management, SCM)是指通过执行版本控制、变更)是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。证所有配置项的完整性和可跟踪性。配置管理是对配置管理是对工作成果的一种有效保护。工作成果的一种有效保护。 软件配置管理软件配置管理(SCM)(SCM)是贯穿于整个软件过程中是贯穿于整个
5、软件过程中的的保护性活动保护性活动。 SCMSCM目的是保证软件项目生成的产品在软件生目的是保证软件项目生成的产品在软件生命周期中的命周期中的完整性和一致性完整性和一致性. . 因为变化可能发生在任意时间,因为变化可能发生在任意时间,SCM SCM 活动被活动被设计来设计来: : (1) (1)标识变化标识变化; ; (2) (2)控制变化控制变化; ; (3) (3)保证变化被适当地实现保证变化被适当地实现; ; (4) (4)向其他可能有兴趣的人员报告变化。向其他可能有兴趣的人员报告变化。 软件配置管理使改进变化可以更容易地软件配置管理使改进变化可以更容易地被适应,并减少当变化必须发生时所
6、需被适应,并减少当变化必须发生时所需花费的工作量花费的工作量。 明确地区分明确地区分软件维护软件维护和和软件配置管理软件配置管理是是很重要的。很重要的。 维护维护是发生在软件已经被交付给客户,是发生在软件已经被交付给客户,并投入运行后的一系列软件工程活动,并投入运行后的一系列软件工程活动,而而软件配置管理软件配置管理则是当软件项目开始时则是当软件项目开始时就开始,并且仅当软件退出运行后才终就开始,并且仅当软件退出运行后才终止的一组跟踪和控制活动。止的一组跟踪和控制活动。配置管理与配置管理与任何一位项目成员任何一位项目成员都有关系,因都有关系,因为每个人都会产生工作成果。为每个人都会产生工作成果
7、。配置管理是否有成效取决于三个要素:配置管理是否有成效取决于三个要素:人、人、规范、工具规范、工具 内容提要1. 软件配置管理的概念2. 软件配置管理计划3. 软件配置标识4. 变更管理5. 版本管理6. 配置审核7. 配置状态报告8. 软件配置管理工具一、软件配置管理的概念(一)软件配置项的概念(Software Configuration Item)1、软件配置项:配置管理的对象称为软件配置项。表1 软件配置项的分类、特征和举例分 类特 征举 例环境类软件开发环境及 软件维护环境编译器、操作系统、编辑器、数据库管理系统、开发工具(如测试工具)、项目管理工具、文档编辑工具定义类需求分析及定义
8、阶段完成后得到的工作产品需求规格说明书、项目开发计划、设计标准或设计准则、验收测试计划设计类设计阶段结束后得到的产品系统设计规格说明、程序规格说明、数据库设计、编码标准、用户界面标准、测试标准、系统测试计划、用户手册编码类编码及单元测试后得到的工作产品源代码、目标码、单元测试数据及单元测试结果测试类系统测试完成后的工作产品系统测试数据、系统测试结果、操作手册、安装手册维护类进入维护阶段以后产生的工作产品以上任何需要变更的软件配置项2、软件配置 软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合。初始系统机型1机
9、型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 的解释 软件配置管理能协调软件开
10、发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。(3) GB/T 11457 :1995软件工程术语国家标准 A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。 B.对下列工作进行技术和行动指导与监督的一套规范: 对配置项的功能特性和物理特性进行标识和文件编制工作; 控制这些特性的更动情况; 记录并报告这些更动进行的处理和实现的状态。2、软件配置管理的任务制定软件配置管理计划确定配置标识规则实施变更控制报告配置状态进行配置审核进行版本管理和发行管理 表2ISO
11、/IEC 12207: 1995信息技术软件生存周期过程关于软件配置管理过程的规定活活 动动任任 务务解解 释释1实施过程开发配置管理计划计划描述:配置活动、这些活动的规程、进度、配置管理组织及与其他组织的关系计划应形成文件2配置标识制定标识规则以控制软件项及其版本标识内容包括:基线文档、版本基准号、其他3配置控制标志并记录变更申请分析与评价变更批准(或不期准)申请实现、验证和发行已变更的软件项审核跟踪变更控制并审核受控软件项 跟踪变更原因、变更授权以保证重要功能的安全或保密4配置状态报告编制管理记录和状态报告表明受控项(包括基线)的状态和历史状态报告应包括变更号、最新版本、发行标识、版本号及
12、各种版本比较5配置评价确定和保证软件项的功能完整性、物理完整性 6发行管理和交付有效控制软件产品和文档的发行和交付在产品的生存期内保存代码、文挡的主拷贝 包括重要的安全或保密功能的代码和文档应按组织的方针处理、储存、包装和交付3、软件配置管理与软件开发过程 两类不同的变更: 开发阶段内部发生的变更: 开发过程解决不了的变更: 变更的评估和批准以及变更实施都要由软件配置管理人员去做。 开发过程应纳入配置管理过程的控制之下。配 置 管 理阶段 1阶段 2阶段 n开发过程图4 配置管理与开发过程(三)软件配置管理的意义1、软件项目的特点(1)不可见的逻辑实体(2)软件项目的规模日益庞大和复杂(3)参
13、与软件项目的人员增加,人员间的沟通渠道数量按指数倍增。(4)产品非常容易拷贝(5)时时处在演化和变更状态。这包括: 技术 业务环境 不同用户各有不同的需求 需求变更(6)开发人员的离去有较大的影响2、忽视软件配置管理可能导致的混乱现象 发错了版本 安装后不工作 异地不能正常工作 已经解决的缺陷过后又出现错误 开发人员把产品拿出去出售赢利 找不到最新修改了的源程序 找不到编程序的人项目经理的配置管理流程项目经理的配置管理流程 项目经理的工作是:项目经理的工作是:(1 1)确定项目配置)确定项目配置管理策略管理策略 (2 2)确定用于控制)确定用于控制产品变更的策略和产品变更的策略和流程流程 (3
14、 3)在配置管理计)在配置管理计划(是软件开发计划(是软件开发计划的一部分)中记划的一部分)中记录此信息录此信息 配置管理策略配置管理策略 软件配置管理策略软件配置管理策略是指能够确定、保护和报告已经是指能够确定、保护和报告已经批准用于项目中的工件的能力。通过正确的标注来批准用于项目中的工件的能力。通过正确的标注来实现确定操作。对项目工件的保护是通过归档、建实现确定操作。对项目工件的保护是通过归档、建立基线和报告等操作而得以实现的。立基线和报告等操作而得以实现的。 使用标准的、已记录下来的使用标准的、已记录下来的变更控制流程的目的变更控制流程的目的是:是:确保项目中所做的变更保持一致,并将产品
15、的状态、确保项目中所做的变更保持一致,并将产品的状态、对其所做的变更以及这些变更所耗费的成本及对时对其所做的变更以及这些变更所耗费的成本及对时间表的影响通知给有关的涉众。间表的影响通知给有关的涉众。 软件软件配置管理计划配置管理计划说明在产品说明在产品/ /项目生命周期中要执项目生命周期中要执行的所有与配置管理相关的活动。它记录如何计划、行的所有与配置管理相关的活动。它记录如何计划、实施、控制和组织与产品相关的配置管理活动。实施、控制和组织与产品相关的配置管理活动。 配备人员配备人员 配置管理人员的选择和配备,是软件项目经理配置管理人员的选择和配备,是软件项目经理最主要的工作。在一个比较理想的
16、软件开发团队中,最主要的工作。在一个比较理想的软件开发团队中,需要哪些角色呢?需要哪些角色呢?负责软件项目组的负责软件项目组的项目经理项目经理负责负责SCMSCM计划和策略的计划和策略的配置经理配置经理负责软件产品开发与维护的负责软件产品开发与维护的软件工程人员软件工程人员负责验证产品正确性的负责验证产品正确性的测试人员测试人员负责确保产品高质量的负责确保产品高质量的质量保证经理质量保证经理使用产品的使用产品的用户用户。 配置经理配置经理 配置经理配置经理的目标是确保用来建立、变更及编码测试的目标是确保用来建立、变更及编码测试的计划和策略得以贯彻执行,同时使有关项目的信的计划和策略得以贯彻执行
17、,同时使有关项目的信息容易获得。息容易获得。 为了对编码更改形成控制,配置经理引入规范的请为了对编码更改形成控制,配置经理引入规范的请求变更的机制,评估更改的机制(通过变更控制机求变更的机制,评估更改的机制(通过变更控制机构构CCB,由它负责批准对软件系统的变更),和批,由它负责批准对软件系统的变更),和批准变更的机制。准变更的机制。 配置经理负责为工程人员创建任务单,交由项目经配置经理负责为工程人员创建任务单,交由项目经理对任务进行分配,创建项目的框架。同时,配置理对任务进行分配,创建项目的框架。同时,配置经理还收集软件系统中构件的相关数据,比如说用经理还收集软件系统中构件的相关数据,比如说
18、用以判断系统中出现问题的构件的信息。以判断系统中出现问题的构件的信息。 项目经理的阶段工作要点项目经理的阶段工作要点 二、软件配置管理计划配置管理计划标准IEEE 828-19901引言配置管理计划的目的、适应范围、使用要求项目概述项目中需特别关注的配置管理问题和风险软件配置管理严格性要求的等级限制和假设术语参考文件2、软件配置管理配置管理的组织结构职责和权限指令和方针参照的规程(组织的规程或客户的规程)遵循的标准3、软件配置管理活动配置管理活动变更管理和配置控制配置状态说明配置审核接口和子合同方控制4、软件配置管理进度安排软件配置管理重要事件的顺序软件配置管理各项活动间的依赖关系5、软件配置
19、管理所需的资源采用的工具使用的设备所需的培训对其他人员的要求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
20、.初始内容11、联机用户手册12、维护文档 a.软件问题报告 b.维护请求 c.工程变更指令13.软件工程标准和规程图5 软件配置项(二)配置项命名及其相关信息1、配置项命名。命名的基本要求:唯一性;可追溯性。 例:CODE是根结点为PCL_TOOLS树结构的第六层结点,对其命名为:PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE 2、配置项的相关标识信息 每一配置项的有关信息:组名项名项标识(文件名或命名规则)版本编号规则什么情况下纳入控制之下,或版本号所遵循的变更控制规程四、变更管理(一)软件变更1、软件变更的不可避免性2、软价变更的复杂性 软
21、件配置项数量大 版本多 变更的迁延性 人员沟通协调3、变更管理的任务 分析变更 记录和追踪变更 采取措施保证变更在受控状态下进行(二)配置库 (repository)1、配置库的作用 记录与配置相关的所有信息 利用库中的信息可评价变更的后果 可利用库中的信息查询,例如: 那些客户已提取了某个特定的系统版本? 运行一个给定的系统版本需要什么硬件和系统的哪些版本? 一个系统到目前已生成了多少版本,何时生成的? 如果某一特定的构件变更了,会影响到系统的那些版本? 一个特定的版本曾提出过那几个变更请求? 一个特定的版本有多少已报告的错误?2、三类库 (1)开发库: 存放开发过程中需要保留的各种信息,供
22、开发人员个人专用。(2)受控库: 在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入。(3)产品库: 在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。配置库操作配置库操作u所有人员都依照配置管理规范和计划来操作配置库。所有人员都依照配置管理规范和计划来操作配置库。 u配置管理员配置管理员的主要操作有:的主要操作有: 创建配置库创建配置库,并且至少创建配置库的所有第一级目录。,并且至少创建配置库的所有第一级目录。为每个项目成员分配操作权限。一般地,项目成员拥有为每个项目成员分配操作权限。一般地,项目成员拥有Add, Add, Check in, Ch
23、eck out, DownloadCheck in, Check out, Download等权限,但是不要轻易拥有等权限,但是不要轻易拥有“删除删除”权限。权限。配置管理员的权限最高。具体操作视所采用的配置管理软件配置管理员的权限最高。具体操作视所采用的配置管理软件而定。而定。 根据根据“基线计划基线计划”创建与维护基线,创建与维护基线,“冻结冻结”配置项,控制配置项,控制变更。变更。 定期清除配置库里的垃圾文件。定期清除配置库里的垃圾文件。 定期备份配置库。定期备份配置库。u其他项目成员根据自己的权限操作配置库里的工作成果,其他项目成员根据自己的权限操作配置库里的工作成果,例如例如 :Ad
24、d, Check in, Check out, DownloadAdd, Check in, Check out, Download等。等。(三)配置基线 基线是软件生存期各开发阶段末尾的特定点2、三种常见基线 功能基线 在系统分析和软件定义阶段结束时,经过正是评审和批准的系统设计规格说明中对被开发软件系统的规格说明;经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对被开发软件系统的规格说明;由下级申请及上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。分配基线 在软件需求分析阶段结束时,经正式评审和批准的软件需求规格说明。产品基线 在软件组装与系统测
25、试阶段技术时,经正式评审和批准的有关所开发的软件产品的全部配置项的规格说明。3、基线与配置项4、典型的配置项和基线库内容初始库:包括项目开始时可供利用的配置项 已有的源代码(如可以利用且需要) 已有的软件文档(如可以利用且有需要) 已有的测试计划和测试数据(如可利用且有需要) 合同或建议书环境配置项:包括对稳定的开发环境或维护环境所必需的配置项 编译器、操作系统、编辑程序、实用程序、RDBMS 团组所用的工具(项目管理工具,进展表,测试工具,缺陷追踪等) 第三方库 文档工具(字处理器、电子表格等)定义库:在需求规格说明工作结束时生成的 需求规格说明 项目计划 设计标准与设计准则 验收测试计划设
26、计库:在设计工作结束时所产生的 系统设计说明书 程序规格说明 数据库设计 编码标准、用户接口标准、测试标准 系统测试计划 用户手册构造库:在编码和段单元测试结束时生 成的 源代码 标代码 单元测试数据测试库:系统测试完成后生成的 系统测试数据 运行手册和安装手册维护库:验收测试、安装和培训等之后 将有变更的所有配置项(四)变更控制1、变更控制组 变更控制组(Change Control Board)也称为配置控制组(Configuration Control Board),是配置项变更的监管组织。其任务是对建议的配置项变更做出评价、审批以及监督已批准的变更的实施。2、变更请求与变更控制(1)利
27、用配置库实现变更控制 软件配置项通过评审作为基线,将准许进入配置库(实施检入Check-in),开始“冻结”。 由于多种原因需要变更就需要提出“变更请求”。在得到批准的情况下,允许配置项从库中检出(Check-out)(2)变更请求的主要内容 变更描述 对变更的审批 有关变更实施的一些信息表5 变更请求表CRF(3)变更控制过程表6(4)故障报告故障报告包含的内容有:FR ID(故障报告标识)故障信息 故障描述 故障严重程度 怀疑有问题的部位 故障的影响 故障现象和环境信息 估计的故障原因 故障信息提供者评估意见 批准或拒绝 优先性 说明故障修复信息 要变更的部分 说明3、变更记录变更记录置于
28、模块首部的实例。/ 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)软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的
29、修正或纠错,增强功能或提高性能。2、版本标识版本管理也称版本控制。版本标识方法:(1)号码版本标识(2)符号版本标识:把重要的版本属性有选择地给出。 如:V1/VMS/DB ServerV1.0V1.1V1.1aV1.1bV1.1.1V1.2V2.0V2.1V2.2概念概念 u软件的每一版本都是软件基线库的配置项(源软件的每一版本都是软件基线库的配置项(源代码、文档、数据)的一个集合。代码、文档、数据)的一个集合。u版本控制的目的版本控制的目的是按照一定的规则保存配置项是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确
30、地查找到配置项的任何版本。并且可以快速准确地查找到配置项的任何版本。所有项目成员都必须遵照版本控制规程操作所有项目成员都必须遵照版本控制规程操作配置库。配置库。版本控制规则版本控制规则配置项的状态有三种:配置项的状态有三种: “草稿草稿”(DraftDraft)、)、 “ “正式发布正式发布”(ReleasedReleased)、)、 “ “正在修改正在修改”(ChangingChanging)。)。u配置项状态变迁:配置项状态变迁: 1.1.配置项刚建立时其状态为配置项刚建立时其状态为“草稿草稿”。2.2.配置项通过评审(或审批)后,其状态变为配置项通过评审(或审批)后,其状态变为“正式发布
31、正式发布”。3.3.此后若更改配置项,必须依照此后若更改配置项,必须依照“变更控制规程变更控制规程”执行,其状态变为执行,其状态变为“正在修改正在修改”。4.4.当配置项修改完毕并重新通过评审(或审批)当配置项修改完毕并重新通过评审(或审批)时,其状态又变为时,其状态又变为“正式发布正式发布”,如此循环。,如此循环。版本号版本号 u(1 1)处于)处于“草稿草稿”状态的配置项的版本号格状态的配置项的版本号格式为:式为:0.YZ 0.YZ YZYZ数字范围为数字范围为01-9901-99。随着草稿的不断完善,随着草稿的不断完善,“YZ”YZ”的取值应递的取值应递增。增。“YZ”YZ”的初值和增幅
32、由用户自己把握。的初值和增幅由用户自己把握。u(2 2)处于)处于“正式发布正式发布”状态的配置项的版本号格式状态的配置项的版本号格式为:为:X.Y X.Y X X为主版本号,取值范围为为主版本号,取值范围为1-91-9。Y Y为次版本号,为次版本号,取值范围为取值范围为1-91-9。 配置项第一次配置项第一次“正式发布正式发布”时,版本号为时,版本号为1.0 1.0 如果配置项的版本升级幅度比较小,一般只增大如果配置项的版本升级幅度比较小,一般只增大Y Y值,值,X X值保持不变。只有当配置项版本升级幅度值保持不变。只有当配置项版本升级幅度比较大时,才允许增大比较大时,才允许增大X X值。值
33、。 u(3 3)处于处于“正在修改正在修改”状态的配置项的版本号格状态的配置项的版本号格式为:式为:X.YZX.YZ 配置项正在修改时,一般只增大配置项正在修改时,一般只增大Z Z值值(一般以(一般以a,b,ca,b,c依次增大)依次增大),X.YX.Y值保持不变。值保持不变。 当配置项修改完毕,状态重新成为当配置项修改完毕,状态重新成为“正式发布正式发布”时,将时,将Z Z值设置为值设置为0 0,增加,增加X.YX.Y值。参见规则(值。参见规则(2 2)。)。 (一)什么是配置审核 它是指对于存储配置项及相关记录的软件基线库的结构、内容和设施进行检验,其目的在于验证基线是否符合描述基线的文档
34、。 验证包括:验证包括: 配置项的处理是否有背离初始的规格说明或已批准的变更请求的现象; 配置标识的准则是否得到了遵循; 变更控制规程是否以遵循,变更记录是否可供使用 是否保持了可追溯性。配置审核配置审核工作主要集中在两个方面,即: 功能配置审核验证配置项的实际功效是与其软件需求一致的。 物理配置审核确定配置项符合预期的物理特性,即特定的媒体形式。六、配置审核(二)为什么要实施配置审核 确保软件配置管理的有效性,不允许出现任何混乱现象。例如:防止出现向用户提交了不适合的产品,如交付了用户手册不适当的版本;发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更;找出各配置项间不匹配或
35、不相容的现象;确认配置项已在所要求质量控制审查之后作为基线入库保存;确认记录和文档保持着可追溯性。(三)如何实施配置审核1、实施配置审核的时机软件产品交付或是软件产品正式发行前软件开发的阶段工作结束之后在维护工作中,定期的进行2、实施配置审核的责任人 参与实施配置审核的审核人员包括:项目组人员和非项目组人员,例如其他项目的配置管理人员、软件组织的内部审核员以及软件组织的软件配置管理人员。 3、配置审核工作的开展 (1)由项目经理决定何时进行配置审核工作 (2)质量保证组或软件组的配置管理组指定该项目的配置审核 人员 (3)项目经理和配置审核员决定审核范围。 (4)配置审核员准备配置审核检查单
36、(5)配置审核员安排时间审核文档和记录,审核活动可能涉及 到: 项目范围 配置项的检入(check-in)及检出(check_out) 评审记录 配置项的变更历史 测试记录 文件的命名 变更请求 版本的编号 (6)配置审核员在审核中发现不符合现象,并作记录。 (7)由项目经理负责消除不符合现象。 (8)配置审核员验证所有发现的不符合现象确已得到解决。七、配置状态报告(一)什么是配置状态报告 1、配置状态报告(configuration status reporting)也称配置状态说明与报告(configuration status accounting & reporting)。 任务:有效
37、的记录和报告管理配置所需要的信息 目的:及时、准确的给出软件配置项的当前状况,供相关人员 了解,以加强配置管理工作。 2、需要跟踪捕捉的状态报告信息可以是: 配置项的当前标识 已交付软件的配置 变更请求或问题报告的状态 已获准变更的状态(二)配置状态报告信息1、状态说明的实体关系2、状态说明数据词典配置项库(repository)库名库标识所有者范围/描述配置项(configuration item)库标识项标识项名描述项类型(源代码、测试计划等)配置项版本(configuration item version)库标识项标识版本号入库日期、时间与前版差异描述锁定状态检出与检入(check-ou
38、t & check-in) 库标识 项标识 出库版本号 出库负责人 出库日期及时间 实施的变更请求号 变更描述 入库版本号 入库负责人 入库日期及时间变更请求变更请求 (change request)(change request)变更请求号 软件版本号申请申请 *申请人 *申请日期 *变更部位 *变更优先性 *变更概述 *变更预期效果 *附件分析与审批分析与审批 *受影响工作项 *估计工作量投入 *成本 *其他影响 *假设 *效果 *分析日期 *分析人 *是否批准 *理由 *审批日期 *批准人 *发行版本 实施状态实施状态 *受影响的每一个工作项 库标识 项标识 变更描述 出库版本 出库日期
39、及时间 变更工作量 验证工作量 入库版本 入库日期及时间 *说明 *变更结束日期及时间 *变更结束负责人发行(release) 发行版本 发行日期 目的 创建时间发行配置项及版本号 库标识 项标识 项名称 概述 项类型(源代码 、测试计划等) 版本号 备份 备份号 备份日期 备份人 目的 介质备份配置项 库标识 项标识备份配置项版本 库标识 项标识 版本号 3、定期提交的配置状态报告的内容示例各份变更请求概要:变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期基线库状态:库标识、至某日预计库内配置项数、实际配置项数发行信息:发行版本、计划发行时间、实际发行时间、说明
40、备份信息:备份日期、介质、备份存放位置配置管理工具状态配置管理培训状态八、软件配置管理工具(一)手工方法实施软件配置管理存在的问题1、由于认识和理解的局限性,缺乏远见和坚定性2、规程过于繁琐3、可能出现人为的失误4、个别人可能持逆反心理5、必须作充分培训6、对人员的依赖性较大(二)采用工具支持配置管理的自动方法采用工具可能有如下的好处 减少了人为因素 节省人工实施配置管理所花费的时间 发生配置问题的机会较少 程序人员可集中精力在自己的工作中,不必担心配置问题(三)采用配置管理工具的经济考虑购置工具软件的成本培训成本改变工作方式的代价两条建议首先采用手工方法更为直观,积累经验,提高认识采购配置管
41、理工具时应慎重选择uClearCaseClearCase主要应用于复杂产品的并行开发、发布主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:和维护,其功能划分为四个范畴:版本控制、版本控制、工作空间管理(工作空间管理(Workspace ManagementWorkspace Management)、)、 构造管理(构造管理(Build ManagementBuild Management)、)、过程控制(过程控制(Process ControlProcess Control)。)。ClearCaseClearCase通过通过TCP/IPTCP/IP来连接客户端和服务器。来连接客
42、户端和服务器。Visual SourceSafeVisual SourceSafe uVisual Visual SourceSafeSourceSafe是是MicrosoftMicrosoft公司推出公司推出的配置管理工具,是的配置管理工具,是Visual StudioVisual Studio的套件的套件之一。之一。VSSVSS的简单工作原理的简单工作原理 将项目所有的将项目所有的源文件源文件(包括各种文件类型)以特有的(包括各种文件类型)以特有的方式存入数据库方式存入数据库; ; 客户端将程序拷贝到各自的客户端将程序拷贝到各自的工作目录下工作目录下进行调试修改,进行调试修改,然后进行然后
43、进行CheckinCheckin到服务器,进行综合更新到服务器,进行综合更新; ; 支持支持多个项目多个项目之间文件快速高效的共享之间文件快速高效的共享; ; 每个成员对项目文件所作的修改将被记录到数据库中每个成员对项目文件所作的修改将被记录到数据库中; ; VSSVSS可以很容易地与可以很容易地与Microsoft AccessMicrosoft Access、 Visual Visual BasicBasic、 Visual C+Visual C+、Visual FoxProVisual FoxPro和其他的开发和其他的开发工具集成在一起工具集成在一起. .SourceSafe的优点可以用
44、的优点可以用8个字来概括个字来概括“简单易简单易用,一学就会用,一学就会”。 SourceSafeSourceSafe的的主要局限性主要局限性:1.1. 只能在只能在WindowsWindows下下运行,不能在运行,不能在Unix, LinuxUnix, Linux下运行。下运行。SourceSafeSourceSafe不支持异构环境下的配不支持异构环境下的配置管理,对用户而言是个麻烦事。这不是技置管理,对用户而言是个麻烦事。这不是技术问题,是微软公司产品战略决定的。术问题,是微软公司产品战略决定的。2.2. 适合于适合于局域网内局域网内的用户群,不适合于通过的用户群,不适合于通过Intern
45、etInternet连接的用户群,因为连接的用户群,因为SourceSafeSourceSafe是是通过通过“共享目录共享目录”方式存储文件的。方式存储文件的。 Rational 软件配置管理最佳经验软件配置管理最佳经验 使用统一变更管理使用统一变更管理 (Unified Change Management)介绍介绍旨在提高软件开发质量旨在提高软件开发质量和生产率的一整套组织和生产率的一整套组织化和文档化的原理、方化和文档化的原理、方法和流程法和流程什么是软件最佳经验什么是软件最佳经验? ?在软件开发组织经证明的在软件开发组织经证明的管理变更管理变更: : 问题问题分析人员分析人员项目经理项目
46、经理Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251NewcustomertransactionBug348集成人员集成人员测试人员测试人员开发人员开发人员Build3Build2Build1管理变更管理变更: : 问题问题Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251NewcustomertransactionBug348Build3Buil
47、d2Build1分析人员分析人员项目经理项目经理集成人员集成人员测试人员测试人员开发人员开发人员?Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251NewcustomertransactionBug348活动与工件活动与工件变更活动与工件变更活动与工件如何结束这一循环如何结束这一循环? ?Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251Newcus
48、tomertransactionBug348活动与工件活动与工件变更活动与工件变更活动与工件多个工件集成在基线多个工件集成在基线中中人根据活动人根据活动 ( (如变更请求如变更请求) )进进行工作行工作变更管理变更管理如果你能如果你能: : 知道在一个构建中修复了哪些缺陷知道在一个构建中修复了哪些缺陷? ? 快速确定一个新构建中的不同点快速确定一个新构建中的不同点? ? 快速重构一个先前的发布版本快速重构一个先前的发布版本? ? 确切地知道要测试什么确切地知道要测试什么? ? 在任何时候立即了解项目进度在任何时候立即了解项目进度? ? 确切地知道两条基线之间的差别确切地知道两条基线之间的差别?
49、 ? 知道你的产品什么时候可以推向市场知道你的产品什么时候可以推向市场? ?统一变更管理是基于活动的统一变更管理是基于活动的工件工件活动活动根据计划来实施活动根据计划来实施活动并跟踪项目状态并跟踪项目状态在整个开发生命周期在整个开发生命周期所产生的成果所产生的成果配置管理的十大最佳经验配置管理的十大最佳经验1. 在安全的存储库中进行工件的标识和存储在安全的存储库中进行工件的标识和存储2. 控制并审计对工件的变更控制并审计对工件的变更3. 将工件组织为版本化的构件将工件组织为版本化的构件4. 在项目里程碑创建基线在项目里程碑创建基线5. 记录并跟踪变更请求记录并跟踪变更请求6. 使用活动来组织和
50、集成使用活动来组织和集成7. 维护稳定和一致的工作空间维护稳定和一致的工作空间8. 支持对构件的并行开发支持对构件的并行开发9. 尽早和经常进行集成尽早和经常进行集成10.确保软件构建的再现性确保软件构建的再现性在安全的存储库中进行工件的在安全的存储库中进行工件的标识和存储标识和存储 标识对哪些工件进行版本管理标识对哪些工件进行版本管理 源代码源代码 对象代码对象代码, 数据数据 Web 内容内容 在生命周期其他点上产生的工件在生命周期其他点上产生的工件 文档和图象文档和图象 模型和设计规范模型和设计规范 需求和测试用例需求和测试用例 存储工件的存储库必须具备可访存储工件的存储库必须具备可访问
51、性,可扩展性,分布处理能力问性,可扩展性,分布处理能力以及容错性以及容错性1控制并审计对工件的变更控制并审计对工件的变更 确定对不同类型工件的存取访问控制并确定对不同类型工件的存取访问控制并控制具体的访问控制具体的访问 对工件发生的变更进行审计对工件发生的变更进行审计 什么样的变更什么样的变更? ? 谁进行的变更谁进行的变更? ? 什么时候发生的变更什么时候发生的变更? ? 为什么要进行变更为什么要进行变更? ?2将工件组织为版本化的构件将工件组织为版本化的构件 使用基于构件的体系结构是使用基于构件的体系结构是RUP 中的一个最佳中的一个最佳经验经验 减少复杂性减少复杂性 有利于共享和重用有利
52、于共享和重用 在在 SCM 中使用构件有助于将逻辑设计和物理中使用构件有助于将逻辑设计和物理实现紧密结合在一起实现紧密结合在一起 提供了更加智能的创建和使用提供了更加智能的创建和使用 SCM 基线的机基线的机制制System3UserSrvcsAdmin在项目里程碑创建基线在项目里程碑创建基线 基线记录了一个构件中所有工件的一基线记录了一个构件中所有工件的一个单一版本个单一版本 将不同构件的基线组合起来可以进行更将不同构件的基线组合起来可以进行更大系统的构造大系统的构造 至少应在每次迭代后创建基线,但实至少应在每次迭代后创建基线,但实际上基线的创建要更频繁际上基线的创建要更频繁 基线的好处基线
53、的好处 再现性再现性 可跟踪性可跟踪性 报告报告4管理高层对象管理高层对象 更好地表示你的软件架构更好地表示你的软件架构 直接可用的流程直接可用的流程文件文件目录目录标签标签构建构建xxxxUCMProcessRationalClearQuestRationalClearCase管理高层对象管理高层对象 更好地表示你的软件架构更好地表示你的软件架构直接可用的流程直接可用的流程文件文件目录目录标签标签构建构建xxxx构件构件子系统子系统基线基线UCMProcessRationalClearQuestRationalClearCase记录并跟踪变更请求记录并跟踪变更请求变更请求会有多种形式并且来自
54、变更请求会有多种形式并且来自不同的地方不同的地方 内部及外部错误报告内部及外部错误报告 来自市场及工程部门的功能增强来自市场及工程部门的功能增强请求请求 需求需求, , 设计设计, , 及文档变更请求及文档变更请求必须对变更请求进行管理和跟踪必须对变更请求进行管理和跟踪理想地,你应该可以跟踪变更请理想地,你应该可以跟踪变更请求以及实现该请求而产生的变更求以及实现该请求而产生的变更Bug98AddpromotioncalculationBug179NewGUIbuttonNewplatformNewwebdesignBug849Bug527Bug251Newcustomertransaction
55、Bug3485使用活动来组织和集成使用活动来组织和集成 如果变更不从逻辑上进行组织,基于文件的版本控制如果变更不从逻辑上进行组织,基于文件的版本控制是相当琐碎并容易产生错误是相当琐碎并容易产生错误 活动包含了实现活动的变更集以及其他活动属性活动包含了实现活动的变更集以及其他活动属性 使用活动进行变更组织的好处使用活动进行变更组织的好处 更接近自然的工作方式更接近自然的工作方式 提供了对错误和项目管理的逻辑链接提供了对错误和项目管理的逻辑链接 对手工工作进行了自动化对手工工作进行了自动化1.FixBug6712.SpecialPromo3.FixBug829ToDoList6维护稳定和一致的工作
56、空间维护稳定和一致的工作空间 工作空间使用户方便地访问与给定任务工作空间使用户方便地访问与给定任务相关的构件相关的构件 用户可以均衡下面两个方面用户可以均衡下面两个方面: : 同其他用户共享工作同其他用户共享工作 同其他用户的工作隔离同其他用户的工作隔离 生产率同稳定性成正比生产率同稳定性成正比7 串行开发可能是理想的,但今天这种方式串行开发可能是理想的,但今天这种方式既不有效也不实用既不有效也不实用 开发人员不应等待其他开发人员的工作完开发人员不应等待其他开发人员的工作完成成 隔离的配置是进行有效并行开发的关键隔离的配置是进行有效并行开发的关键 分支是相当重要的分支是相当重要的 合并甚至会更
57、重要合并甚至会更重要支持对构件的并行开发支持对构件的并行开发321321410382尽早和经常进行集成尽早和经常进行集成 项目都面临着集成和隔离的矛盾项目都面临着集成和隔离的矛盾 在两者之间求得平衡是成功的关键在两者之间求得平衡是成功的关键 开发人员应该总是可以控制自己的工作空间开发人员应该总是可以控制自己的工作空间 管理人员和集成人员必须在不牺牲个人生产率的前提下用一管理人员和集成人员必须在不牺牲个人生产率的前提下用一种可靠、可行的方式使开发人员同项目的进度保持一致种可靠、可行的方式使开发人员同项目的进度保持一致 较晚或不经常进行集成会不利于迭代,进而引发更多较晚或不经常进行集成会不利于迭代
58、,进而引发更多风险风险有效的并行开发需要隔离有效的并行开发需要隔离过度隔离可能会造成集成恶梦过度隔离可能会造成集成恶梦9确保软件构建的再现性确保软件构建的再现性 构建应当是可进行全面审计的构建应当是可进行全面审计的 内容内容 时间时间 谁谁 不同构建之间的比较可以在不不同构建之间的比较可以在不进行大范围调试的情况下轻易进行大范围调试的情况下轻易发现问题所在发现问题所在 从上次构建以来发生了哪些变更从上次构建以来发生了哪些变更? ? 我们使用了相同的方式来进行系我们使用了相同的方式来进行系统构建吗统构建吗? ?我们使用了不同工具或我们使用了不同工具或不同选项进行系统构建吗不同选项进行系统构建吗?
59、 ?10配置管理十大最佳经验配置管理十大最佳经验1.1. 在安全的存储库中进行工件的标识和存储在安全的存储库中进行工件的标识和存储2.2. 控制并审计对工件的变更控制并审计对工件的变更3.3. 将工件组织为版本化的构件将工件组织为版本化的构件4.4. 在项目里程碑创建基线在项目里程碑创建基线5.5. 记录并跟踪变更请求记录并跟踪变更请求6.6. 使用活动来组织和集成使用活动来组织和集成7.7. 维护稳定和一致的工作空间维护稳定和一致的工作空间8.8. 支持对构件的并行开发支持对构件的并行开发9.9. 尽早和经常进行集成尽早和经常进行集成10.10.确保软件构建的再现性确保软件构建的再现性UCM
60、 对象介绍对象介绍GUIFeatureNewPromoDefect3452 活动活动(Activities)4 所有变更均同活动相关所有变更均同活动相关4 自动收集变更集自动收集变更集BL1 基线基线(Baselines)4 表示整个构件的版本表示整个构件的版本4 支持可配置的提升级别支持可配置的提升级别 流流(Streams)4 定义关于版本的一致性配置定义关于版本的一致性配置4 提供了隔离与共享之间的平衡提供了隔离与共享之间的平衡 构件构件(Components)4 将构成子系统的相关工件进行组织将构成子系统的相关工件进行组织4 基线操作的基本单位基线操作的基本单位CB提升了抽象层次提升了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《市场营销岗位介绍》课件
- 《创造创新方法概论》课件
- 护理服务全过程案例运用
- 《胃炎胃溃疡》课件
- 三年级上册科学教科版课件《天气预报是怎样制作出来的》
- 外贸合同范本(2篇)
- 《石油和天然气》课件
- 2024年辽宁省葫芦岛市公开招聘警务辅助人员(辅警)笔试必刷经典测试卷(2)含答案
- 2021年黑龙江省黑河市公开招聘警务辅助人员(辅警)笔试专项训练卷(1)含答案
- 2024-2025学年山东省济宁市梁山县人教版四年级上册期中考试数学试卷(原卷版)-A4
- 《生命 生命》课堂记录观察表
- 汽轮机安装工程工序流程图
- 新教科版五年级科学下册课件2.5给船装上动力
- 基坑安全监测~个人年终总结
- 手术质量与安全监测分析制度
- A9.安规设计规范
- 消防安全操作规程
- 建筑装饰施工组织与管理教学大纲
- 衬里工业管道施工工艺标准
- 号间冷塔冷却三角组合及安装作业指导书
- 突发公共卫生事件处理流程图
评论
0/150
提交评论