首页> 中国专利> 在配置管理系统中基于活动版本选择的计算机方法和装置

在配置管理系统中基于活动版本选择的计算机方法和装置

摘要

一种用于选择软件程序成品的计算机方法和装置,包括历史装置和处理器装置。历史装置指示(a)在形成目标软件程序配置的给定的多个成品中每一成品的基线版本和(b)每一成品的各变化组信息。不同的变化组对应于不同的成品版本。处理器装置确定在使用指示的基线版本和变化组信息的目标软件程序配置中的成品版本。处理器装置使配置管理系统能够向用户显示确定的成品版本。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-05

    未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20090128 终止日期:20181114 申请日:20061114

    专利权的终止

  • 2009-01-28

    授权

    授权

  • 2007-08-22

    实质审查的生效

    实质审查的生效

  • 2007-06-27

    公开

    公开

说明书

背景技术

软件开发通常按照项目组被执行。目标软件系统通过设计工作、测试工作、实施工作和维护工作被开发。可能有不同的组和不同的组成员参与这些工作。在整个这些工作的过程中以及在工作组成员中,各种建模和其它开发工具被用于在开发目标软件系统中增进联系和提高一致性。软件配置管理系统就是这样一种工具。

软件配置管理系统使得用户组(软件开发员/工程师)能够利用目标软件系统的成品进行工作。“成品”为用户完成工作的稳定结果,通常存在(persist)于诸如模型(model)和源代码的文件系统中。

软件配置管理(SCM)系统必须向用户提供一种方法,用来配置其工作区以选择他们正在工作的成品(例如文件)的适当版本。传统的SCM系统将工作区的配置集中在单个成品的选择上,利用每个成品的文件名、版本号或模式来选择适当的版本。

发明内容

本发明针对现有技术的问题并且提供了一种基于活动版本(ABVS)的配置管理系统。在优选实施例中,本发明采用成品历史装置和处理器装置。成品历史装置指示(a)在形成目标软件程序配置的给定的多个成品中每一成品的基线版本和(b)每一成品的各变化组信息。不同的变化组对应于不同的成品版本。处理器装置使用指示的基线版本和变化组信息确定目标软件程序配置中的成品版本。处理器装置使配置管理系统能够向用户显示确定的成品版本。

处理器装置(例程)最好是基于规则的并且包括间隙选择错误解决方案和冲突选择错误解决方案。

附图说明

根据下面对本发明的优选实施例的更详细的描述,本发明的上述和其它的目的、特征和优点将变得显而易见,如附图中所示的,其中在不同的图中,相同的标号表示相同的部分。这些图不一定是按比例绘制的,而是把重点放在对本发明原理的说明上。

图1是说明成品历史示图的示意图。

图2-5是说明本发明的版本选择的示意图。

图6是说明其中操作本发明的实施例的计算机网络环境的示意图。

图7是图6的网络的一个计算机节点的方框图。

图8是本发明的一个实施例的方框图。

具体实施方式

下面将对本发明的优选实施例进行描述。

图8中所示的为由成品15、17、21的一个或多个构成的目标软件程序13。成品15、17、21的每个具有各自的版本A、B等。因此,目标软件程序13的一种配置22采用成品15的版本A、成品17的版本B和成品21的版本A。目标软件程序13的其它配置22采用成品15、17、21的其它版本。配置管理系统19使用户能够产生并对目标软件程序13的这样的不同配置22进行操作(例如编辑、测试、重新设计等)。因此,配置管理系统19的主要部分是版本选择器11,该版本选择器11用于在用户对目标软件13和其各种配置22进行操作或与其交互的不同时间选择适当的软件程序成品版本。版本选择器11承载用户的工作空间和在其中显示的内容,如下面进一步描述的。本发明为迄今为止现有技术还未实现的一种改进的或新颖的版本选择器11。

本发明提供了配置管理程序19中基于活动的版本选择(ABVS)。就用户正在做的项目连同用户正在做的增加工作的逻辑单元项目而言,本发明系统11将选择方法抽象化以最好地表达工作区的配置22。

为了理解本发明的ABVS,申请人首先定义了一些术语。

“成品(artifact)”是用户完成工作的稳定结果,通常存在于比如模型和源代码的文件系统中。

“活动”用于跟踪用户完成工作的结果。活动的“变化组(change-set)”是由执行该活动的实施者制成的成品的一组变化。

“项目”用于分组相关的成品组和相关的活动组。项目还用于分组被称作该项目的“子项目”的相关项目组。

