软件配置管理_第1页
软件配置管理_第2页
软件配置管理_第3页
软件配置管理_第4页
软件配置管理_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件配置管理SCM-Software Configuration Management-概念、方法与任务主讲:郑人杰2001年8月目 录1. 什么是配置管理2. 软件配置管理计划3. 软件配置标识4. 变更管理5. 版本管理和发行管理6. 配置审核7. 配置状态报告8. 软件配置管理工具9. 结论参考:国家标准GB/T 12505-90计算机软件配置管理计划规范 配置(Configuration)一词在其它领域中已有广泛的应用,只不过称呼有所不同,但都有其确切的含义。如原子结构的形态和组态,控制系统的配置以及计算机系统的配置等等。许多领域也把配置称为技术状态。1,什么是配置管理什么是配置管理C

2、onfiguration Management(1)(1)几种说法几种说法ISO9000-3的4.8中给出:配置管理是一个管理学 科,它对配置项(包括软件项)的开发和支持生 存期给予技术上和管理上的指导。配置管理的应 用取决于项目的规模、复杂程度的风险大小。W.Babich认为,软件配置管理能协调软件开发,使 得混乱减少到最小。软件配置管理是一种标识、组 织和控制修改的技术,目的是最有效地提高生产率。GB/T 11457:1995(软件工程术语)对配置管理的解释: A.标识和确定系统中配置项的过程,在系统整个生存 周期内控制这些项的投放和更动,记录并报告配置 的状态和更动要求,验证配置项的完整

3、性和正确性。 B.对下列工作进行技术和行政指导与监督的一套规范: 对一配置项的功能和物理特性进行标识和文件编 制工作; 控制这些特性的更动情况; 记录并报告对这些更动进行的处理和实现的状态。(2)(2)什么是软件配置项什么是软件配置项 (Software Configuration Item)含义:配置管理的对象,软件工程过程产生的所有 信息项。包括:计算机可执行的源代码、目标码、数据库 计算机不可执行的文档、源程序清单、测试用例。管理的产品(ISO9000-3的4.8) 与合同、过程、计划和产品有关的文档和数据; 源代码、目标代码和可执行代码; 相关产品,包括:软件工具、包括库在内的可复 用

4、软件、外购软件和用户提供的软件。软件配置:所有以上产品在不同时期,出于不同要 求的组合,该组合随着开发工作的进展而不断演化。 可以说,软件配置是指一个软件产品在软件生存期 各阶段的不同形式(机器可读或人工可读)和不同 版本的文档、程序及其数据的集合。该集合中的每 一个元素称为该软件产品软件配置中的一个配置项。 如它可以是针对不同的硬件环境及软件环境的组合。 例如,图1表示某一软件产品的初始系统展开出各种 版本。配置标识(Configuration Identification) 配置标识包含了确定产品结构,选择配置项,将配 置项的物理特性和功能特性以及接口和随后的变更 形式文件,为配置项及相应

5、文件分配标识符或编码 的活动。(3)(3)软件配置管理的任务软件配置管理的任务制定配置管理计划确定标识规则实施变更控制配置状态报告配置审核发行管理和版本管理 总之,软件配置管理是软件质量管理的一部分。它是对软件生存期过程中的各种阶级产品和最终产品演化或变更的管理。因此有人概括地说,软件配置管理是要解决软件地标识变更、控制变更和发布变更的问题。 表1给出了国际标准ISO/IEC软件生存期过程中规定的软件配置管理过程的活动和任务。2,软件配置管理计划软件配置管理计划 原则上,软件配置管理计划是软件开发计划的一个组成部分。按国家标准GB/T 12505-90计算机软件配置管理计划规范的规定,软件配置

6、管理计划应包括以下重要内容:明确规定负责软件配置管理的机构及其任务、职责 和有关接口的控制。要开展的配置管理活动,涉及到: 配置标识 配置控制,即变更控制 配置状态的记录和报告 配置审核和评审配置管理所采用的工具、技术和方法。上述国家标准还附有软件配置管理计划的示例和配置管理报表及其格式。信息技术软件生存周期过程中规定的软件配置管理过程活动任务解释1.过程实施 开发配置管理计划 计划描述:配置活动、这些活动的规程、进度、配置管理组织及与其它组织的管理 计划应形成文件2.配置标识 规定标识规则 以控制软件项及其版本 标识内容包括:基线文档、版本基准号、其它。3 3。配置控制 标识并记录变更申请

