资料介绍
1 引言
配置管理系统[ 3, 9]是软件开发的关键支撑工具之一,是一种管理软件开发和维护过程以及其中各中间软件产品的系统,是ISO与CMM质量保证体系的核心支持工具。配置管理研究怎样在不同时刻标识软件系统的配置,以便系统化地控制配置的改变,并在整个软件系统的生命周期内维护配置的完整性和可追踪性[ 1] 。其中,版本管理是基础和核心。传统的版本管理系统以文件作为管理的基本粒度。版本管理系统记录、维护每个文件的演化历史。在大型软件开发中,系统往往包含较多文件,这使得传统方式版本管理的工作量很大,而且不易于描述文件间内在的组合关系。目前,基于构件的软件开发方法已成为发展趋势[ 7, 8] 。构件作为系统的有机构成成分,在物理上可以表现为多个文件的集合体,而在开发过程中是作为一个原子单位使用的。系统的开发者关心的是构件整体的开发、演化,组装和维护。这种大粒度的开发方法,对版本管理提出了新的要求[ 3] 。这些要求包括:
#应能有效存储和管理构件演化历史。
#操作模型应有利于体现构件的整体性, 降低系统开发的复杂程度。
#需要保证并行开发构件时的正确性, 同时不减少项目组协同工作的灵活性。
本文研究了构件的版本控制策略,提出了基于构件的版本管理模型。针对并行开发问题,又提出了分别在构件和文件粒度上进行版本管理和并发控制的方法。在此基础上,设计实现了一个产品化的配置管理系统JBCM.该系统既提升了管理的粒度,又能确保团队开发具有较好的并行性。
2 以构件为粒度的版本管理
2.1 版本管理系统中的构件定义
在基于构件复用的青鸟软件生产线中,软件构件定义如下: /构件是可以被多个软件系统复用的具有独立功能的系统构成成分0 [8] 。构件在实际形态上可表现为通过目录结构组织起来的一些文件的集合,并且是系统中可以明确辨识的构成成分。需要指出的是,在以前许多有关版本管理的文献中都出现了构件的概念[ 4] ,但其中的构件一般指的就是文件。本文中的构件则是应用系统中多个相关文件构成的一个逻辑整体,例如一个类的定义及其实现,一个完整的功能模块等。构件版本是构件组成文件版本的集合。构件版本的变化不仅体现了组成文件的版本变化,同时也反映了构件中文件组成的变化。也就是说,组成文件发生版本演化,或者增加和删除构件中的文件,都会引起构件版本的演化。在基于构件的系统中,文件版本由系统内部控制,用户只关注构件版本,从而提升了管理层次。图1反映了构件版本与文件版本的关系:

图 中虚线箭头表示构件和文件与其不同版本的关系, 实线箭头表示构件版本由文件版本组成的关系。从图中可以看出构件的版本2 比版本1 增加了一个文件3, 而且文件版本也发生了演化。 构件版本的演化与文件版本的演化同步进行, 并且随着文件的版本演化自动产生。基于上述构件与文件关系模型, 提出并实现了基于构件的软件版本管理系统。
2.2 构件的版本管理
(1) 以构件为粒度的版本管理特点
与 基于文件的版本管理相比, 基于构件的版本管理有以下主要特点: ¹ 构件的抽象级别比文件高。 构件是应用系统中可以明确辨识的构成成分。 记录、维护构件的版本比文件的版本管理更有意义。 º 构件的粒度可以比文件大很多。 一个项目中可能有诸多分布的逻辑单元, 这些逻辑单元与构件相对应。构件的数量较少, 而且整体逻辑意义明显, 可以更清晰地体现项目的演化历史。 » 在构件基础上, 可以体现出系统的层次性、构造性等特征。 同时, 构件版本管理也可以满足对文件版本的管理需求, 使版本管理既有大粒度, 又有灵活性。
(2) 构件版本管理的基本模式
基 于构件的版本管理系统采用/ 检出( Check Out) 、修改、检入( Check In)0 的基本操作模型, 操作的基本单位是构件。 使用者需要先将构件从版本库检出到工作区, 随后在工作区中完成对构件的修改, 最后将修改的结果检入版本库。 构件组成文件的增删以及其中任何一个文件的修改都被视为对整个构件的修改。 因此, 作为检入操作的结果, 版本管理系统会自动生成构件的一个新版本。 以构件版本为粒度的版本管理系统记录和管理了开发人员对构件修改的历史。
配置管理系统[ 3, 9]是软件开发的关键支撑工具之一,是一种管理软件开发和维护过程以及其中各中间软件产品的系统,是ISO与CMM质量保证体系的核心支持工具。配置管理研究怎样在不同时刻标识软件系统的配置,以便系统化地控制配置的改变,并在整个软件系统的生命周期内维护配置的完整性和可追踪性[ 1] 。其中,版本管理是基础和核心。传统的版本管理系统以文件作为管理的基本粒度。版本管理系统记录、维护每个文件的演化历史。在大型软件开发中,系统往往包含较多文件,这使得传统方式版本管理的工作量很大,而且不易于描述文件间内在的组合关系。目前,基于构件的软件开发方法已成为发展趋势[ 7, 8] 。构件作为系统的有机构成成分,在物理上可以表现为多个文件的集合体,而在开发过程中是作为一个原子单位使用的。系统的开发者关心的是构件整体的开发、演化,组装和维护。这种大粒度的开发方法,对版本管理提出了新的要求[ 3] 。这些要求包括:
#应能有效存储和管理构件演化历史。
#操作模型应有利于体现构件的整体性, 降低系统开发的复杂程度。
#需要保证并行开发构件时的正确性, 同时不减少项目组协同工作的灵活性。
本文研究了构件的版本控制策略,提出了基于构件的版本管理模型。针对并行开发问题,又提出了分别在构件和文件粒度上进行版本管理和并发控制的方法。在此基础上,设计实现了一个产品化的配置管理系统JBCM.该系统既提升了管理的粒度,又能确保团队开发具有较好的并行性。
2 以构件为粒度的版本管理
2.1 版本管理系统中的构件定义
在基于构件复用的青鸟软件生产线中,软件构件定义如下: /构件是可以被多个软件系统复用的具有独立功能的系统构成成分0 [8] 。构件在实际形态上可表现为通过目录结构组织起来的一些文件的集合,并且是系统中可以明确辨识的构成成分。需要指出的是,在以前许多有关版本管理的文献中都出现了构件的概念[ 4] ,但其中的构件一般指的就是文件。本文中的构件则是应用系统中多个相关文件构成的一个逻辑整体,例如一个类的定义及其实现,一个完整的功能模块等。构件版本是构件组成文件版本的集合。构件版本的变化不仅体现了组成文件的版本变化,同时也反映了构件中文件组成的变化。也就是说,组成文件发生版本演化,或者增加和删除构件中的文件,都会引起构件版本的演化。在基于构件的系统中,文件版本由系统内部控制,用户只关注构件版本,从而提升了管理层次。图1反映了构件版本与文件版本的关系:

图 中虚线箭头表示构件和文件与其不同版本的关系, 实线箭头表示构件版本由文件版本组成的关系。从图中可以看出构件的版本2 比版本1 增加了一个文件3, 而且文件版本也发生了演化。 构件版本的演化与文件版本的演化同步进行, 并且随着文件的版本演化自动产生。基于上述构件与文件关系模型, 提出并实现了基于构件的软件版本管理系统。
2.2 构件的版本管理
(1) 以构件为粒度的版本管理特点
与 基于文件的版本管理相比, 基于构件的版本管理有以下主要特点: ¹ 构件的抽象级别比文件高。 构件是应用系统中可以明确辨识的构成成分。 记录、维护构件的版本比文件的版本管理更有意义。 º 构件的粒度可以比文件大很多。 一个项目中可能有诸多分布的逻辑单元, 这些逻辑单元与构件相对应。构件的数量较少, 而且整体逻辑意义明显, 可以更清晰地体现项目的演化历史。 » 在构件基础上, 可以体现出系统的层次性、构造性等特征。 同时, 构件版本管理也可以满足对文件版本的管理需求, 使版本管理既有大粒度, 又有灵活性。
(2) 构件版本管理的基本模式
基 于构件的版本管理系统采用/ 检出( Check Out) 、修改、检入( Check In)0 的基本操作模型, 操作的基本单位是构件。 使用者需要先将构件从版本库检出到工作区, 随后在工作区中完成对构件的修改, 最后将修改的结果检入版本库。 构件组成文件的增删以及其中任何一个文件的修改都被视为对整个构件的修改。 因此, 作为检入操作的结果, 版本管理系统会自动生成构件的一个新版本。 以构件版本为粒度的版本管理系统记录和管理了开发人员对构件修改的历史。
构件
加入交流群
扫码添加小助手
加入工程师交流群
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- MCU软件版本迭代 0次下载
- 软件演化历史的逆向工程生成方案综述 2次下载
- VxSCADA组态管理软件使用手册电子版 0次下载
- SEED-DEC2812硬件/ 软件版本 0次下载
- 基于构件回归测试的复杂性度量框架 0次下载
- 实例分析基于构件技术的系统软件架构 0次下载
- 基于嵌入式软件版本信息获取的方法 0次下载
- 构件技术的通用自动测试系统软件设计 0次下载
- 一种嵌入式软件版本信息获取方法设计与实现 0次下载
- RFID领域软件构件化开发技术研究 22次下载
- 一种基于构件的软件开发方法
- 构件技术在医院信息管理系统重构中的应用研究
- 构造嵌入式系统软件的构件模型研究
- 智能安全防护软件策略构件的设计与实现
- 软件版本命名规范 0次下载
- 电磁兼容认证管理系统软件全面解析 601次阅读
- 达梦数据库常用管理SQL命令详解 6.8k次阅读
- 主流版本控制工具Git vs Perforce P4:架构模式、性能、大文件管理及分支管理对比详解 658次阅读
- Kubernetes Pod常用管理命令详解 1.1k次阅读
- 拖动系统基本控制电路详解 1.1k次阅读
- S7-200 SMART与调试助手之间TCP通信 2.2k次阅读
- Linux基础中的软件管理 1.4k次阅读
- 什么是MES系统架构? 4.1k次阅读
- S32K3基于IAR IDE环境下使用JLINK调试 7.1k次阅读
- python巡检华为交换机 2.4k次阅读
- 企业内部统一软件版本背后有啥命名规则 2.9k次阅读
- 基于构件化软件开发的IEEE802.15.4标准的设计与实现 3.1k次阅读
- RFID领域软件构件化开发技术你知道吗 1.1k次阅读
- 基于嵌入式实时系统的提高构件化嵌入式操作系统性能的方案设计 1.2k次阅读
- 最易懂的动力电池系统设计详解 9.4w次阅读
下载排行
本周
- 1电子书:《AI 与功能安全》
- 727.37 KB | 3次下载 | 免费
- 2LX8201微孔雾化驱动板说明
- 1.81 MB | 1次下载 | 免费
- 3SD6276 10安培电流模式非同步PWM升压转换器数据手册
- 2.84 MB | 次下载 | 1 积分
- 4USB3130A多功能数据采集模块使用手册
- 2.41 MB | 次下载 | 免费
- 5USB3160A/3161A/3162A/3163A多功能采集模块使用说明书
- 2.03 MB | 次下载 | 免费
- 6ATA-5810系列锁相放大器
- 2.05 MB | 次下载 | 免费
- 7USB2185/2185A多功能数据采集卡使用手册
- 1.86 MB | 次下载 | 免费
- 8QTouch组态软件技术介绍
- 2.44 MB | 次下载 | 免费
本月
- 1电子书:《AI 与功能安全》
- 727.37 KB | 3次下载 | 免费
- 2GPM055P04LTF 40V 100A P沟道MOSFET TO252 封装
- 1.25 MB | 2次下载 | 免费
- 35V 供电,2A 同步降压锂电池充电IC BF2210说明书
- 1.01 MB | 1次下载 | 免费
- 4AEV210-DC060D 直流充电桩安装使用说明书
- 2.37 MB | 1次下载 | 免费
- 5SD9233B 超强EMC抗干扰触摸开关芯片数据手册
- 6.44 MB | 1次下载 | 免费
- 6LDR6021Q中文手册
- 1.96 MB | 1次下载 | 免费
- 7GPM380NP04LTG 40V 25A TO252封装N型和P型沟道MOSFET
- 2.20 MB | 1次下载 | 免费
- 8LX8201微孔雾化驱动板说明
- 1.81 MB | 1次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233097次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191476次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183363次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81608次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73845次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65992次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论