第四讲软件配置管理资料
第四讲 软件配置管理
本章内容提要
软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS
第一节 软件配置管理的作用
存储所有文档和源程序, 由版本控制系统管理
下载 提交
服务器
下载 提交
安装有版本控制 系统客户端
程序员1
……
团队开发的一般模式
程序员n
不同程序员对程序的更改会产生冲突
程序员A
添加了函数 checkStringlength()
修改
提交
common-function.java
程序完整性受 到破坏
修改
提交
服务器
程序员B
common-function.java
添加了函数 checkDate()
软件项目中可能遇到如下的问题:
找不到某个文件的历史版本; 开发人员使用错误的程序版本; 开发人员未经授权修改代码或文档; 人员流动,交接工作不彻底; 无法重新编译软件的某个历史版本; 因协同开发,或者异地开发,版本变更混乱导
致整个项目失败;
……
软件项目进行中面临的一个主要问题是持续 不断的变化,变化可能导致混乱,而软件配置管 理就是用于控制变化。
软件配置管理(Software Configuration Management, SCM)是指一套管理软件开发和维护 过程中所产生的各种中间软件产品的方法和规则。 它是控制软件系统演变的学科。
(4)配置项的版本控制
Check in
配受控置库库
Check out
新版本
配置库的检入检出和版本控制机制解决了 软件开发中的两个重要问题:
(3)建立配置管理环境
配置管理环境是用于进行软件配置管理的系统 环境,其中最重要的是配置管理库,简称配置 库。 配置库存储配置项(SCI)、修改请求、变化 记录等,并提供对库中所存储文件的版本控制。
为不同的开发人员分配不同的访问配置库的权 限。
一般需采用配置管理工具来建立配置库。 配置库中文件的更改是受控的。
软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS
第二节 软件配置管理的相关概念
软件配置项(Software Configuration Item, SCI) 软件配置管理的对象,一个软件配置项是项目 中一个特定的、可文档化的工作产品集。
常见的软件配置项:需求规格说明书、设计规 格说明书、源代码、测试计划、测试用例、用 户手册。
本章内容提要
软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS
第三节 软件配置管理过程
软件配置管理过程包括7项基本活动: (1)制定配置管理计划 (2)识别和标志配置项 (3)建立配置管理环境 (4)配置项的版本控制 (5)基线变更管理 (6)配置审核 (7)配置状态统计
系统工程 需求分析 软件设计 程序编写
测试 系统提交
系统规格说明 软件需求规格说明 软件设计说明 源代码 测试计划、过程、数据
可运行系统
软件配置控制委员会(Software Configuration Control Board, SCCB) 负责管理软件配置项变更的组织。
• 评估变更 • 批准/拒绝变更申请 • 在项目生存期内规范变更申请流程 • 对变更进行反馈 • 与项目管理层沟通
招生管理 学生日常管理 教务管理 通用功能 ……
配置项标志规范举例
公司:3个字符 项目:最长10个字符 类型:最长5个字符 编号:最长8位数字/字符 版本号:V m.n
QTD-School–RM–SRS-v1.0
注意:配置项标识并不是指程序/文档文 件的文件名,而是该程序/文档作为一个 配置项的标识。
中间软件产品和用于创建中间软件产品的信 息都应处于软件配置管理之下。
软件配置管理的目标
标志变更 控制变更 确保变更正确实现 向受变更影响的组织和个人报告变更
软件配置管理的效果
记录软件产品的演化过程。 确保软件开发者在软件生命周期中的各个阶段
都能得到精确的产品配置。 最终保证软件产品的完整性、一致性、可追溯
构造软件的工具和软件赖以运行的环境也常常 列入配置管理的范畴。
基线(Baseline)
已经正式通过复审和批准的某规约和产品,它因 此可作为进一步开发的基础,并且只能通过正式 的变化控制过程来改变。
软件配置项
基线配置项 非基线配置项
基线通常标志开发过程一个阶段的结束(里程碑)
软件开发各个阶段基线图示
为每一个配置项分配唯一的标志。 建立配置项间的对应关系。
配置项分为两类:
基本配置项:软件开发者在项目开发过程中所 创建的基本工作单元。
集成配置项:一个集成配置项是基本配置项或 其它集成配置项的集合。
集成配置项
设计规格说明
校务管理系统 需求规格说明
体系结构设计 数据库设计 详细设计
基本配置项
性。
软件配置管理的主要功能
版本控制:采用相应的流程和工具,对软件开 发过程中产生的各种文件的版本进行管理。是 软件配置管理的核心内容。
变更管理:为防止开发人员对软件的随意变更 而进行的管理上的审核过程,包括变更请求、 变更评估、变更批准/拒绝、变更实现。
其它:配置审计、配置状态统计等。
本章内容提要
建立配置项间的关系
招生管理需求规约 part of
校务管理系统 需求规格说明
interrelated
测试用例集A
可使用某种模块互联语言(Module Interconnection language, MIL)来描述配置项之间的关系。
Narayanaswamy K., W. Scacchi. Maintaining Configurations of Evolving Software Systems. IEEE Trans. Software Engineering, vol.SE-13,no.3, March 1987.
(1)制定配置管理计划
参加项目 规划配置 形成配置 评审配置
规划
管理任务 管理计划
计划
配置管理计划的主要内容
配置管理组织及其职责 配置管理工具和配置库的组织结构 配置项标志和基线定义 变更管理流程 配置审核和配置状态统计
(2)识别和标志配置项
将软件项目中需要进行控制的工作产品定义为 配置项(SCI)。