7、分析与评价变更 批准(或不批准)申请 实现、验证和发行已变更 的软件项 审核跟踪变更 控制并审核受控制软件项 跟踪变更原因、变更授权 以保证重要功能的安全或保密4.配置状态报告 编制管理记录和状态报告 表明受控项(包括基线)的状态和历史 状态报告应包括变更号、最新版本、发行标识、版本号及各版本比较5.配置评价 确定和保证软件项的功能完整性、物理完整性6.发行管理和交付 有效控制软件产品和文档的发行和交付 在产品的生存期内保存代码、文档的主拷贝包含重要的安全或保密功能的代码和文档应按组织的方针处理、储存、包装和交付3,软件配置标识软件配置标识(1)(1)确定配置项确定配置项大型软件项目在其开发过

8、程中可能产生数十各,上百个,甚至上千个文档,其中有技术性的,也会有不少管理性的。技术性文档是在不断地变更着,依它们又是下个阶段工作的依据。管理性的如计划书、建议书、会议录、备忘录等等,也是需要认真保管好的,但需要加以区分,例如项目计划、需求规格说明、设计规格说明、源程序、测试数据等更为重要,被称为正式文档。确定配置项就是要从中做出选择,决定哪些是受控的,称之为配置项。图2给出了一个软件配置的层次图,表2则列出了R.S.Pressman 推荐的软件配置项清单。(2)(2)制定命名规则制定命名规则配置标识的一项重要工作就是为配置项命名。合理的命名将有利于管理,使之不致造成混乱。命名的要求是唯一性(

9、不允许多个配置项命名)和可追溯性(即命名能够反映各配置项之间的相互关系,可追溯到相关的配置项)。(2)(2)树状(层次式)命名规则树状(层次式)命名规则例:图3表明一个树状命名为了表明树结构中的叶结点CODE,需以根结点起,逐层连贯,直至该叶结点:PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/CODE显然,这一命名方法是唯一,可追溯的,但在层次较多时,显得不够简洁。1,系统规格说明2,软件项目计划3,软件需求规格说明 a. 图形分析模型 b. 处理规格说明 c. 原型 d. 数学规格说明4,初步用户手册5,设计规格说明 a. 数据设计描述 b. 体系结构

10、设计描述 c. 模块设计描述 d. 接口设计描述 e. 对象描述(采用面向对象技术时)6,源代码清单7,测试规格说明 a. 测试计划和步骤 b. 测试用例和记录的结果8,操作和安装手册9,可执行程序 a. 模块可执行代码 b. 链接的模块10,数据库描述 a. 模式和文件结构 b. 初始内容11,联机用户手册From:Roger S.PressmanSoftware Engineering APractitioners ApproachFourth Edition, McGraw-Hill12,维护文档 a. 软件问题报告 b. 维护请求 c. 工程变更指令13,软件工程标准和规程4,变更管理

11、变更管理(1)(1)配置数据库配置数据库作用: a. 用于记录与配置相关的所有信息 b. 评价系统变更的后果 c. 提供配置管理过程的管理信息三类库 开发库(Development Library) 专供开发人员使用,其中的信息会频繁修改,对其控制相当宽松。 受控库(Controlled Library) 在生存期某一阶段的工作结束时,存放阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息。 软件配置管理就是对受控库中的各个软件项进行管理,也称软件配置管理库。 产品库(Product Library) 在被开发的软件产品完成系统测试后,作为最终产品存放,等待交付用户运行或现场安

12、装。典型的数据库查询问题 哪些客户已提取了某个特定的系统版本? 运行一个给定的系统版本需要什么硬件和操作系统? 一个系统已生成了多少个版本,何时生成的? 若某个特定的组件变更了,会影响到系统的哪些版本? 一个特定的版本有哪几个变更请求是最为重要的? 一个特定的版本有多少已报告的错误?(2)(2)基线与变更控制基线与变更控制开发过程中的变更不可能完全避免a) 变更的来源:变更如果来自用户,即开发过程中用户提出变更要求,这应该由CMM的2级KPA:需求管理加以解决。变更如果来自开发一方,如开发人员要修改以前已确定的技术方案或设计细部;或者是管理人员要修改以前已确定的项目方案,就应由变更控制加以解决

