| 网站首页 | 模板 | 资料 | 源码 | 工具 | 开发 | 设计 | 安全 | 项目 | 网络 | 图片 | 系统 | 数据库 | 博客 | 会员中心 | 小说 | 
MYFTP 精品资料下载
网络学院
学习资料
源码模版
您现在的位置: 精品下载 >> 项目 >> 过程改进 >> 项目管理正文 用户登录 新用户注册
配置管理及其实现方法            【字体:
配置管理及其实现方法
作者:佚名    项目管理来源:不详    点击数:    更新时间:2007-12-20
  摘要: 本文介绍软件配置管理的基本概念,强调设计变更及其对变更的记录与追踪是配置管理面临的根本问题。此外,还对实际工作中,如何具体实现配置管理,提出一些看法,可供从事软件开发人员在工作时参考。

  关键词: 软件配置、版本、基线、里程碑

  1. 软件配置和配置管理

  计算机配置是说明计算机组成的一种专门术语。这种“组成”由用户的需求决定。通常,计算机系统由CPU、存储器、输入/输出设备、传输设备等组成;其中就存储器而言,除内存外,外存又分软盘、硬盘、光盘等,它们又有容量和速度之别。现在,可以将计算机配置定义为是用户根据不同用途,选择不同功能-性能的设备和部件组成的最优计算机系统的一种构建方案。推广到系统,则系统配置就是根据用户需求优选各种设备,组成最佳系统的一种建构方案(或者是按最佳性能价格比,组成系统的各种设备的一种优化组合)。

  同样,软件配置也是说明软件组成的一种术语。与计算机配置中选择的部件都是现成的产品不同的是组成软件的部件通常都是要开发的。软件配置( software configuration)是指开发过程中,构成软件产品的各种 文档、程序及其数据的优化组合。该组合中的每一个元素称为配置中的一 个配置项(configuration item)。也可以把软件配置项定义是软件中可以独立进行开发的一个实体,该实体包括:程序、数据及其相应的文档和说明。

  配置管理要对软件生存期内各阶段的文档、实体和最终产品的演化和变更进行管理;同时要解决变更的标识、控制和发布等问题。目的是使对设计变更的管理制度化,从而提高开发效率、减少错误,保证产品的质量。

  软件配置管理主要任务有以下几方面的内容:

  1.确定软件配置项;

  2.定义配置项和版本的标识规则;

  3.制定控制变更的权限和实施步骤;

  4.记录、追踪配置项的变更状态;

  5.验证配置项的正确和完整性;

  6.进行版本管理和发行管理。

  2. 配置管理源头:设计变更

  软件设计不可能一步到位,变更是不可避免的;特别是用户需求多变 (如:组织体制、业务流程的变化)必然会引起设计的变更。如何记录这些变更,需要做二件事。一是要标识这些设计文件(即:根据文件名,确定一个唯一的标识符);二是要动态地记录这些变更文件(即:用版本的方法记录这些变更).

  3. 软件配置标识规则

  软件配置标识就是对每个软件配置项的标识。对一个软件项目而言,它的配置项有以下内容:需求分析文档、概要设计文档、详细设计文档、软件实体、测试文档、客户文档等。当然,这些软件实体及其相应的文档都可以按其功能进行逐级细化,被分解为:分系统、子系统和功能模块。功能分解后能单独实现的这些软件和文档都是软件配置项,都应该加以标识。与系统的逐级细化相似,软件配置项的标识也可以按层次进行,现以3层为例,叙述如下:〈第一层标识〉〈第二层标识〉〈第三层标识〉;如果第二层标识是本配置项标识的话,那么第一层标识就称为前缀(即:前一层的标识),第三层标识称为后缀(即:后一层的标识)依次类推。这样标识规则的好处是可以看出配置项的前后关系,比较直观又便于理解。有关配置项标识的实例后面还会给出。

  4 版本管理

  标识一个配置项变更(如:设计修改)的最好方法就是版本。版本不仅记录了配置项的当前状态,为后续开发提供依据;而且还可以根据版本追溯以前的状态。

  版本标识规则

  <配置标识>V<主版本号>·<版本号>·<次版本号>

  主版本号、版本号和次版本号都可以由 1至2位的整数组成。通常,<次版本号>可省,因为二个层次的版本号就足以表示一个配置项的变化了;对于大型软件项目,其版本标识可以扩大到三层或更多的层次。

  当配置项出现大的变化时(如:因需求变化,导致《功能规格书》需要增加新功能时)主版本号升级(如:从 1.**升级为2.**);当配置项出现小的变化(如:局部的完善和修改等,一般在阶段结束时,经过评审确认后)主版本号不动,次版本号升级 (如:从**.0升级为**.1)。

  版本管理是指对软件生存期内各种软件实体、文档等的修改和变化的管理。它的主要的功能就是记录和追踪文件的变更,如:记录文件更改的内容、时间和更改 -审批人员等。此外,版本管理的另一个功能是并行开发,它能有效地解决版本的同步以及不同开发者之间的沟通问题,从而减少错误、保证质量、提高了效率。

  根据经验,在软件开发过程中,经常需要保存多个版本。因为有时可能会发生这样的情况,即:在修改一个软件后,却发现是改错了,需要恢复到修改前的一个老版本。如果不保留多个版本,没有版本管理,会给工作带来很大的麻烦,也会浪费很多时间。

  对于大型软件公司,为顺利解决用户在使用某个版本时发现的问题,须要借助版本管理工具的支持,否则要解决这类问题是很国难的。因为不是旧版软件找不到,就是原开发人员已离开了公司。但是,如果按版本管理要求,将文件的不同版本形成一条链,并将它们存储起来。那么就能解决前面提到的找不到旧版软件的问提。

  5. 基本概念

  在配置管理中有几个常用的基本概念是需要弄清楚它们之间的联系和区别的。这些概念是配置项、里程碑、基线、受控库、基线库、产品库等。

  · 软件配置项是软件生存期内,能相对独立开发的一个程序实体或文档。

  · 里程碑即通常所说的软件开发过程中的“阶段”,如果说它们之间有 区别的话,那么“阶段”强调的是过程,而“里程碑”则强调过程的终点和终点的标识。这些阶段可以是需求分析阶段、概要设计阶段、详细设计阶段等等。

  · 基线 是软件开发过程中最重要的里程碑,不过基线更强调的是一个开发阶段到达里程碑时的结果及其内容,如:功能基线是 经过评审和批准的需求规格说明书;产品基线是经集成和确认测试后,经正式审批可交付客户的软件产品的全部配置项(包括:软件实体和所有的文档)。

  正如清华大学郑仁杰教授所说: 在一个开发阶段结束后,要对相应的配 置项进行基线化并形成各类基线。基线就是一个配置项(或一组配置项)在其生命期的不同阶段完成时,通过评审而进入受控状态的一组文档和程序实体,这个过程被称为 “基线化”。每个基线都是其下一步开发的基点和参考 点;它们都将接受配置管理的严格控制。因此,基线必须通过评审过程建立;基线存在于基线库中,接受更高权限的控制;基线是进一步开发和修改的基准和出发点。

  · 受控库 是软件开发过程中,其修改权限受到控制的文档库和程序库,其中基线库和产品库,特别是产品库的修改权限将受到严格的控制,即使是授权修改的人,在修改前还必须得到批准。

  · 基线库 是受控库中一些特别重要的库,如:需求(基线)库和产品(基线)库。

  · 产品库 是存放软件最终产品(即:产品基线)的库,基于它的重要性,对它的修改将受到特别的控制。 产品基线是最初批准的产品配置标识。

  6. 配置标识 方法与实例

  6.1文档标识

  通常,可把一个软件项目的文档分成 3类,即:项目的管理文档、设计文档和客户文档。管理文档是项目管理过程中形成的文档,如:项目的立项书、开发计划、质量计划、成本计划、配置管理计划、测试计划、设计评审报告、测试验证报告、验收确认报告、项目总结报告和维护服务报告等。设计文档是设计过程中产生的文档,如:需求规格说明书、概要设计说明书、详细设计说明书、源程序、可执行程序等。客户文档是供客户使用的文档,如:用户操作手册、系统安装手册、系统维护手册等。

  6.1.1 项目管理文档标识规则:(PM代表项目管理)

