软件配置管理办法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SCM 中的专业术语
❖ 配置(Configuration)与配置项(Configuration Item)
❖ 在软件开发过程中生成各种制品的总和叫做这个 项目的软件配置 [Roger S. Pressman, 1997] ▪ 计算机程序,包括源代码和可执行程序 ▪ 与计算机程序相对应的各种文档 ▪ 计算机数据,包括计算机程序中包含的数据和 系统初始化数据
企业的商业需求决定了配置管理的力度, 我们不必追求完美无缺的配置管理,而是 让开发团队恰好够用就行,并将为配置管 理所付出的代价控制在预算之内。
富有成效的配置管理的特征:
1. 任何项目成员都要对其工作成果进行配置管 理,应当养成良好的习惯。不必付出过多的 精力,最低要求是保证重要工作成果不发生 混乱。
IEEE的配置管理定义
IEEE标准729-1983就配置管理的内容进行了规范的定义: (1)标识:识别产品的结构、产品的构件及其类型,为其分配唯一的 标识符,并以某种形式提供对它们的存取。 (2)控制:通过建立产品基线,控制软件产品的发布和在整个软件生 命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的 最新版本中实现的问题。 (3)状态统计:记录并报告构件和修改请求的状态,并收集关于产品 构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文 件的问题。 (4)审计和审查:确认产品的完整性并维护构件间的一致性,即确保 产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所 用的文件的版本是否正确的问题。 (5)生产:对产品的生产进行优化管理。它将解决最新发布的产品应 由哪些版本的文件和工具来生成的问题。 (6)过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻 执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。 (7)小组协作:控制开发统一产品的多个开发人员之间的协作。例如, 它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品 中的问题。
在没有出乱子的情况下,执行版本 控制看起来有些麻烦。
每次修改工作成果的时候,总是 先check out,然后再修改,最后还要 check in,多了前后两步。
❖ SCM目的是保证软件项目生成的产品在软件生命周期 中的完整性和一致性.
❖因为变化可能发生在任意时间,SCM 活动被设计来: (1)标识变化; (2)控制变化; (3)保证变化被适当地实现; (4)向其他可能有兴趣的人员报告变化。
❖ 软件配置管理使改进变化可以更容易地被适应,并 减少当变化必须发生时所需花费的工作量。
❖ 明确地区分软件维护和软件配置管理是很重要的。
❖ 维护是发生在软件已经被交付给客户,并投入运行 后的一系列软件工程活动,而软件配置管理则是当 软件项目开始时就开始,并且仅当软件退出运行后 才终止的一组跟踪和控制活动。
配置管理与任何一位项目成员都有关系,因 为每个人都会产生工作成果。
配置管理是否有成效取决于三个要素:人、 规范、工具
件制品的修改和更新 ▪ 维护软件开发过程中的各种制品的一致
性和可跟踪性
SCM 的目标
❖ 目标1: 软件配置管理活动被定义和计划 ❖ 目标2: 软件开发过程中的制品被识别、控制
和管理 ❖ 目标3: 对于处于配置管理下的软件制品的修
改被控制 ❖ 目标4: 与软件制品相关的项目组和成员应该
被通知制品的目前状态和被修改的信息
配置管理功能概述
CMM2的定义比百度文库抽象,IEEE的定义比较具体。结 合各体系的定义和要求,我们下面具体来讨论配 置管理的概念。
SCM的四大功能领域
配置标识或者又称为配置需求,包括标识软件系统的结构,标识独立 部件,并使它们是可访问的。配置标识的目的,是在整个生命周期中 标识系统各部件并提供对软件过程及其软件产品的跟踪能力。它回答: 什么是受控的? 配置变更控制包括在软件生命周期中控制软件产品的发布和变更,目 的是建立确保软件产品质量的机制。它回答:受控产品怎样变更?谁 控制变更?何时接受,恢复,验证变更? 配置状态统计包括记录和报告变更过程,目标是不间断记录所有基线 项的状态和历史,并进行维护,它解决以下问题:系统已经做了什么 变更?此问题将会对多少个文件产生影响?配置变更控制是针对软件 产品,状态统计针对软件过程。因此,二者的统一就是对软件开发 (产品、过程)的变更控制。 配置审核将验证软件产品的构造是否符合需求、标准、或合同的要求, 目的是根据SCM的过程和程序,验证所有的软件产品已经产生并有正 确标识和描述,所有的变更需求都已解决。它回答:系统和需求是否 吻合?是否所有变更都是在版本控制下?
❖基线
▪ 项目开发过程的制品经过正式评审并被相关人员 一致同意,可以作为以后项目开发的基础。对已 经确定为基线的制品的修改必须要通过正式的变 更控制流程。
▪ 在软件工程环境中,基线是指在软件开发过程中 的里程碑,这些里程碑的标志是一项或多项经过 正式的技术评审并一致认同的软件制品的提交。
❖ 配置数据库(软件制品基线库)
多数情况下新的内容比老的内容好 ,覆盖了也没关系。但是总有不少意 外,例如程序员修改了老程序员之后 ,突然发现新程序是错误的,而老程 序却是对的,可是老程序被新程序覆 盖了,再也无法恢复。
–怎么办呢?还能怎么办,只好重新写老 程序再覆盖新程序,可是过一阵子又发 现新程序也又可取之处,这时却无法恢 复新程序了,只好重新写新程序再覆盖 老程序,…如果你经常碰到这样的事情 ,你会发疯的。
2.文档化的已获批准的软件配置管理计划可 用作以后软件配置管理活动的基础;
3.软件配置管理库已经创建,并可用作进入 基线的软件制品的存贮库;
4.处于软件配置管理下的软件制品被标志和 识别;
5.对于配置项的变更请求和问题报告被初始 化、计划、评审、批准并根据文化化的流 程对其进行跟踪;
CMM 中对SCM 规定的活动
如今硬盘的存储空间价格低廉,用于 保存历史版本的存储空间的成本可以忽 略不计。
如果你保存了工作成果的100个历史版 本,哪怕99版本都是“垃圾”,只有一 个版本里有“黄金”,那也值了。
所以你尽管放心保存历史版本好了, 累的是计算机又不是你,你怕什么。
间接的好处是,项目的所有工作成果被 完整地保留下来,这是企业的知识财富,可以 被人们很好地分享利用。而且减少了人员辞职 造成的损失,企业老板可以放心很多了。
6. 对于进入基线的制品的修改必须遵循文档化的 流程;
7. 发布的产品必须从软件配置库中取出,并且产 品发布的流程须依照文档化的流程和规定;
8. 根据文档化的流程和规定,软件配置项的状态 被记录和跟踪;
9. 记录软件配置管理活动和软件基线内容的报告 被建立,并通知受到影响的项目组和个人;
10.根据文档化的流程进行软件制品基线的评审;
2.协调和实现软件配置管理的组织已经建立; 3.为进行软件配置管理所需要的各项资源已经
分配; 4.软件配置管理组织里的成员已经接受了软件
配置目标、流程、方法方面的培训; 5.软件项目组或是其他的相关的部门经过培训,
可以执行他们的软件配置管理活动;
CMM 中对SCM 规定的活动
1.根据文档化的流程,项目软件配置管理计 划已准备完毕;
–因为如果没有配置管理的话,人走了, 即使他把成果刻录成光盘交给接收者, 别人也搞不清楚那些成果的演化过程。
事在人为
配置管理的方法是成熟的,而且相 应的软件工具也是成熟的,基本上 不存在看不懂、不会用的问题。
配置管理的执行效果如何,完全应 了中国的一句老话“事在人为”啊 。 妨碍配置管理的主要问题是人们 “嫌麻烦”(还有侥幸心理)。
不对软件项目进行配置管理,就没有进行软 件项目开发管理
CMM2的配置管理概念
软件配置管理是CMM2中6个关键过程域的第6 个关键域。CMM2认为,SCM 的目的是为了建 立和维护软件开发过程中各种制品的完整性 和一致性,包括以下内容:
▪ 对软件产品配置的标志和识别 ▪ 系统地控制对处于配置管理下的各种软
为了避免成果被覆盖,很多人采用最原 始的手工管理版本的方式,例如给文件加后 缀“-01”、“-02”以表示版本。天长日久, 工作目录下就会有一堆带数字后缀的文件, 而且你自己也忘记了数字后缀代表什么内容, 管理起来非常麻烦。
使用软件配置管理,将有什么好处?
最直接的好处是工作成果的所有版本 都被保留着,不会丢失也不会被覆盖, 你不会气得发疯了。
▪ 项目建立和访问软件制品库,这个制品库主 要用来对保存配置项和一些与软件配置管理 相关的记录。
▪ 目前比较好的配置管理工具:Clearcase (Rational), Notes/Domino (Lotus), PVCS (Merant) and VSS (Microsoft).
配置管理的商业理念
SCM 的目标
从对配置目的的定义可以看出,CMM2的配置管 理应包括这样一些活动:标识给定时间点的软 件配置(即所选择的工作产品及其描述),系 统地控制这些配置的更改,并在软件生命周期 中保持这些配置的完整性和可跟踪性。
CMM2认为,受控于配置管理的工作产品,包 括交付给用户的软件产品(如:代码等),以 及生成软件产品所需要的有关项(如:项目管 理文件)。
2. 配置管理规范应当清晰明了,便于执行,不 必在细节方面要求太多,不给项目人员添加 过多的负担,不使人厌烦。
如果没有软件配置管理,将有什么坏处?
最大的麻烦是工作成果被覆盖。 如果不采用配置管理软件来保存工作成果 的历史版本的话,人们在同一个文件上修改内 容,保存之后,那么新的内容覆盖了老的内容。
SCM的三个应用层次
SCM从应用层次上可以从低到高分为三级:版本控制、以开 发者为中心、过程驱动。 版本控制主要应用于个人独立开发或小组开发,它可以控 制任何文件的版本、实现分支和归并功能、进行文本比较、 标 记 注 释 和 版 本 报 告 信 息 , 主 要 工 具 有 MS 的 Visual SourceSafe及Intersolv PVCS。 以开发者为中心主要应用于部门级开发,它可用于软件维 护、不断增加的开发任务、并行开发、QA及测试,它面向 大型团队、利于交流、能最大限度地利用人力资源,主要 工具为Rational ClearCase及MKS Source Integrity。 过程驱动主要使用于企业级开发,着重解决新的工具引入、 IT审核、管理报告、复杂的生命周期、应用工具包、集成 解决方案、资料库等问题,实现真正规范的团队开发,主 要工具为Platinum Technology CCC/Harvest。
软件配置管理
软件配置管理
什么是软件配置管理
软件配置管理(Software Configuration Management, SCM)是指通过执行版本控制、变更 控制等规程,以及使用合适的配置管理软件,来保 证所有配置项的完整性和可跟踪性。配置管理是对 工作成果的一种有效保护。
❖ 软件配置管理(SCM)是贯穿于整个软件过程中的保护 性活动。
随着计算机软件的发展,软件开发已由最初 的“程序设计阶段”经历了“软件系统阶段” 进而演变为后来的“软件工程阶段”,软件 的复杂性日益增大。此时,如果仍然把软件 看成一个单一的个体,就无法解决所面临的 问题,于是配置的概念逐渐引入软件领域, 人们越来越重视软件配置的管理工作。
不懂软件项目的配置管理,就不懂软件开发 管理
组织规定和相关责任
❖ 项目级配置管理 ▪ 项目配置经理(Project Configuration Manager) 与软件配置管理计划 ▪ 变更控制委员会(Change Control Board)
❖ 组织级配置管理 ▪ 组织配置管理库(Organizational Configuration Management Cell) 1. 负责项目完成后的软件配置管理活动 2. 管理组织级的文档
CMM2的配置管理活动最主要的内容是:建立 软件基线库,该库存储开发的软件基线。通过 软件配置管理的更改控制和配置审核功能,系 统地控制基线变更和由软件基线库生成的软件 产品版本。
要达到 CMM 规定的 SCM要求所需具备的能力:
1.具有对软件基线产品有管理权限的组织已经 建立,例如:软件配置管理委员会;
相关文档
最新文档