软件子项目的在线版本的版本升级
软件子项目的在线版本的版本升级 计算机与数字工程第30卷
软件子项目的在线版本的版本升级
谢晖晖曹化工
(华中科技大学计算机学院武汉430074)
摘要
参考工程配置的版本分类法[2],可按软件配置的进化过程将软件配置的版本分为设计版本,在线版本和
项目版本,本文重点讨论在项目/子项目模式下,受控库中的子项目的在线版本的版本升级.
关键词:软件配置项目/子项目模型在线版本
中国法分类号:TP3l1.5
UpgradingoftheOnlineVersionfortheSoftwareSob—project XieHuihuiCaoHuag~mg
(ComputerCoLLege,HUST,Wuhaa430074) Abstract-ReferingtOtheclassificationfnrtheengineeringc0nIiguradonversions.wecanaI5
.dividesoftware
configurationve~ionsintodesiga,onlineandproiectversionaccordingtotheirevolvingproc
essThispapermainly
probesintotheupgradingoftheoldJneversionsforthesub—projectinthecontrolledlibrarywhenproject/sub—pro一
】ectmodelisbeingadopted
Keywords:softwareconfiguration.pr哂ect/sub—projectmodel,onlineve~ion
Classnumber:TP311.5
一
前言
在软件开发中,版本管理贯穿整个软件
配置的进化过程.软件配置的进化分认可 前,认可后和交付三个阶段.处于不同阶段 的软件配置通常分别用开发库,受控库和项 目库来管理,即将认可前的版本存放在开发 库.由开发人员自己管理;认可后的版本库入 受控库;已交付的产品存放在项目库[1].处 于不同库中的软件配置均可被修改,升级,故 存在不同的软件配置版本.处于不同阶段的 版本所描述的对象,修改过程及管理需求各 ?收副本文时问:2001年l0月28日 不相同,因此,简单地用同一概念的名词来称 呼它们,用同一种版本管理模式对它们进行 管理是不够的.参考工程配置的版本分类 法-2J,可按软件配置的进化过程将软件配置 的版本分为设计版本,在线版本和项目版本. 处于开发库中的软件配置的版本为设计版 本,受控库中的软件配置的版本为在线版本, 项目库中的软件配置的版本为项目版本. 本文重点讨论在项目/子项目模式下,受 控库中子项目的在线版本的版本升级.对软 件配置项的版本管理,已有不少文献论述,并 形成商品软件,如北大的青鸟配置管理系
第30卷(2002)第2期计算机与数字工程 统L3],微软的VisualSourceSafe,在此不作赘 述.但受控库中除了有软件配置项的版本, 还应有子项目的版本,这二者的版本管理不 应完全一致.
受控库中子项目的在线版本的版本升级
分两种升级方式:软件配置项的版本升级导 致的子项目的版本升级;子项目自身的整体 升级.此时应将该子项目的所有配置项的当 前版本拷贝到开发库,待所有这些配置项重 新提交到受控库后,方可完成对于项目的版 本升级.
本文先介绍一种软件开发模型——项目 /子项目结构,再阐述在这种模型下的子项目 的在线版本的升级.
二软件开发模型——项目/子
项目结构
定义一:软件配置是软件开发人员关于 软件开发对象的设计行为所产生的设计结果 的集合.本文中包含软件配置项或子项目. 定义二:软件配置的每个元素称为软件
如:源 配置项,是软件配置管理的基本单位.代码,文档,测试数据等.
项目
0
0项目10子项目2—0子项目"
小,//l???????
景景
图1软件开发的项目/子项目结构
设想软件开发主要分为两个层次:项目 和子项目【.项目对应于一个独立的待开 发的软件系统,而子项目对应于软件系统中 一
个比较独立的开发部分(或说子系统).一 个软件项目由相关子项目组合而成;在某些
软件系统中,子项目自身还可能包含其他子 项目,而本模型中子项目仅包含软件配置项 (源代码,文档等),不可以包含子项目. 三子项目的在线版本的版本升级
在受控库中,存在两种在线版本:软件配 置项的在线版本和子项目的在线版本.在此 仅讨论子项目的版本升级.
子项目的版本升级的两种方式:
1.软件配置项的升级而引起的子项目 的升级
存放在开发库中的配置项,是独立的,由 开发者自行管理.当提交到受控库,标示为 基线的配置项后,便与其它相关的由他人开 发的配置项一起,形成一个子项目. 图2子项目的构成
配置项A由甲开发,配置项B由 如图2,
乙开发,配置项c由丙开发.
在受控库中,对子项目的任何一个配置 项的一次修改,不仅是该配置项的一个新版 本的生成,还意味着子项目的一次升级. 2.对子项目的整体修改导致的版本升 级
受控库中的子项目可作为一个整体供其 它开发组的人员使用.当其它组的人员发现 该子项目整体存在的问
,或由于需求的变 化或其它原因需要对该子项目进行修改时, 可申请对子项目的整体修改.申请获得通过 后,应将该子项目的所有配置项的当前版本 拷贝到开发库,供原开发者修改.
此时,应对受控库中的该子项且及其配 置项上锁,以避免上面一种情况导致的子项
软件子项目的在线版本的版本升级第30卷 目及其配置项版本升级.
新版本L1
图3配置项A升级到新版本11后 子项目V也J遗之升级到新版本2 图4配置项c升级到新版本11后, 子项目v也随之升级到新版本3
在开发库中将某个软件配置项修改完毕 后,必须通过评审,测试后,才能被标示为基 线提交到受控库,成为该软件配置项的一个 在线版本,但此时不能申请对子项目的版本 升级.
当该子项目的所有配置项均重新提交到 受控库后,才能对子项目进行版本升级:解 锁,扩展这些配置项的版本演变图以及扩展 该子项目的版本演变图.
例:受控库中的子项目v的最新版本为 V4,现要对V4进行整体修改:
第一步:对受控库中的子项目v及其所 有配置项A,B,C上锁,防止其它开发者对它 们进行修改,从而导致v及A,B,C在受控 库中的升级.
第二步:将A,B,c检出到开发库,成为 设计版本,供它们的原开发者修改. 第三步:A,B,c中的任意一个在开发库 中被修改完毕后,必须通过评审,测试,才能
被标示为基线,提交到受控库,成为该软件配 置项的一个在线版本,但此时不能申请对子 项目的版本升级.
第四步:V的所有配置项A,B,c全部检
人到受控库后,应对受控库中的v及其所有 配置项A,B,C进行解锁,v4升级到v5.v5 由A,B,C的最新版本组成.
此时,对V5的整体升级完成.
参考文献
[1]周伯生:软件工程规范选编.北京,北京航空学 院出版杜.1988
[23豢友嘏,曹化工,工程配置的版本分类及产品追 踪模型.计算机辅助设计与图形学,2000,1 [3]李勇,从混乱刊有序——版本管理与青鸟配置管l 理系统概览,软件世界,2000,1 器
巨