“基线(baseline)”为项目的持续状态,其识别项目中的每一成品的版本以及哪些其它的项目为该项目的子项目。子项目的关系的持续状态被称作“子基线”。

“工作空间”用于限定用户的工作环境以包含该用户所需的成品和跟踪执行这些任务的结果的活动。工作空间被描述为“接受”限定其配置的项目基线和活动变化组。

本发明ABVS的基本动机在于:其以应该对用户直观的目的为基础;项目的基线为“我的起始点”并且变化组为表示这些基线的增量(delta)的自然工作单元。ABVS使用户能够根据说明指定工作环境,即更具体地比如说“我想看这些项目和与由下列变化组指示的变化组合的其子项目的基线版本”。

虽然一些SCM系统为组织工作提供活动或变化组机构,但没有一个SCM系统将活动信息与项目信息组合来选择版本,也没有一个SCM系统通过子项目关系使用项目的聚合来选择版本。本发明ABVS可做这两项工作。因此,本发明的实施例将变化组与基线组合以限定配置,如从下面将理解的。

一个ABVS情景是其中工作空间的配置仅参考项目基线(不参考变化组),并且两个基线不是引用(refer to)相同成品历史的版本。在这种情况下,工作空间(版本选择器11)选择基线中指定的版本并且将该版本显示给最终用户。

下面,考虑不太重要的ABVS情景:工作空间配置包含引用成品历史的版本A的一个项目基线,和引用作为版本A的紧接后续版本(successor)的版本B的一个变化组。在这种情况下,版本选择器11为工作空间选择版本B(即显示给最终用户)。

当工作空间的配置引用任意分布在单成品历史示图上的多个版本时,事情变得更加复杂。出现的问题是:当访问成品时用户想看哪一版本?

一种多项选择的情况具有清晰的答案。如果基线引用的版本和变化组引用的所有版本为成品历史版本示图的邻接子示图,其中正好子示图的一个版本不具有任何后续版本,则本发明系统11拾取那个版本。这种情况对应于其中用户已识别一组基线和改变相同的成品历史并逻辑地彼此“依靠”的变化组的逻辑情况。

例如,在图1所示的成品历史28中,基线L1、变化组A2和变化组A4引用(reference)来自成品历史的邻接子示图的版本A、B、D和F。因为版本A、B、D和F为连续子示图,所以接受这些变化组(A2和A4)和基线(L1)的工作空间(使用版本选择器11)选择版本F。其动机在于:F为版本A、B、D(即版本F的先前版本)和F本身所引入的工作产品;基线L1表示在版本A和B完成的工作,变化组A2表示在版本D完成的工作,变化组A4表示在版本F完成的工作。然后,将所有这些变化组和基线“合计”为产生版本F的版本集(A、B、D、F)。因此,版本F一定是在接受这些变化组(A2和A4)和基线(L1)的工作空间中选择的正确的版本。

概括点说,单一版本可被看作表示在该版本和所有其先前版本完成的所有工作的总和。广义地说,基线可被看作表示在一组成品历史的一组版本(每一成品历史的一个版本和其先前版本)完成的所有工作的总和。申请人指出在本发明的ABVS方法和技术(在11中)中基线可激活所有这些版本。另一方面,变化组被看作仅表示产生其版本组的被完成的工作;其仅激活变化组中的版本(而不是这些版本的先前版本)。

本发明ABVS系统11中的版本选择的起始点为由工作空间的配置激活的所有版本组的计算。此后,版本是怎样进入配置的(即是否因为基线或子基线或因为变化组)与选择过程无关。对于ABVS系统11选择版本,其必须能够把激活的版本组描述为包含(并且仅包含)单一版本和所有其先前版本。

参照图2考虑更复杂的示例。假定工作空间接收基线L1、变化组A1、变化组A2和变化组A3(图2中由下划线表示)。因此,激活的版本组(由阴影圈表示)为包含版本A、B、C、D和E的组或{A、B、C、D、E}。其中来自连续子示图的激活的版本组的版本A、B、C、D和E可被描述为版本E和其先前版本。因此,本发明系统11使得工作空间能够在接收基线L1和变化组A1、A2和A3时选择并显示版本E。

选择错误