序号

管理文档名称

管理文档标识

1

立项书

PM -prj

2

开发计划书

PM- Pln

3

配置管理计划书

PM -Cnfpln

···

···

···

  6.1.2 项目设计文档标识规则: (PD代表项目设计)

序号

设计文档名称

设计文档标识

1

需求规格说明书

PD -Req

2

概要设计说明书

PD -prldsg

3

详细设计说明书

PD -Dtldsg

4

源程序

PD -SrcPrgm

···

···

···

  6.1.3 项目客户文档标识规则: (PC代表客户文档)

序号

客户文档名称

客户文档标识

1

用户(操作使用)手册

PC -Usr

2

系统安装手册

PC -Ist

3

系统维护手册

PC -Mnt

  6.2 程序实体标识

  如何根据程序实体的名称给出它们相应的标识符,没有固定的模式,得根据实际情况来确定,只要直观,看得明白就行。由于开发工具的不同,程序实体标识除程序名的标识外,还可以加一个默认的扩展名,即:〈程序实体标识〉 =〈程序名标识〉.〈默认扩展名〉;例如: 用HTML开发的程序文件,用〈程序名标识〉.html 标识, 用JAVA开发的程序文件,用〈程序名标识〉.java 标识,用C++开发的源程序文件,用〈程序名标识〉.cpp 来标识。

  6.3 配置库 标识

  6.3.1开发库标识 – 非控库

  由开发人员自己定义的开发库是不受控的,其目录路径可标识如下:

  \〈一级目录〉\〈二级目录〉\〈三级目录〉\〈四级目录〉\…

