基于构件的软件版本管理系统研究
结构中最低层的不可再分的基本逻辑单元, 可以是系统开发过程中需要作为一个整体的文件集合, 例如用于实现一个C+ + 类的所有. cpp 和. h文件. 下面是版本库的一个简化结构示例图. 在项目a( 用a.Prj 表达) 下, 有c 和d 两个构件( 用c. Comp 和d. Comp 表达) ,而c 构件由e. cpp、f. h 和一个g 目录组成. TempFile 是版本库的临时文件存储区.
4.2 构件的增量存储
构 件的不同版本间具有较大的内容相似性, 不同版本的存储有必要使用增量存储方式, 以减少存储冗余. 在传统的文件版本管理系统中, 已较深入地研究了文件的增量存储技术, 有实际的算法及实现, 如最长公共子序列算法[ 5] 等. 根据基于构件的版本管理的特点,提出了按构件和文件两个层次分别进行增量存储的设计方案:
( 1) 对于构件中具体文件的修改, 使用传统的文件逆向增量存储技术[ 2] , 保存最新文件版本与增量部分.
( 2) 构件的版本由附属目录及文件的版本组成. 构件的增量存储体现在版本中记录的是相比前一版本组成成分的不同部分.
( 3) 对于文件和构件存在多个分支的情况, 对各分支独立进行增量式存储. 保存每个分支上的最新版本和其他版本相对于各自后一版本的增量.
4.3 构件版本的比较与合并
构件演化过程中会产生多个分支,各分支都会实现一些不同于其他分支的新特性。有时需要将这些特性都合并到一个版本中。为了保证在多个用户协同工作时的正确性,也经常需要合并多个用户分别修改过的构件版本。构件不同版本的合并采用如下策略:不同版本添加的文件有选择地添加到合并版本中,修改过的文件逐一进行合并。
构件版本的比较是版本合并的基础。在合并之前,可以通过构件版本的比较得到不同版本间的差异。除此之外,为了查看构件的演化历史,实现对构件的变化与过程控制,也需要比较构件的新老版本;在基于构件的版本管理系统中,构件版本的比较分为两个层次。底层是文件级的比较,通过比较不同版本文件的具体内容,得到文件内容的差异。上层是构件级的比较,通过比较构件不同版本组成成分,来获取构件整体的变化情况。在JBVM系统中,通过构件级别上的比较则可分析出构件的不同版本各自包含哪些文件,以及分别对哪些文件进行了修改。
5 结束语
本 文着重讨论了基于构件的软件版本管理模型, 以及相应系统的设计与实现. 基于构件的思想不仅可以应用于版本控制, 配置管理中的其它功能, 例如配置支持、构造支持、审计控制、统计报告、过程支持和团队支持等方面都可以建立在构件的基础上. 我们将进一步研究以构件为粒度配置支持、构造支持和变化控制方法.
- 教你构造一个51单片机的实时操作系统(08-22)
- 面向构件的门诊部信息管理系统软件架构(10-16)
- 动刚度分析在底盘结构件设计中的应用(12-19)
- 大型结构件多机器人焊接协调及智能化技术概况(12-15)
- 基于和欣嵌入式操作系统的构件化网络协议栈(10-26)
- 军用VXI测试系统的软构件技术(02-05)