参照图3,考虑有问题的示例。假定工作空间接收基线L1和变化组A4。配置中(下划线)的目标变化组和基线产生激活的版本组{A、B、F}(阴影部分)。在示图中没有一个版本仅表示在该激活版本组中完成的工作。版本F逻辑上包含在版本D中完成的工作,该版本D不是由目标变化组A4和基线L1激活的版本,因此不能作为工作空间/本发明系统11选择的版本。由于该组变化组A4和基线L1不选择单一版本的所有先前版本(即不形成邻接的子示图),因此该配置无效并且工作空间不能选择成品历史的版本。申请人把这称作间隙选择错误。当存在这样的间隙错误时,本发明系统11向用户提供可被增加以消除该间隙的变化组的列表。

考虑另一有问题的示例,注意看图4。假定工作空间接收基线L1和变化组A1、A2、A3和A4(下划线所示的每一个)。这产生了图4中阴影所示的激活的版本组{A、B、C、D、E、F}。这里的问题在于,激活的版本组不激活单一版本和所有其先前版本,而是激活两个版本(E和F)和所有其各自的先前版本。申请人把这称作冲突选择错误。然而,与间隙选择错误不同,通过创建新版本H可解决冲突选择错误。在这种情况下,本发明系统11创建新版本作为版本E和F的直接后续版本。即,本发明系统11使用版本D(最近的公共原始版本)作为合并的基础合并这些版本E和F,并且产生新版本H。然后,使用或利用版本H作为一些新的或现存的变化组的部分,工作空间将其包括在它的配置中。

如果工作空间配置包括基线L1、变化组A1和变化组A2(下划线的),激活版本组{A、B、C、D},如图5中阴影所示,则出现类似的冲突选择错误。然而,在这种情况下,通过将变化组A3接收进工作空间,产生激活的版本组{A、B、C、D、E},错误被解决。因此,工作空间(通过本发明系统11)选择版本E。

ABVS中的项目基线

由于在工作空间的配置中可出现同一项目历史的多个基线,因此本发明的ABVS系统11也用于确定为工作空间选择项目历史的哪个基线。尽管项目历史的ABVS在概念上类似于成品历史的ABVS,但其有两个主要的不同之处。

第一不同之处在于复合基线示图加入激活基线的子基线作为新的激活基线,然后ABVS11用于从新的激活基线的组中选择基线。然后该选择的基线被用于从成品历史中选择版本。

第二不同之处在于在基线选择期间不会出现间隙选择错误。这是非常重要的,因为基线可具有早于其先前基线的成员,因此说基线一定包括其先前基线包括的一切是不正确的。事实上,新基线的整个点可能会返回先前基线中的一些变化。

但是,基线冲突错误仍是可能的。如果在基线选择期间出现冲突错误,则冲突的基线必须被合并或工作空间必须被重新配置以在可创建项目的新的基线之前接收不同的基线或活动。

示例ABVS系统11的规则

在优选实施例中,本发明的基于活动的版本选择系统11按照规则序列被实现或被规定。每一规则具有一组条件和一组动作。如果规则的所有条件均被满足,则该规则的动作被执行。在列中的下一(随后)规则被执行之前,规则被尽可能地执行很多次。

基本:工作空间W接收一组项目基线和活动变化组。

基线规则

如果W接收基线B,不接收B的任何后续基线,

则W激活B和B的每一子基线。

如果W激活项目P的基线B并且不激活B的任何后续基线,

则W选择B。

变化组规则

如果W接收活动A的变化组C,并且不接收C的任何后续,

则W激活C。

如果W激活活动A的变化组C,并且不激活C的任何后续,

则W选择C。

版本规则

如果W仅选择项目的一个基线B,并且B引用版本V,

则W激活V和V的每一先前版本。

如果W选择变化组C,并且版本V为C的产品,

则W激活V。

如果W激活成品历史H的版本V,并且W激活V的所有先前版本,

则W选择并显示V。

基线选择错误

冲突:同一项目的多个基线被选择。

版本选择错误

冲突:同一成品的多个版本被选择。如上所述,通过使用最近的公共原始版本作为合并的基础来合并多个版本,冲突可被解决。

间隙:激活的版本具有未被激活的先前版本。如上所述,通过向用户提供变化组的列表(如果其被加入可消除该间隙),间隙可被解决。

图6示出其中可实现本发明的计算机网络或类似的数字处理环境。

客户计算机/设备50和服务器计算机60提供执行应用程序等的处理、存储和输入/输出设备。客户计算机/设备50也可通过通信网络70与包括其它客户设备/处理器50和服务器计算机60的其它计算设备相连。通信网络70可以是远程访问网络、全球网络(例如因特网)、一组全球范围的计算机、局域或广域网和当前使用各协议(TCP/IP、蓝牙等)相互进行通信的网关的一部分。其它电子设备/计算机网络体系结构也是适合的。