13、。b) 变更的原因:随着开发工作的进展,人们掌握了更多的信息,或是对问题和方案有了更为深刻的认识,通常提出的变更有其理由,如经由控制的采纳,可能会使项目的开发趋于合理。c) 变更管理的任务: 分析变更: 研究变更的重要性以及经济可行性(成本-效益)和技术可行性. 记录及追踪变更 保证变更在受控状态下进行基线(baseline)a) 基线是软件生存期各开发阶段末尾的特定点,也称为里程碑(milestone)。在这些特定点上阶段工作已经结束,并已经取得的正式的阶段产品。建立基线的概念是为了把各开发阶段的工作划分的更加明确,使连续的开发工作在这些点上断开,使之利于检验和肯定阶段成果。对于变更控制来说

14、,原则上规定,不允许跨越里程碑运河修改另一阶段的成果,认为该成果已告“冻结”。图4给出了软件开发各阶段的配置基线,箭头指向各阶段得到的工作产品。计划需求分析设计编码测试计划基线需求基线设计基线编码基线测试基线项目开发计划需求规格说明用户手册设计规格说明程序清单测试报告b) 为实施配置管理通常使用以下三种基线:功能基线最初通过的功能配置:功能基线是指在系统分析和软件定义阶段结束时,经过正式评审和批准的系统设计规格说明中对被开发软件系统的规格说明;或者是指经过项目委托单位和项目承办双方签字同意的协议书或合同中所规定的对被开发软件系统的规格说明;或是指由下级申请及上级同意或直接由上级下达的项目任务书

15、中所规定的对待开发软件系统的规格说明。分配基线分配基线是指在软件需求分析阶段结束时,经正式评审和批准的软件需求规格说明。产品基线产品基线是指在软件组装与系统测试阶段结束时,经正式评审和批准的有关所开发的软件产品的全部配置项的规格说明。(3) (3) 变更控制变更控制变更请求:提出变更请求表(Change Request Form)项目名- 变更请求人- 日期- 编号-要求的变更描述-变更分析员- 分析日期-受影响模块-变更评估-变更优先性-变更实现-估计工作量-CCB收到日期- CCB决定日期-CCB决定-变更实施负责人- 变更日期-递交QA日期- QA决定-递交CM日期-表中:CCB是变更控

16、制委员会(Change Control Board) QA是质量保证组(Quality Assurance) CM是配置管理组(Configuration Management)变更管理过程按表4进行记录变更 a)将CRF作为配置项在数据库中登录 b)在变更了的模块代码上作变更记录,以反应变更的 实际情况,如表5所示。提交变更请求表CRF分析变更请求如果 变更能成立 则 估计变更如何实现 估算变更成本 将CRF送交CCB 如果 变更获准 则 重复 实施变更 记录变更 将变更的软件提交QA审查 直到 软件质量达到要求 由CM人员生成系统的新版本 否则 拒绝变更请求 否则 拒绝变更请求/PROTE

17、US Project (ESPRIT)/PCL_TOOLS/EDIT/FORMS/DISPLAY/AST_INTERFACE/Object: PCL_TOOL_DESC/作者:陈*/开发日期:1997.06.20/版权归属:清华同方软件与系统集成公司/变更记录/ 变更 变更负责人 日期 变更概要 变更理由/ 1.0 王* 98.1 * */ 1.1 李* 98.8 * *5,版本管理和发行管理版本管理和发行管理(1) (1) 版本管理是对系统不同版本进行标识和跟踪的过程。版本管理是对系统不同版本进行标识和跟踪的过程。版本标识的目的是便于对版本进行检索和跟踪,显 示各版本的关系。一个版本是软件系

18、统的一个实例,在功能和性能上 与其他版本有所差别,或是修正了前一版本的不足。有些版本在功能上等价,但分别适用于不同的硬件 配置。如果两个版本只有少量的差异,则互相称为变体 (Variant)例:某软件的一个版本由5个组件构成,其中:组件4适用于彩色显示器组件5适用于单色显示器则它的两个版本,或称两个变体是Version 1: 组件1,2,3,4Version 2: 组件1,2,3,512345图5 变体示例版本管理可用软件工具支持,例如: RCS,SCCS,PVCS Version Manager(2) (2) 系统发行是分配给客户的一个版本,每次系统发行系统发行是分配给客户的一个版本,每次系