一级目录

二级目录

三级目录

四级目录

说明

项目标识

开发库标识

开发人员标识

配置项标识

开发库目录结构

Project

dpt

Name

PM-Pln

项目 -开发库-Name-开发计划

···

···

···

                    
  6.3.2 设计库标识

  设计库是受控库。设计基线库的目录可标识如下:

  \〈一级目录〉\〈二级目录〉\〈三级目录〉\〈四级目录〉…

一级目录

二级目录

三级目录

说明

项目标识

受控库标识

设计基线标识

设计基线库目录结构

Project

ctl

PD-Req

项目 -受控库-需求基线库

Project

ctl

PD-Prldsg

项目 -受控库-概要设计库

Project

ctl

PD-Dtldsg

项目 -受控库-详细设计库

Project

ctl

PD-SrcPrgm

项目 -受控库-源程序实体库

···

···

···

  
  6.3.3产品库标识

  产品库是受控库,产品库的目录可标识如下:

  \〈一级目录〉\〈二级目录〉\〈三级目录〉\〈四级目录〉…

一级目录

二级目录

三级目录

说明

项目标识

受控库标识

产品标识

设计基线库目录结构

Project

Pdt

Req

项目 -受控库-需求库

Project

Pdt

Prldsg

项目 -受控库-概要设计库

Project

Pdt

Dtldsg

项目 -受控库-详细设计库

Project

pdt

SrcPrgm

项目 -受控库-源程序实体库

……

……

……

……

  其中: Project代表项目, pdt是产品标识,Req是需求库标识、Prlds是概要设计库标识、Dtldsg是详细设计库标识,依次类推。

  7 配置控制

  配置控制 是配置管理的核心工作。配置控制主要包括存取控制、版本控制、变更控制和产品发布 4个方面:

  · 存取控制设定了软件开发人员对软件受控库的存取权限,保证软件开发过程及软件产品的安全性 ;如:

  · 开发库(不受控):开发者对自己的文件库有读写权,但是没有删除的权限。

  · 基线受控库:配置管理员有读写权限,开发人员只有读的权限。

  · 产品受控库:只有项目负责人和配置管理员有读写权 限 。

  · 版本控制使得项目组在任何时刻都可获得配置项的任何一个版本 ;

  · 变更控制为软件产品变更提供了一个明确的修改程序,要求对软件产品进行的任何修改,都要经过相应的授权与批准才能实施;

  · 产品发布的控制保证了提交给客户的软件产品是完整和正确的。

         存取权限控制 (权限审批日期: YYYY-MM-DD)

库类型

配置库名称

版本

修改人

查阅人

审批人

开发库

需求库

V**.**

设计者

全组

设计者

概要设计库

V**.**

设计者

全组

设计者

详细设计库

V**.**

设计者

全组

设计者

源程序库

V**.**

设计者

全组

设计者

                 

受控库

需求库

V**.**

授权人名字

相关人名

项目经理

概要设计库

V**.**

授权人名字

相关人名

配置管理员

数据库

V**.**

授权人名字

相关人名

配置管理员

详细设计库

V**.**

授权人名字

相关人名

配置管理员

源程序库

V**.**

授权人名字

相关人名

配置管理员

测试库

V**.**

授权人名字

相关人名

配置管理员

产品库

需求库

V**.**

授权人名字

相关人名

项目经理

概要设计库

V**.**

授权人名字

相关人名

项目经理

数据库

V**.**

授权人名字

相关人名

项目经理

详细设计库

V**.**

授权人名字

相关人名

项目经理

程序实体库

V**.**

授权人名字

相关人名

项目经理

客户文档库

V**.**

授权人名字

相关人名

项目经理

项目管理录入:chqnet    责任编辑:chqnet 
  • 上一个项目管理:

  • 下一个项目管理:
  • 最新热点 最新推荐 相关项目管理
    高质量C++/C编程指南--第7章…
    高质量C++/C编程指南--第7章…
    配置管理中人的因素
    联想集团软件部的软件配置管…
    软件配置管理
    在项目实施过程中实施版本管…
    不可不看:管理定理一网打尽
    项目与项目管理软件
    项目管理的三个重要概念:检…
    项目团队管理中的冲突管理
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)