图7是在图6的计算机系统中的计算机(例如客户处理器/设备50或服务器计算机60)的内部结构的示图。每一计算机50、60包含系统总线79,其中总线为用于在计算机或处理系统的部件中的数据传输的一组硬连线。总线79本质上是能够在部件之间进行信息传输的、连接计算机系统的不同部件(例如处理器、盘存储器、存储器、输入/输出端口、网络端口等)的共享通道。连接到系统总线79的是I/O设备接口82,用于将各种输入和输出设备(例如键盘、鼠标、显示器、打印机、扬声器等)与计算机50、60相连。网络接口86使计算机能够与连接到网络(例如图6的网络70)的各种其它设备相连。存储器90提供用于实现本发明实施例的计算机软件指令92和数据94(例如成品历史示图(或每一成品的类似基线和变化组数据)28、基线规则、版本规则、选择-错误考虑、和能够进行上述的成品版本的工作空间选择的系统11的例程)的易失性存储器。盘存储器95提供用于实现本发明实施例的计算机软件指令92和数据94的非易失性存储器。中央处理器单元84也与系统总线79相连并且提供计算机指令的执行。

在一个实施例中,处理器例程92和数据94为提供本发明系统的至少一部分软件指令的计算机程序产品(通常指92),其包括计算机可读介质(例如可移除存储介质,比如一个或多个DVD-ROM、CD-ROM、磁盘、磁带等)。计算机程序产品92可通过本领域公知的任何适合的软件安装程序被安装。在另一个实施例中,至少一部分软件指令也可通过电缆、通信和/或无线连接来下载。在其它实施例中,本发明的程序为体现为传播介质的传播信号(例如在诸如因特网或其它网络的全球网络上传播的无线波、红外波、激光波、声波或电波)的计算机程序传播信号产品107。这样的载波介质或信号提供本发明例程/程序92的至少一部分软件指令。

在可选实施例中,传播信号为传输介质上携带的模拟载波或数字信号。例如,传播信号可以是通过全球网络(例如因特网)、电信网或其它网络传播的数字信号。在一个实施例中,传播信号为通过传播介质在一段时间发送的信号,例如通过网络以毫秒、秒、分钟或更长时段分组发送的软件应用指令。在另一个实施例中,计算机程序产品92的计算机可读介质为例如通过接收传播介质并识别体现在传播介质上的传播信号计算机系统50可接收并读取的传播介质,如上面对计算机程序传播信号产品所描述的。

一般而言,术语“载波介质”或瞬时载波包括上述的瞬时信号、传播信号、传播介质、存储介质等。

本发明可采取完全为硬件的实施例、完全为软件的实施例或同时包含硬件和软件要素的实施例的形式。在优选的实施例中,以包含但不限固件、常驻软件、微代码等的软件实现本发明。

并且,本发明可采取可从提供程序代码的计算机可用或计算机可读介质访问的计算机程序产品的形式,该程序代码供计算机或任何指令执行系统使用或与其相关使用。为了说明的目的,计算机可用或计算可读介质可以是可包含、存储、传送、传播或传输供指令执行系统、装置或设备使用或与其相关使用的程序的任何装置。

介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或器件)或传播媒介。计算机可读介质的例子包括:半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前的例子包含紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)和DVD。

适于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接与存储元件耦合的处理器。存储元件可包括在程序代码的实际执行中使用的局部存储器、大容量存储器、和为了减少在执行中必须从大容量存储器取回代码的次数提供至少一些程序代码的临时存储的高速缓冲存储器。

输入/输出或I/O设备(包含但不限于键盘、显示器、指示装置等)可直接或通过居间的I/O控制器与系统耦合。

网络适配器也可与系统耦合,以使得数据处理系统能够通过居间的专用或公用网络与其它数据处理系统或远程打印机或存储设备耦合。调制解调器、电缆调制解调器和以太网卡仅是一些当前可用的类型的网络适配器。

尽管参照本发明的优选实施例已详细地说明和描述了本发明,但本领域的技术人员应当理解,在不脱离后附权利要求所包含的本发明的范围的情况下可进行形式和细节的各种变化。

例如,图6和7的计算机体系结构和网络配置只是说明而不是限制。其它计算机体系结构和配置也是适合的。

此外,表示目标工作空间的变化组、基线(项目)和成品版本的成品历史示图28也可作为本领域公知的链接表、数据阵列、树结构、目标或其它编程结构被实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号