19、统发行 都应有新的功能或是针对不同的硬件平台。都应有新的功能或是针对不同的硬件平台。通常软件系统的版本数要比发行次数多,因为有的 版本并未发行,例如,有的版本仅供公司内部使用 或专供测试等。一次发行不仅是一个可执行程序,它还应包括:* 配置文件:规定发行应作的特定安装* 数据文件:系统运行所需的数据* 安装程序:系统如何安装到目标机上* 电子文档或书面文档:对系统的描述(3) (3) 版本标识版本标识版本的命名规则版本的命名规则号码版本标识 a) 线型1.01.11.0图6 号码版本标识b) 系统发行一般提供的是基础版,即1.0, 2.0 3.0等c) 问题: 不易区分新版本和新发行 若前一版

20、本声出了多个新版本,怎么编号 实际情况并非线型的,如图7所示V1.0V1.1V1.1aV1.1bV1.2V1.1.V2.0V2.1V2.2图7 非线型版本顺序符号命名版本标识* 不用V1.1.2形式,而用V1/VMS/DB Server表示一个 在VMS操作系统上运行的数据库服务器版本* 优点示能够反映出版本的特性,比线型命名好,但 仍不能完全反映导出的真实情况属性版本标识版本标识中反映的属性有: 客户、开发语言、开发状态、硬件平台、生成日期* 每个版本都由唯一的一组属性标识,即一组唯一的 属性值* 好处:容易加入新版本 版本间关系容易保持 易于检索,如问:“最近生成的版本”、“在两 个指定日

21、期间生成的版本”。(4) (4) 发行管理发行管理新版本与新发行 新版本:修改报告出的软件缺陷,开发新的代码, 构成新系统。 新发行:除开发新代码,构成新系统外,还要为客 户准备数据、配置文件、写新文档、作包 装。比新版本开销大。三种维护工作后,配置管理人员都要分析变更影响 的组件,确定何时生成新系统,何时作系统发行。通常系统改动越多,可能引入的错误越多,这就必 须在下次发行时解决。为把出现问题的机会分散开, 往往把修补性变更后的发行与系统变更功能的发行 交叉起来,如图8所示增强性发行增强性发行增强性发行增强性发行增强性发行图8 交叉的发行示例6,配置审核配置审核(Configuration

22、Audit)(1) (1) 什么是配置审核什么是配置审核尽管已对软件配置项作了标识,实施了变更控制和版本控制,就不会发生混乱了吗?软件开发的实践表明,仍然会出问题。为解决这些问题,通常采用两个方法,即正式技术评审:对所用的变更逐一检查一致性、遗 漏、副作用。软件配置审核:作为评审的补充。(2) (2) 配置审核提出的问题配置审核提出的问题已确定的变更完成了吗?有没有做任意附加的修改?是否进行了正式的技术评审,以便评估技术的正确 性?是否遵循了软件工程标准?所作的变更是否遵循了软件配置管理规程?任一变更可能涉及到其他软件配置项,是否也相应 作了变更? 这些问题也可能在评审时提到,但若将配置管理作

23、为一项正式活动,配置审核应由质量保证组(QA)单独进行。7,配置状态报告(配置状态报告(Configuration Status Reporting)(1) (1) 什么是配置状态报告什么是配置状态报告配置状态报告(也称Status Accounting)的目的时及时、准确地给出软件配置项的当前状态,供相关人员了解,以加强配置管理工作。相当于照片。配置状态报告可能提供的信息包括:当前作了哪些变更?谁参与了这些变更?何时作的变更?可能影响的范围是哪些?报告可以定期提供,也可放如联机数据库中。(2) (2) 配置状态报告适用于大型软件项目,供管理者、开发配置状态报告适用于大型软件项目,供管理者、开发者了解变更状况,防止出现:者了解变更状况,防止出现:“右手不知左手在做什么”:两人以互相矛盾的意图变更同以软件配置项。预见到可能的变更会有严惩的副作用,但他不知变更已在进行。解决人员之间通信障碍。(3) (3) 配置状态报告的信息流配置状态报告的信息流图给出了配置状态报告信息流。配置状态报告取自软件配置项信息、配置变更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论