当前位置:文档之家› 配置管理基础知识

配置管理基础知识

*在你的工作中丢失过哪些配置项?
知识简介 基线的几种理解 配置项(如文档、代码)的一个快照;
达到一定质量级别的; 被明显标识出来的; 对后续的工作由意义的; 配置项的一个关联(有意义)的线; 发布给内部测试的; 达到一个重要里程碑的; 发布给客户的;
2010/7/28 5
2010/7/28
知识简介 基线Baseline 示意图
2010/7/28
配置管理
基础知识
Louis 2010-07
目录 知识简介 配置管理一般流程 配置管理过程中的角色 配置管理的实施思路 配置管理的益处
1
2010/7/28
知识简介 配置管理的概念
在软件开发中,变更是不可避免的。从某种角度上讲, 软件开发过程就是一个变更的过程。有些变更是有益的,是 具有创造性的,但是,也有些变更是有害的,导致混乱的。
当配置项的状态成为“正式发布”,或者被“冻结”后, 此时任何人都不能随意修改,必须依据“申请-审批-执行 变更-再评审-结束”的规则执行。
配置管理的一般流程 5、配置审计
为了保证所有人员(包括项目成员、配置管理员和CCB) 都遵守配置管理规范,质量保证人员要定期审计配置管理工 作。配置审计是一种“过程质量检查”活动,是质量保证人 员的工作职责之一。
16
2010/7/28
配置管理的实施 组建实施小组 初期的建设会花费较大的人力、物力; 负责公司的整个配置管理建设的工作;
包括了解本组织的现有开发、管理现状,选择配置管理工具,制 订配置管理规范,安排试验项目的实施,沟通部门间关系,获得 管理者支持和开发人员的认同;
角色:小组负责人、技术支持者、配置管理技术专家
正式版 Beta版 Αalpha版 内部测试版
3.1 3 2 1.2 1.1 1 配置项A
3.1 3 2 1.2 1.1 1 配置项B
3 2 1.2 1.1 1 配置项C
知识简介
基线的作用 • 基线为开发工件提供了一个定点和快照。新项目可以从基
线提供的定点之中建立。 • 当认为更新不稳定或不可信时,基线为团队提供一种取消
所以如何管理每个版本中包含哪些配置项是非常重要的。
11
2010/7/28
知识简介 状态报告
状态报告要回答所谓4W 的问题: What:发生了什么事? Who:谁做的此事? When:此事是什么时候发生的? Why:为什么做此事? 状态报告要能够报告所有配置项以及变更请求的状态, 通过量化的数据和报表反映项目开发进度的状态。
件及用户提供的软件
知识简介 配置管理的作用 • 它通过控制、记录、追踪对软件的修改和每个修改生成
的软件组成部件来实现对软件产品的管理功能。 • 一个好的配置管理过程能覆盖软件开发和维护的各个方
面, 同时对软件开过程的宏观管理,即项目管理,也有 重要的支持作用。良好的配置管理能使软件开发过程有 更好的可预测性, 使软件系统具有可重复性, 使用户和 主管部门用软件质量和开发小组有更强的信心。
配置管理的实施 对机构的了解和评估-人员评估 了解大家的态度;沟通渠道是否通畅; 评估过程中会遇到的阻力和困难; 对机构的了解和评估-技术评估 了解计算机资源; 了解网络资源; 了解资源瓶颈;
对于review的类型,及如何做?我们将在后面讲到。
12
2010/7/28
配置管理的一般流程 1、制定配置管理计划
配置管理员制定《配置管理计划》,主要内容包括配置 管理软硬件资源、配置项计划、基线计划、交付计划、备份 计划等。CCB审批该计划。 2、配置库管理
配置管理员为项目创建配置库,并给每个项目成员分配 权限。各项目成员根据自己的权限操作配置库。配置管理员 定期维护配置库,例如清楚垃圾文件、备份配置库等。
在做构建时,我们需要首先取出正确的配置,然后再做 构建。我们可以利用基线,可以取出某个基线的所有配置项, 也可以利用配置管理系统的构建功能直接在工作空间内做构 建。构建管理需要配置管理工具的支持。
知识简介 发布管理
软件产品的每个版本都是一组配置项(源代码、文档、 数据)的集合。举个例子来说,我们要发布软件的3.2版本, 那么我们就要把源代码、文档、数据中所有应该包含到这个 版本中的正确配置项检出。
配置项的状态有三种:“草稿”、“正式发布”和“正 在修改”,本规程制定了配置项状态变迁与版本号的规则。
13
2010/7/28
配置管理的一般流程 4、变更控制
在项目开发过程中,配置项发生变更几乎是不可避免的。 变更控制的目的就是为了防止配置项被随意修改而导致混乱。
修改处于“草稿”状态的配置项不算是“变更”,无需 CCB的批准,修改者按照版本控制规则执行即可。
知识简介 配置项及基线 配置项的识别是配置管理活动的基础,也是制定配置管理计 划的重要内容; 配置项分:为基线配置项和非基线配置项两类; 基线: “已经正式通过复审核批准的某规约或产品,它因此可作为 进一步开发的基础,并且只能通过正式的变化控制过程改 变。” ——IEEE
4
知识简介 配置项 你能识别出哪些配置项? 需求文档? 数据库? 代码?
知识简介 CCB 对变更进行控制的机构称为变更控制委员会 (Change Control Board,简称CCB)。变更控制委员会要 定期召开会议,对近期所产生的变更请求进行分析、整理, 并做出决定。而且要遵循一定的变更机制。
*CCB的组成可以由各个公司的状况、项目类型来决过程中的角色
配置管理员(CMO) • 配置管理工具的日常管理与维护; • 提交配置管理计划; • 各配置项的管理与维护; • 执行版本控制和变更控制方案; • 完成配置审计并提交报告; • 对开发人员进行相关的培训; • 识别软件开发过程中存在的问题并拟就解决方案
系统集成员 • 集成修改; • 构建系统; • 完成对版本的日常维护; • 建立外部发布版本;
变更的方法。 • 可以利用基线重新建立基于某个特定发布版本的配置,这
样也可以重现被报告的错误。
6
2010/7/28
知识简介 基线的特征 • 通过正式的评审过程建立 • 基线存在于基线库中,对基线的变更接受更高权限的控制 • 基线是进一步开发和修改的基准和出发点 • 进入基线前,不对变化进行管理或者较少管理 • 进入基线后,对变化进行有效管理,而且这个基线作为后 继续工作的基础 • 不会变化的东西不要纳入基线 • 变化对其他没有影响的可以不纳入基线
7
2010/7/28
知识简介 版本控制
版本控制就是对在软件开发过程中所创建的配置对象 的不同版本进行管理,保证任何时候都能取到正确的版本以 及版本的组合。 变更控制
在软件开发过程,要产生许多变更,比如,配置项、 配置、基线、构建的版本、发布版本等。对于所有的变更, 都要有一个控制机制,以保证所有变更都是可控的、可跟踪 的、可重现的。
15
2010/7/28
配置管理过程中的角色 开发人员(DEV)
• 根据配置管理获得的授权进行开发工作; • 按计划完成工作产品的入库; • 按配置管理的流程要求提出变更请求; 质量保证工程师(QA) • 检查当前项目的状态,测试,报告错误,并
验证其修复结果; • 监督和审查配置管理被严格实施;
项目过程各个阶段中的配置管理 项目计划/策划阶段
这些项包含了所有的在软件过程中产生的信息,总称 为软件配置。该集合中每一个元素称为该软件产品软件配置 中的一个配置项(CI, Configuration Item)。
2
2010/7/28
知识简介 定义
配置管理是对产品进行标识、存储和控制,以维护其 完整性、可追溯性以及正确性的学科。
配置管理的基本单位是配置项。软件配置项可以是: • 与合同、过程、计划和产品有关的文档和数据 • 源代码、目标代码和可执行代码 • 相关产品,包括软件工具、库内的可复用软件、外购软
对变更请求的有效管理可以提高产品管理的透明度,经 理可以清楚的知道当前产品的进展情况,比如有多少个新产 生的CR,已经解决了多少CR 等等,有利于经理做出正确的 决策。
9
知识简介
变更请求管理的好处 • 提高软件产品质量; • 提高开发团队沟通效率; • 帮助项目管理人员对产品状态进行客观的评估;
2010/7/28
CCB评估
变更请求
CCB评估 接受 修改
测试/验证
变更关闭
拒绝
2010/7/28
知识简介
变更请求管理 变更请求管理就是对变更请求(Change Request,简称
CR)进行分类、追踪和管理的过程来实现的。变更的起源有 两种:功能变更和缺陷修补(Bug-Fix)。功能变更是为了增 加或者删除某些功能。缺陷修补则是对已存在的缺陷进行修补。
14
2010/7/28
配置管理过程中的角色
项目经理(PM) • 制定和修改项目的组织结构和配置管理策略; • 批准、发布配置管理计划; • 决定项目起始基线和开发里程碑; • 接受并审阅配置控制委员会的报告;
配置控制委员会(Configuration Control Board) • 建立、更改基线的设置,审核变更申请; • 根据配置管理员的报告决定相应的对策。; • 定制访问控制; • 制定常用策略;
知识简介 配置审核
配置审核要审查整个配置管理过程是否符合规范,配置 项是否与需求一致,记录正确,配置的组成是否具有一致性等 等。比如,需求分析文档提交后,需要由一个由相关人组成的 小组进行正式评审,只有通过了评审才能基线化。对于源代码 也一样,一般说来,每行代码都要进行评审(Review),只有 通过评审才能交由测试人员进行测试。
知识简介 配置标识
配置标识就是识别产品的结构、产品的构件及其类型, 为其分配唯一的标识符,也就是说,每一个配置项要有一个 唯一标识。一般说来,标识包括两个方面:一是文件名,二 是版本,可用如下一个二元组来标识:<文件名,版本>。每 个项目首先要确定一套命名规则,例如,采用“系统.子系 统.模块.文件”的方式,</videoConference /audio /compressing /main.c , 2.1>就是一个唯一.标识。
相关主题