首页> 中国专利> 模型变换中分析和呈现冲突以及自动协调模型变换的方法和系统

模型变换中分析和呈现冲突以及自动协调模型变换的方法和系统

摘要

提出了一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法和系统,所述方法包括以下步骤:将源模型与目标模型分别划分为源分段与目标分段;在源分段和目标分段之间创建链接;标识源模型或目标模型在分段级别上的改变;以及分析和呈现在源模型改变和目标模型改变之间的冲突。本发明还提出了一种用于自动协调模型变换的方法和系统,所述方法包括上述分析和呈现冲突的方法,还进一步包括以下步骤:根据上述分析和呈现冲突的方法所执行的分析结果,在存在冲突的情形下,解决源模型改变和目标模型改变之间的冲突;以及在冲突已被解决之后,或者在不存在冲突的情形下,构建出新的目标模型。

著录项

  • 公开/公告号CN101126976A

    专利类型发明专利

  • 公开/公告日2008-02-20

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200610115735.4

  • 申请日2006-08-15

  • 分类号G06F9/44(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;李峥

  • 地址 美国纽约

  • 入库时间 2023-12-17 19:45:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-10

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

    专利权的终止

  • 2010-02-03

    授权

    授权

  • 2008-04-16

    实质审查的生效

    实质审查的生效

  • 2008-02-20

    公开

    公开

说明书

技术领域

本发明一般涉及模型变换,具体而言,本发明涉及一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法和系统,并且本发明进一步还涉及一种用于自动协调模型变换的方法和系统。

背景技术

在面向对象技术领域中,统一建模技术是当前占据重要地位的一种技术。1997年,由OMG组织(Object Management Group)发布了统一建模语言(Unified Modeling Language,UML)。UML是一种定义良好、易于表达、功能强大且普遍实用的建模语言。它不仅可以支持面向对象的分析与设计,更重要的是能够有力地支持从需求分析开始的软件开发的全过程。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套统一的标准建模符号,使得IT专业人员能够进行计算机应用程序的建模。通过使用UML,这些专业人员能够阅读和交流系统架构和设计规划,就像建筑工人多年来所使用的建筑设计图一样。

UML成为“标准”建模语言的原因之一在于,它与程序设计语言无关。而且,UML符号集只是一种语言而不是一种方法学。这点很重要,因为语言与方法学不同,它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。它提供了多种类型的模型描述图,当在某种给定的方法学中使用这些图时,它使得开发中的应用程序更易理解。通过用标准的UML图来表达一个项目,精通UML的人员就更加容易理解该项目并迅速进入角色。最常用的UML图包括:例图、类图、序列图、状态图、活动图、组件图和部署图等。

以上为例,当高级模型被构建完毕后将被变换为低级模型,并且此情形还可出现在多种模型驱动的解决方案的开发过程中。接着,解决方案开发者可能通过细化、增强、优化、实现等方式来改变经过变换的低级模型。而出于以下原因,这些低级模型上的改变通常无法被反映在高级模型上:

1)高级模型和低级模型处于不同的抽象级别,因此某些低级改变过于细微而不会被反映在高级模型上。

2)对于复杂和大型解决方案的开发来说,其中包括多个解决方案开发者,而负责高级模型的开发者往往不是负责低级模型的开发者。因此,后者可能不愿意惹麻烦与前者进行沟通,以通知这些低级模型上的改变。

3)即使原因2)得以解决,也需要对改变后的低级模型进行反向变换。而反向变换就算不是不可能,也是很困难的。

那么,由以上可见,在原始的高级模型和改变后的低级模型之间存在差距。此外,根据不断变化的需求,原始的高级模型也必须被相应改变,并因此应该再次进行变换,以将新的改变反映到低级模型。例如,参考图1将使得该描述更加清晰。图1例示了对于所要解决的技术问题的图示描述,其中,s0为原始的高级模型(即改变前高级模型),t0为从s0经过变换得到的低级模型(即改变前低级模型),s1为根据需求对s0进行改变的改变后高级模型,t1为对t0进行改变的改变后低级模型,而t2为所需要的通过对s1进行变换同时包含t1中的必要改变的新生成的低级模型。可清楚看出,怎样在对s1进行变换的同时将现有的改变后低级模型t1考虑进来是一项巨大挑战,即,怎样呈现出s1和t1中的改变之间的冲突并使s1和t1中的改变相协调以生成新的t2,其难点主要在于:

1)怎样判断高级模型上的改变是否与低级模型上的现有改变相冲突?

2)怎样在再次变换中在新生成的低级模型中实现低级模型上的改变?

目前,可以由解决方案开发者手动解决这些问题。他们将改变后高级模型s1重新变换为全新的低级模型t2,比较所生成的低级模型t2与之前的改变后低级模型t1以找到两者之间的冲突并标识出可重用的模型元素,然后将从t0到t1的改变手动映射到t2来消除这些冲突。但是,手动方式具有以下两种明显缺点:

1)手动方式将花费大量工作和时间来分析冲突以及将兼容的改变从改变后低级模型t1拷贝到新生成的低级模型t2。

2)手动进行的冲突分析的准确性和一致性值得怀疑,其很大程度上依赖于解决方案开发者本人,而不是模型变换中的冲突自身。

因此,关键是要提供一种用于在模型变换过程中分析和呈现冲突以及自动协调模型变换的方法和系统,其减少了对于不停变化的需求调整解决方案的工作和困难,节省由模型驱动的解决方案的开发方法所带来的成本和时间,并且提高解决方案的质量和稳定性。

为了遵循公知的与模型变换相关的术语,在以下部分中,使用“源模型”来表示“高级模型”,使用“目标模型”来表示“低级模型”。

尽管还没有自动协调模型变换的方法或系统,但是存在一些相关的技术,包括但不局限于:1)Rational Software Architect(RSA)的双向工程;2)Eclipse Modeling Framework(EMF)中的模型代码同步;以及3)递增变换。下面对其一一加以对比和解释。

1)在http://www-306.ibm.com/software/awdtools/architect/swarchitect/处可找到关于RSA的细节。对于RSA中的双向工程,UML模型起初被自动变换为代码,模型元素的全球唯一标识(GUID,用于通过特定算法给某个实体(诸如文档)创建一个唯一的标识码,而GUID值就是这个唯一的标识码)被写入到对应代码元素的特殊注释中,以指示它们之间的跟踪关系。因此,对UML模型的改变可被自动反映到对应的代码,反之亦然。但是,该方案难于被应用到可协调的模型变换,因为:使用GUID来指示跟踪关系并没有强大到能够支持多个源元素被变换为多个目标元素的复杂变换。

2)在http://www.eclipse.org/emf处可找到关于EMF中的模型代码同步的细节。当将已改变的Ecore模型重新生成为代码时,EMF允许用户选择是否保护某些现有代码不被盖写。但是用户应该事先判断哪部分代码与已改变的Ecore模型不会冲突。

3)在Sven Johann,Alexander Egyed的“Instant and IncrementalTransformation of Models”(Proceedings of the 19th IEEE ICASE,Linz,Austria,2004年9月)中可找到关于递增变换的细节。上述文档解决了从源模型到目标模型的递增模型变换,即,仅有哪些已改变的源模型元素被重新变换,并被合并到之前的目标模型,以便节省工作。不过,此方案未考虑到之前的目标模型可能在重新变换之前被改变的情形。

发明内容

为了解决上述方案所存在的缺陷,并达到在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突,并自动协调模型变换的效果,而提出了本发明。

根据本发明的一个方面,提出了一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法,包括以下步骤:将源模型与目标模型分别划分为源分段与目标分段;在源分段和目标分段之间创建链接;标识源模型或目标模型在分段级别上的改变;以及根据所述源分段和目标分段之间的链接以及所标识的分段级别上的改变来分析在源模型改变和目标模型改变之间的冲突,并呈现冲突分析结果。

优选地,所述源模型包括改变前源模型和改变后源模型,其中所述目标模型包括改变前目标模型和改变后目标模型,其中所述改变前目标模型从改变前源模型变换而来。

优选地,所述方法还包括以下步骤:根据源模型到目标模型的模型变换规则来定义分段规则以及分段关系规则。

优选地,所述模型划分步骤根据所述分段规则以及分段关系规则来执行,通过应用所述分段规则以及分段关系规则来遍历所述改变前源模型、改变前目标模型,将上述两种模型划分为分段模型,得到两者的分段列表,并且基于上述划分出的分段列表,同样遍历所述改变后源模型和改变后目标模型,将该两种模型划分为分段模型,得到两者的分段列表。

优选地,所述创建链接步骤是根据预先定义的链接存在判断标准来执行的,其中所述链接存在判断标准是根据所述模型变换规则定义的,其中所述链接是一对一联系。

优选地,所述标识步骤还包括以下步骤:根据预先定义的分段比较标准来比较改变前模型与改变后模型之间的对应分段;以及根据预先定义的分段变化标识标准,标识出源模型变换成目标模型后在分段级别上的改变。

优选地,所述分段比较标准是基于源分段与目标分段的类型、主要属性和次要属性来建立的,所述比较结果包括相同、稍微不同以及完全不同。

优选地,所述分段变化标识标准是基于上述比较结果来定义的,所述分段级别上的改变包括:分段未改变、分段被添加、分段被删除和分段被修改,其中所述分段被修改还包括修改属性。

优选地,所述分析和呈现冲突的步骤还包括以下步骤:在所述改变前源模型上标记出源分段改变,以及在所述改变前目标模型上标记出目标分段改变;将带有所标记出的改变的改变前源模型和改变前目标模型合并起来;遍历合并结果并检测其中的源改变标记和目标改变标记来执行冲突分析,其中所述冲突分析步骤是根据预先定义的冲突标识标准来执行的;以及以可视方式呈现出在分段级别上的冲突。

优选地,所述以可视方式呈现出在分段级别上的冲突的步骤的执行结果为统一改变标记图,其是将所述改变前源模型和改变前目标模型中标记出的改变合并到同一个公共基础上而得出的。

在本发明其它实施例中,所述方法还包括以下步骤:由用户手动制定或调整以下各项中的至少一项:模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准以及冲突标识标准。

根据本发明的另一方面,提出了一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统,包括:分段划分器,用于将源模型与目标模型分别划分为源分段与目标分段;链接创建器,用于在源分段和目标分段之间创建链接;分段改变标识器,用于标识源模型或目标模型在分段级别上的改变;以及冲突分析与呈现器,用于根据所述源分段和目标分段之间的链接以及所标识的分段级别上的改变来分析在源模型改变和目标模型改变之间的冲突,并呈现冲突分析结果。

优选地,所述源模型包括改变前源模型和改变后源模型,其中所述目标模型包括改变前目标模型和改变后目标模型,其中所述改变前目标模型从改变前源模型变换而来。

优选地,所述系统还包括:规则定义装置,用于根据源模型到目标模型的模型变换规则来定义分段规则以及分段关系规则。

优选地,所述分段划分器还包括:划分装置,其根据所述分段规则以及分段关系规则来工作,用于通过所述分段规则以及分段关系规则来遍历所述改变前源模型、改变前目标模型,将上述两种模型划分为分段模型,得到两者的分段列表,并且基于上述划分出的分段列表,同样遍历所述改变后源模型和改变后目标模型,将该两种模型划分为分段模型,得到两者的分段列表。

优选地,所述链接创建器是根据预先定义的链接存在判断标准来工作的,其中所述链接存在判断标准是根据所述模型变换规则定义的,其中所述链接是一对一联系。

优选地,所述分段改变标识器还包括:比较装置,用于根据预先定义的分段比较标准来比较改变前模型与改变后模型之间的对应分段;以及改变标识装置,用于根据预先定义的分段变化标识标准,标识出源模型变换成目标模型后在分段级别上的改变。

优选地,所述分段比较标准是基于源分段与目标分段的类型、主要属性和次要属性来建立的,所述比较结果包括相同、稍微不同以及完全不同。

优选地,所述分段变化标识标准是基于上述比较结果来定义的,所述分段级别上的改变包括:分段未改变、分段被添加、分段被删除和分段被修改,其中所述分段被修改还包括修改属性。

优选地,所述冲突分析与呈现器还包括:标记装置,用于在所述改变前源模型上标记出源分段改变,以及在所述改变前目标模型上标记出目标分段改变;合并装置,用于将带有所标记出的改变的改变前源模型和改变前目标模型合并起来;分析装置,用于遍历合并结果并检测其中的源改变标记和目标改变标记来执行冲突分析,其中所述分析装置是根据预先定义的冲突标识标准来工作的;以及呈现装置,用于以可视方式呈现出在分段级别上的冲突。

优选地,所述呈现装置以可视方式呈现出在分段级别上的冲突的工作结果为统一改变标记图,其是将所述改变前源模型和改变前目标模型中标记出的改变合并到同一个公共基础上而得出的。

在本发明的其它实施例中,所述系统还包括:存储装置,用于存储以下各项中的至少一项:所述源分段和目标分段之间的链接、模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准以及冲突标识标准;以及用户接口,用于由用户手动制定或调整所述规则与标准。

根据本发明的再一方面,提出了一种用于自动协调模型变换的方法,所述方法包括所述在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法,还进一步包括以下步骤:根据所述在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法所执行的分析结果,在存在冲突的情形下,解决源模型改变和目标模型改变之间的冲突;以及在冲突已被解决之后,或者在不存在冲突的情形下,构建出新的目标模型。

优选地,所述解决冲突的步骤根据预先定义的冲突解决标准来批量处理冲突,或者由用户手动地逐个分段冲突地处理冲突。

优选地,所述构建新的目标模型的步骤是根据预先定义的协调规则顺序地对于每个分段来执行的,其通过重新使用所述改变后目标模型的分段或者基于所述改变后目标模型的分段进行修改、或者基于冲突解决之后的所述改变后源模型的分段进行变换,并将两者的执行结果合并在一起。

在本发明其它实施例中,所述方法还包括以下步骤:由用户手动制定或调整以下各项中的至少一项:模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准、冲突解决标准以及协调规则。

根据本发明又一方面,提出了一种用于自动协调模型变换的系统,包括所述在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统,还包括:冲突解决向导,用于根据所述在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统的分析结果,在存在冲突的情形下,解决源模型改变和目标模型改变之间的冲突;以及分段协调器,用于在冲突已被解决之后,或者在不存在冲突的情形下,构建出新的目标模型。

优选地,所述冲突解决向导根据预先定义的冲突解决标准来批量处理冲突,或者由用户手动地逐个分段冲突地处理冲突。

优选地,所述分段协调器是根据预先定义的协调规则顺序地对于每个分段来工作的,其通过重新使用所述改变后目标模型的分段或者基于所述改变后目标模型的分段进行修改、或者基于冲突解决之后的所述改变后源模型的分段进行变换,并将两者的执行结果合并在一起。

在本发明其它实施例中,所述系统还包括:存储装置,用于存储以下各项中的至少一项:所述源分段和目标分段之间的链接、模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准、冲突解决标准以及协调规则;以及用户接口,用于由用户手动制定或调整所述规则与标准。

根据本发明又一方面,提出了一种可被加载到计算机上的包括程序代码工具的计算机程序产品,当所述计算机程序产品在计算机上运行时,所述程序代码工具适于执行所述在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法以及所述用于自动协调模型变换的方法的所有步骤。

本发明所提出的用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法和系统以及用于自动协调模型变换的方法和系统,减少了对于不停变化的需求调整解决方案的工作和困难,节省了由模型驱动的解决方案的开发方法所带来的成本和时间,并且提高了解决方案的质量和稳定性。

附图说明

在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过参考以下结合附图的阐述性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目标和优点,在附图中:

图1例示了对于所要解决的技术问题的图示描述;

图2例示了根据本发明实施例的分段模型的元模型;

图3例示了根据本发明实施例的两种功能模型MetaS和MetaT,其中MetaS定义了一种简化的流类型的过程模型,而MetaT定义了一种简化的结构化类型的过程模型;

图4例示了根据本发明实施例的一种变换TR,其中变换TR根据基本概念的不同将源模型中的源分段变换为目标模型中的目标分段;

图5例示了根据本发明实施例的在TR的语境下得到的在MetaS和MetaT之间的节点之间的联系以及彼此的包括关系;

图6例示了根据本发明实施例的改变前源模型s0、改变后源模型s1、改变前目标模型t0和改变后目标模型t1的简要示意图;

图7例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法的流程图;

图8例示了源分段模型以及目标分段模型,及其相互关系;

图9例示了根据本发明实施例的统一改变标记图(UCMG);

图10例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法的执行逻辑;

图11例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统;

图12例示了根据本发明的一种用于自动协调模型变换的方法的流程图;

图13例示了根据本发明实施例的冲突解决之后的统一改变标记图(UCMG)的示例,其中每个存在冲突的节点被遍历,并根据上述冲突解决标准或者手动被更新为仅存在一个有效结果;

图14示出了根据本发明实施例将协调规则应用到本发明的示例性UCMG中的所有节点的一个示例;

图15例示了根据本发明实施例所生成的最终的新模型t2;

图16例示了根据本发明的一种用于自动协调模型变换的方法的执行逻辑;以及

图17例示了根据本发明的一种用于自动协调模型变换的系统。

注意,在全部附图中,使用相同的标号来表示相同或相似的部件或单元。

具体实施方式

本发明的一个主要观点在于其基于分段的方案,所述方案用于分析和呈现冲突以及重新使用先前的兼容改变。模型分段是模型元素集合的一个子集,并且在模型变换过程中可被模型变换规则实例接受作为其有效的源或目标,即,在本发明中所述模型分段在模型变换过程中表现为将被变换的单元或变换结果单元。如果模型分段作为模型变换规则实例的源,则它被称为源模型分段,或者源分段。同样,如果模型分段作为模型变换规则实例的目标,则它被称为目标模型分段,或者目标分段。分段由模型的分段、每个分段的语义以及分段之间的关系所组成,其元模型如图2所示。图2例示了根据本发明实施例的分段模型的元模型。在图2中,分段模型210可以具有1...n个分段220和1...n个分段关系230。每一分段220可以具有相应的分段类型240。另外,每一分段220可以具有1...n个模型元素250,其中模型元素250可包括源模型元素260和目标模型元素270。类似地,分段关系230可以具有分段关系类型280。而至少两个分段220之间可以具有1...n个分段关系230。基于特定的模型变换规则,不难确定出由源分段和目标分段所共享的相应的分段类型和分段关系的类型。还可以通过特定模型变换规则来构建将源模型和/或目标模型划分为分段的规则。

在一示例性实施例中,构建两个功能模型:MetaS和MetaT,如图3所示。图3例示了根据本发明实施例的两种功能化模型MetaS和MetaT,其中MetaS定义了一种简化的流类型的过程模型,而MetaT定义了一种简化的结构化类型的过程模型。尽管进行了简化处理,MetaS和MetaT仍是有意义的,因为两者均支持实际建模过程中的基本概念,例如,活动(Activity)、序列(Sequence)和选择(Choice)等等。在图3中,标号1、2表示两个节点之间所需的接口数目,而in、out分别表示该接口为入接口或出接口。例如,从连接(Connection)节点有两个到选择(Choice)节点的out_conn接口,用来表示过程分支,其通过位于选择(Choice)节点的一个s_choice接口来到选择(Choice)节点,经过条件选择,其结果通过位于选择(Choice)节点的一个t_choice接口回到位于连接(Connection)节点的一个in_conn接口,从而回到连接(Connection)节点。对于本领域普通技术人员来说,参照上述内容同样易于理解其它节点及接口的描述,在此不再一一进行具体的说明。

此外,还需要构建从源模型(源分段)到目标模型(目标分段)的一种具体变换TR,如图4所示。图4例示了根据本发明实施例的一种变换TR,其中变换TR根据源分段和目标分段所对应的节点的不同而将源模型中的源分段变换为目标模型中的目标分段,例如,MetaS中的活动(Activity)节点将被变换为MetaT中的任务(Task)节点,MetaS中的选择(Choice)节点将被变换为MetaT中的转换(Switch)节点等等。这样,如图5所示,例示了根据本发明实施例的在TR的语境下得到的在MetaS和MetaT之间的节点之间的联系以及彼此的包括关系。图5中的箭头所指向的节点表示被包括的关系。

在详细介绍本发明的优选实施方式之前,为了有助于本领域普通技术人员对本发明的理解,首先描述源模型和目标模型的示例。所述示例参考以上图1所述的改变前源模型s0、从s0经过变换得到的改变前目标模型t0、根据需求对s0进行改变的改变后源模型s1、以及对t0进行细节改变的改变后目标模型t1。上述改变包括添加元素、删除元素、合并元素、分割元素、修改元素属性等。注意,在本说明书中所提到的元素的具体数目在未加明确说明的情况下均表示一个或多个。

参考图6可以更好地理解s0、s1、t0和t1,图6例示了根据本发明实施例的s0、s1、t0和t1的简要示意图。在该示例性实施例中,上述s0是根据以上图3所述MetaS而构建的,其描述订单处理中的简要步骤:检查所接收订单的有效性(CO);确定该订单是否有效(VO);如果有效,则根据订单需求安排生产(AP),并计算总体价格(CP);否则将订单无效通知客户(NC)。接着,通过TR将s0变换为t0,t0是根据以上图3所述MetaT而构建的,在此省略作为现有技术的其具体变换过程。注意,在从源模型向目标模型进行变换时,其分段名称(例如,CO、VO、AP等)不会改变。为了模拟根据不断变化的需求而改变s0的真实环境,通过在s0中的通知客户(NC)步骤之前添加记录(LOG)步骤,则s0被改变为s1。为了模拟根据改进和具体化而改变t0的真实环境,通过将t0中的任务计算价格(CP)分割成两个任务:计算货物价格(CGP)和计算货运价格(CSP),并将对其的实现添加到t0中,则t0被改变为t1。注意,为简要说明起见,在此仅例示了对s0和t0的最简单的改变,而在实际实现中,任意复杂的改变及其组合都是可能的。

通过上述对改变前源模型s0、改变前目标模型t0、改变后源模型s1以及改变后目标模型t1的详细描述和示例性说明,将有助于本领域普通技术人员理解下面的本发明的方法和系统。本发明首先提出了一种在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法。该方法利用基于分段的方案。下面就结合附图对该方法进行详细的说明。

现在参见图7,图7例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法的流程图。如图7所示,首先在步骤710,将源模型与目标模型分别划分为源分段与目标分段,其中所述源分段与目标分段是模型元素集合的一个子集,并且其在模型变换过程中可被模型变换规则实例接受作为其有效的源或目标,即,在本发明中所述模型分段在模型变换过程中表现为将被变换的单元或变换结果单元。具体而言,此步骤可遵循以下的详细过程。

首先,在步骤712,从用户接收作为系统输入的改变前源模型s0、改变后源模型s1、改变前目标模型t0和改变后目标模型t1。

接着,在步骤714,根据源模型到目标模型的变换TR来定义一组模型分段规则以及分段关系规则。实际上,所述分段规则可以被看作是通过元模型元素所表达的对模型的查询。该步骤可分别对改变前源模型s0和改变前目标模型t0执行,以得到分别对应于两者的模型分段规则以及分段关系规则。对于示例性的变换TR,其中可以存在这样的变换规则,其用来标识源模型中的每个动作(Activity)节点,并将其转换为目标模型中的任务(Task)节点。由此可以定义一示例性的源分段规则:

Activity_Seg_S::={element|element∈source model∧isTypeOf(element,‘Activity’)},

以及一示例性的目标分段规则:

Task_Seg_T::={element|element∈target model∧isTypeOf(element,‘Task’)}。

同样地,可以定义其它分段规则。由于这些规则都是根据实际TR来进行定义的,因此无法一一进行列举,所述分段规则还包括但不局限于:用于选择(choice)节点的源分段规则Choice_Seg_S和用于转换(switch)节点的目标分段规则Switch_Seg_T;用于序列(sequence)节点的源/目标分段规则Sequence_Seg_S和Sequence_Seg_T;以及用于分支(branch)节点的源分段规则“Branch_Seg_S”和用于范例(case)节点的目标分段规则“Case_Seg_T”。在可选实施例中,这些分段规则还可手动进行修改、添加和删除。

此外,在给定任意分段seg1和任意分段seg2的情形下,一示例性的分段关系规则为:

Include_Rel(seg1,seg2)::=seg1seg2,

其表示给定分段seg1被给定分段seg2所包括。

接着在步骤716,通过应用上述分段规则以及分段关系规则来遍历整个源模型s0和目标模型t0,将输入的改变前源模型s0和改变前目标模型t0划分为分段模型。这样,改变前源模型s0和改变前目标模型t0可以被分别理解为分段列表。例如,将Activity_Seg_S应用于s0将生成四个活动(Activity)分段:{‘CO’:Activity}、{‘AP’:Activity}、{‘CP’:Activity}和{‘NC’:Activity},并且将Task_Seg_T应用于t0将生成四个任务(Task)分段:{‘CO’:Task}、{‘AP’:Task}、{‘CP’:Task}和{‘NC’:Task}。

通过分别将适当的源分段规则应用于s0以及将适当的目标分段规则应用于t0,可得到源分段模型SegMdl_S以及目标分段模型SegMdl_T,如图8所示。图8例示了源分段模型SegMdl_S以及目标分段模型SegMdl_T,及其相互关系。在图8中,左边的框表示源分段模型SegMdl_S,右边的框表示目标分段模型SegMdl_T,而从一个分段到另一分段的直线箭头表示该两者之间的包括关系,其中箭头所指一方表示被包括一方。从图8中可以清楚看出步骤710执行的结果:包括若干分段及其相互关系、结构和语义的源分段模型和目标分段模型。

根据上述步骤716并基于改变前源模型s0和改变前目标模型t0被划分出的分段列表,同样遍历改变后源模型s1和改变后目标模型t1,并对其进行划分,以得到s1和t1的分段模型。

接着在步骤720,在源分段和目标分段之间创建链接(linkage)。具体而言,根据变换TR来创建源分段与目标分段之间的链接,其是一种一对一联系。例如,变换TR将源模型s0中的每个“活动(Activity)”节点转换为目标模型t0中具有同一名称的“任务(Task)”节点。据此,可以确定在适用于规则“Activity_Seg_S”的源分段seg_s和适用于规则“Task_Seg_T”的目标分段seg_t之间存在变换链接,而判断该链接存在的标准如下:

ExistLinkage(seg_s,seg_t)::=(e1.name==e2.name),e1∈seg_s,e2∈seg_t,

即,只要该源分段seg_s的分段名称与该目标分段seg_t的分段名称相同,即可判断该链接存在。

同样地,可以定义其它根据变换TR的链接存在判断标准,包括但不限于:适用于规则“Branch_Seg_S”的源分段和适用于规则“Case_Seg_T”的目标分段的链接存在判断标准、适用于规则“Choice_Seg_S”的源分段和适用于规则“Switch_Seg_T”的目标分段的链接存在判断标准、以及适用于规则“Sequence_Seg_S”的源分段和适用于规则“Sequence_Seg_T”的目标分段的链接存在判断标准。通过分别对s0和t0的对应分段应用上述链接存在判断标准,本领域普通技术人员可以观察到,源分段模型SegMdl_S以及目标分段模型SegMdl_T成为同构的。对于标识源分段一侧的改变和目标分段一侧的改变,并将两者合并到同一基础上以标识两者之间的冲突,该特性可以是非常重要的。可以在如下的表1中描述该特性:

  (seg_s∈SegMdl_S->seg_t∈SegMdl_T,ExistLinkage(seg_s,seg_t))∧  (seg_t∈SegMdl_T->seg_s∈SegMdl_S,ExistLinkage(seg_s,seg_t))∧  ((seg0_s,seg1_s)∈SegMdl_S->seg0_t∈SegMdl_T,seg1_t∈  SegMdl_T,ExistLinkage(seg0_s,seg0_t)∧ExistLinkage(seg1_s,seg1_t)  ∧(seg0_t,seg1_t)∈SegMdl_T)∧  ((seg0_t,seg1_t)∈SegMdl_T->seg0_s∈SegMdl_S,seg1_s∈  SegMdl_S,ExistLinkage(seg0_s,seg0_t)∧ExistLinkage(seg1_s,seg1_t)  ∧(seg0_s,seg1_s)∈SegMdl_S)

表1

如表1所示,该特性可用文字描述为:给定源分段模型SegMdl_S中的seg_s,在目标分段模型SegMdl_T中存在seg_t,在seg_s与seg_t之间存在链接;或者给定目标分段模型SegMdl_T中的seg_t,在源分段模型SegMdl_S中存在seg_s,在seg_s与seg_t之间存在链接;或者给定源分段模型SegMdl_S中的seg0_s、seg1_s,在目标分段模型SegMdl_T中分别存在seg0_t、seg1_t,在seg0_s与seg0_t之间或者在seg1_s与seg1_t之间存在链接;或者给定目标分段模型SegMdl_T中的seg0_t、seg1_t,在源分段模型SegMdl_S中分别存在seg0_s、seg1_s,在seg0_s与seg0_t之间或者在seg1_s与seg1_t之间存在链接。

接着,在步骤730,标识源模型或目标模型在分段级别上的改变,即,标识改变前源模型s0与改变后源模型s1之间、以及改变前目标模型t0与改变后目标模型t1之间在分段级别上的改变。具体而言,此步骤可遵循以下的详细过程。

首先在步骤732,比较改变前模型(诸如s0或t0)与改变后模型(诸如s1或t1)之间的对应分段,检查它们是相同(表示为“=”)、稍微不同(表示为“≈”)还是完全不同(表示为“≠”)。例如,给定任意两个分段seg1和seg2,可以在如下的表2中示出用于比较它们的分段比较标准:

  结果  分段比较标准  类型  主要属性  次要属性  seg1=seg2  相同  MajP,seg1.MajP=  seg2.MajP  MirP,seg1.MirP  =seg2.MirP  seg1≈seg2  相同  MajP,seg1.MajP=  seg2.MajP  MirP,seg1.MirP  ≠seg2.MirP  seg1≠seg2  相同  MajP,seg1.MajP≠  seg2.MajP  /  不同  /  /

表2

如表2所示,如果两个分段seg1和seg2为同一类型,且它们所有相应的主要属性和次要属性均等同,则它们被看作是相同的;如果两个分段seg1和seg2为同一类型,且它们所有相应的主要属性等同,但是它们的某些相应的次要属性不同,则它们被看作是稍微不同的;如果两个分段seg1和seg2为同一类型,且它们的某些相应的主要属性不同,则它们被看作是完全不同的;如果两个分段seg1和seg2为不同类型,则它们被看作是完全不同的。其中,分段的主要属性指的是分段的基本描述,其是不可改变的,例如,唯一ID(UID),而分段的次要属性指的是分段的辅助性描述和说明,例如,分段名称。

此步骤732分别在s0和s1之间、在t0和t1之间进行比较,并得出各自的比较结果。

在上述比较步骤732被执行之后,接着在步骤734,标识出源模型变换成目标模型后在分段级别上的改变。根据基于比较结果的分段变化标识标准,可以标识出一个模型在被变换为另一模型时其在分段级别上的改变。在给定模型M被改变为M’的情形中,可以在如下的表3中示出用于标识它们在分段级别上的改变的分段变化标识标准,其中seg和seg’分别对应于模型M和模型M’中的对应分段:

结果分段变化标识标准seg未改变seg∈SegMdl_M∧(seg’∈SegMdl_M’,seg=seg’)seg’被添加seg’∈SegMdl_M’∧(seg∈SegMdl_M,!(seg’=segseg’≈seg))seg被删除seg∈SegMdl_M∧(seg’∈SegMdl_M’,!(seg=seg’seg≈seg’))seg被修改seg∈SegMdl_M∧(seg’∈SegMdl_M’,seg≈seg’)

表3

如表3所示,对于M中的seg而言,如果存在seg=seg’,则seg未改变;对于M’中的seg’而言,如果不存在seg’=seg或者seg’≈seg,则seg’被添加;对于M中的seg而言,如果不存在seg=seg’或者seg≈seg’,则seg被删除;对于M中的seg而言,如果存在seg≈seg’,则seg被修改。

对于被修改的分段,需要获取更多细节来记录确切的修改属性,这对于准确的冲突分析(将在后面进一步描述)是很必要的。如果某个分段的子分段已被标识为被改变,例如被添加、被修改或者被删除,则该分段也要被标识为被修改。例如,在本示例中,分段{‘SEQ1’:Sequence,‘AP’:Activity,‘CP’:Activity}被标识为被修改,因为其子分段{‘CP’:Activity}被标识为被删除,此时,其子分段CP被删除将作为分段SEQ1的修改属性被标识出来。

接着,在步骤740,根据所述源分段和目标分段之间的链接以及根据步骤730所标识的分段级别上的改变来分析源模型改变和目标模型改变之间的冲突,并呈现冲突分析结果。由于源模型s0、s1之间的改变和目标模型t0、t1之间的改变是在彼此不知情的情形下各自独立做出的,因此在对两者进行协调时很有可能存在冲突。举例而言,仍以前述示例为描述对象,假设源模型中的节点{‘CO’:Activity}被变换为目标模型中的节点{‘CO’:Task}。根据需求在源模型一方源模型节点{‘CO’:Activity}被删除,但是在目标模型一方目标模型节点{‘CO’:Task}被修改为{‘CCOO’:Task},那么显而易见,它们之间存在冲突,因为两者在进行协调时无法被同时接受。因此,需要将两者的冲突进行简要的分析,并呈现出来。具体而言,此步骤可遵循以下的详细过程。

首先,在步骤742,在改变前源模型s0上标记出从s0到s1的源分段改变,以及在改变前目标模型t0上标记出从t0到t1的目标分段改变。之所以选择s0和t0作为标记改变的基础,是因为s0和t0具有同构结构,这有利于接下来对冲突进行分析和呈现。

在步骤744,将带有所标记出的改变的改变前源模型s0和改变前目标模型t0合并起来。如上所述,因为改变前源模型s0和改变前目标模型t0是同构的,因此可以将两者中标记出的改变合并到同一个公共基础上。在本实施例中,该基础可以是所谓的统一改变标记图(UCMG),如图9所示。图9例示了根据本发明实施例的统一改变标记图(UCMG)。在图9的UCMG中,将从s0到s1的分段改变以及从t0到t1的分段改变标记在与s0及t0的分段模型同构的公共结构上。该公共结构中的每一节点对应于两个子节点,其中在每一节点中位于左边的子节点表示源分段改变,在每一节点中位于右边的子节点表示目标分段改变。左/右子节点框中的字母分别表示所标识出的源/分段改变结果,例如,N表示未改变,A表示被添加,D表示被删除,M…表示被修改,其中还带有修改属性。

在步骤746,利用图9的UCMG,通过遍历其整个结构并检测每个节点的改变标记来执行冲突分析。例如,显而易见,如果某一节点的源分段与目标分段的对应标记均为“N”(未改变)或“D”(被删除),则认为该节点不存在冲突;否则认为该节点存在潜在的冲突。需要进一步定义辅助的冲突标识标准来诠释哪些情形确实存在冲突而哪些情形不存在冲突。例如可以在如下的表4中示出所述的冲突标识标准:

  结果  冲突标识标准  源分段改变标记  目标分段改变标记  冲突  N  A/D/M...  冲突  A/D/M...  N  冲突  M...  D  冲突  D  M...  无冲突  M.sub_seg  M.sub_seg  (Source)M.sub_seg≠(Target)M.sub_seg  ...  ...  ...

表4

如表4所示,例如,当源分段改变标记为“N”,而目标分段改变标记为其它字母(例如“A”、“D”或“M...”)时,认为该节点存在冲突;而当源分段与目标分段不同时,认为该节点无冲突。本领域普通技术人员可以类似地理解表4中的其它冲突标识标准。注意,表4中的这些冲突标识标准仅是示例性的和列举性的,而非限制性的,为适应不同实施例的需要也可以定义更多或更少个冲突标识标准,或者对当前列出的冲突标识标准进行修改。通过对UCMG中的每个节点应用上述这些冲突标识标准,可以分析出某些节点上在源模型改变和目标模型改变之间是否存在冲突。

在步骤748,以可视方式呈现出在分段级别上的冲突。这同样可以体现在图9所示的UCMG中。例如,将存在冲突的节点与不存在冲突的节点标记为不同颜色、不同大小,或者仅对用户显示存在冲突的节点,或者本领域普通技术人员可以想到的其它方式。

通过所得到的图9所示的可视化的统一改变标记图(UCMG),可以在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突。需要注意,以上的方法实施例仅是示例性的,在不背离本发明的主旨的情况下,可以增加或删除某些步骤,或将其中的某些步骤结合在一起或者进一步分割成几个步骤来进行。此外,在本实施例中,是利用统一改变标记图(UCMG)来呈现冲突的,但是,只要能够达到本发明的目的,任何其它的呈现方式(例如,源分段和目标分段一对一形式的分段列表)都是允许的,都处于本发明的保护范围之内。

可选地,在本发明其它实施例中,上述方法还可以包括以下步骤:由用户手动制定或调整所述各种规则与标准,例如模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准等。

现在参见图10,图10例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法的执行逻辑。从图10中可清晰看出,所输入的s0、s1、t0和t1可分别进行分段划分(710)并标识出分段改变(730),在s0和t0之间根据实际变换创建链接(720),并基于变换链接连同从s0到s1的分段改变以及从t0到t1的分段改变来分析和呈现冲突(740)。

在同一发明构思下,本发明提出一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统。下面就结合附图对该系统进行详细说明。

图11例示了根据本发明的一种用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统1100。如图11所示,该系统1100包括分段划分器1110、链接创建器1120、分段改变标识器1130、冲突分析与呈现器1140。

分段划分器1110将源模型与目标模型分别划分为源分段与目标分段,其中所述源分段与目标分段是模型元素集合的一个子集,并且在模型变换过程中可被模型变换规则实例接受作为其有效的源或目标,即,在本发明中所述模型分段在模型变换过程中表现为将被变换的单元或变换结果单元。如图11所示,分段划分器1110进一步包括接收装置1112、规则定义装置1114和划分装置1116。

接收装置1112从用户接收作为系统的输入的改变前源模型s0、改变后源模型s1、改变前目标模型t0和改变后目标模型t1。

规则定义装置1114根据源模型到目标模型的变换TR来定义一组模型分段规则以及分段关系规则。规则定义装置1114可分别对改变前源模型s0和改变前目标模型t0进行操作,以得到分别对应于两者的模型分段规则以及分段关系规则。示例性的模型分段规则以及分段关系规则在上文中已经详述,在此不再重复。

划分装置1116通过应用上述分段规则以及分段关系规则来遍历整个源模型s0和目标模型t0,将输入的改变前源模型s0和改变前目标模型t0划分为分段模型。这样,改变前源模型s0和改变前目标模型t0可以被分别理解为分段列表。基于改变前源模型s0和改变前目标模型t0被划分出的分段列表,同样遍历改变后源模型s1和改变后目标模型t1,并对其进行划分,以得到s1和t1的分段模型。

链接创建器1120在源分段和目标分段之间创建链接。具体而言,链接创建器1120根据变换TR来创建源分段与目标分段之间的链接,其是一种一对一联系。链接存在判断标准已在以上表1中详述,在此不再重复。

分段改变标识器1130标识源模型或目标模型在分段级别上的改变,即,标识改变前源模型s0与改变后源模型s1之间、以及改变前目标模型t0与改变后目标模型t1之间在分段级别上的改变。分段改变标识器1130进一步包括比较装置1132和改变标识装置1134。

比较装置1132基于分段比较标准来分别比较改变前源/目标模型(诸如s0/t0)与改变后源/目标模型(诸如s1/t1)之间的对应分段,检查它们是相同(表示为“=”)、稍微不同(表示为“≈”)还是完全不同(表示为“≠”)。分段比较标准已在以上表2中详述,在此不再重复。

标识装置1134基于分段变化标识标准标识出源模型变换成目标模型后在分段级别上的改变。分段变化标识标准已在以上表3中详述,在此不再重复。对于被修改的分段,需要获取更多细节来记录确切的修改属性。

冲突分析与呈现器1140根据所述源分段和目标分段之间的链接以及根据步骤730标识出的结果来分析和呈现在源模型改变和目标模型改变之间的冲突。冲突分析与呈现器1140进一步包括标记装置1142、合并装置1144、分析装置1146和呈现装置1148。

标记装置1142在改变前源模型s0上标记出从s0到s1的源分段改变,以及在改变前目标模型t0上标记出从t0到t1的目标分段改变。

合并装置1144将带有所标记出的改变的改变前源模型s0和改变前目标模型t0合并起来。如上所述,因为改变前源模型s0和改变前目标模型t0是同构的,因此可以将两者中标记出的改变合并到同一个公共基础上。在本实施例中,该基础是所谓的统一改变标记图(UCMG)(图9)。

分析装置1146利用图9的UCMG,通过遍历其整个结构并检测每个节点的改变标记来执行冲突分析。需要进一步定义辅助的冲突标识标准来诠释哪些情形确实存在冲突而哪些情形不存在冲突。其中所述冲突标识标准已在以上表4中详述,在此不再重复。通过对UCMG中的每个节点应用上述这些冲突标识标准,可以分析出某些节点上在源分段改变和目标分段改变之间是否存在冲突。

呈现装置1148以可视方式呈现出在分段级别上的冲突。这同样可以体现在图9所示的UCMG中。例如,将存在冲突的节点与不存在冲突的节点标记为不同颜色、不同大小,或者仅对用户显示存在冲突的节点,或者本领域普通技术人员可以想到的其它方式。

可选地,在本发明其它实施例中,上述系统1100还可以包括:存储装置,用于存储上述源分段和目标分段之间的链接以及所述的各种规则与标准,例如模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准等;以及用户接口,用于由用户手动制定或调整所述各种规则与标准。尽管上述装置未在图中明确示出,但本领域普通技术人员将理解,所述存储装置与用户接口均是本领域所公知的装置,在此省略其详细描述。

以上是对本发明的用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统的详细描述,该系统及其组成部分可以用硬件软件、或者软硬件结合的方式实现,并且根据需要可以与其它系统相结合。

在通过本发明的方法与系统在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突之后,仍存在进一步的对于自动协调模型变换的需求。具体而言,需要在模型变换过程中自动协调改变后源模型s1的变换,同时将改变后目标模型t1中的改变考虑进来,以生成新的目标模型t2。因此,为解决这一问题,本发明提出了一种自动协调模型变换的方法和系统。首先在下面结合附图对本发明的自动协调模型变换的方法进行详细说明。

现在参见图12,图12例示了根据本发明的一种用于自动协调模型变换的方法的流程图。如图12所示,本发明的自动协调模型变换的方法包括本发明的在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法(如图7所示),并且还进一步包括下述过程。

根据图7的步骤740所执行的分析结果,在存在冲突的情形下,进入步骤1210。在步骤1210,解决源模型改变和目标模型改变之间的冲突。这些冲突可以通过预先定义的冲突解决标准来进行批量处理,或者由用户手动地逐个节点地处理这些冲突。为了提高效率并增加稳定性,优选地需要预先定义冲突解决标准。可以在如下的表5中示出示例性的冲突解决标准:

  结果  冲突解决标准  源分段改变标记  目标分段改变标记  保留目标分段的改变  N  A/D/M...  保留源分段的改变  A/D/M...  N  保留目标分段的改变  M...  D  保留源分段的改变  D  M...  ...  ...  ...

表5

注意,表5中的这些冲突解决标准仅是示例性的和列举性的,而非限制性的,为适应不同实施例的需要也可以定义更多或更少个冲突解决标准,或者对现有冲突解决标准进行修改。通过对图9中的UCMG中的每个存在冲突的节点应用这些冲突解决标准,可以解决UCMG中的每个节点上的源分段和目标分段之间的冲突(如果存在的话)。在某些实施例中,当出现所述冲突解决标准未涉及的情形时,该节点上的冲突由用户进行手动处理。在进行冲突处理之后,图9中的UCMG可被更新,如图13所示。图13例示了根据本发明实施例的冲突解决之后的统一改变标记图(UCMG)的示例,其中每个存在冲突的节点被遍历,并根据上述冲突解决标准或者手动被更新为仅存在一个有效结果。

在步骤1210生成冲突解决之后的UCMG之后,或者如果在图7的步骤740分析出所有分段改变都不存在冲突,则进入步骤1220。在步骤1220,构建出新的目标模型t2。此步骤1220是根据预先定义的协调规则顺序地对于每个分段来执行的,或者通过重新使用改变后目标模型t1的分段或者基于t1的分段进行修改、或者基于冲突解决之后的UCMG而从改变后源模型s1的分段进行变换,并将两者的执行结果合并在一起。

假定node.seg_s1表示s1中的某个节点的对应分段,而node.seg_t1表示t1中的某个节点的对应分段,那么应用以下协调规则来构建新目标模型t2的分段:

1)如果该节点的源标记“N”和目标标记“N”都被保留,则将node.seg_t1拷贝到t2;

2)如果该节点的源标记“A”被保留,则对node.seg_s1进行变换并将得出的分段添加到t2;

3)如果该节点的目标标记“A”被保留,则将node.seg_t1从t1拷贝到t2;

4)如果该节点的源标记是“M.sub_seg”且其目标标记也是“M.sub_seg”,则对node.seg_s1.sub_seg进行变换,并用得出的分段来替换node.seg_t1.sub_seg,再将如此得出的node.seg_t1拷贝到t2;

5)如果仅该节点的源标记“M.sub_seg”被保留,则对node.seg_s1.sub_seg进行变换,并用得出的分段来替换node.seg_t1.sub_seg,再将如此得出的node.seg_t1拷贝到t2;

6)如果仅该节点的目标标记“M.sub_seg’被保留,则将node.seg_t1从t1拷贝到t2;以及

7)如果该节点的源标记“D”或者目标标记“D”被保留,则不复制任何内容到t2。

图14例示了根据本发明实施例的将上述协调规则应用到本发明的示例性UCMG中的所有节点的一个示例。其中的圆圈中的数字代表对应节点所应用的上述协调规则的序列号。注意,上述协调规则并非穷尽性的或局限性的,其可以被添加、修改、删除或组合,以适应本发明其它实施例的实际需求。

在将上述协调规则应用到本发明的示例性UCMG中的所有节点之后,可以得到t2的所有分段。通过在步骤1220中合并分段中的所有模型元素并移除重复元素,将生成最终的t2,如图15所示。图15例示了根据本发明实施例所生成的最终的t2。在图15中,除了LOG元素之外的所有元素都是来自t1,因此解决方案开发者仅需要对LOG元素进行具体化,这节省了他的工作。注意,本发明的实施例仅是个简单的示例,而在应用领域中的大型的模型驱动开发流程中,这种自动协调模型变换的方式可以极大地提高工作效率,节省时间,并且增加稳定性。需要注意,以上的实施例仅是示例性的,在不背离本发明的主旨的情况下,可以增加或删除某些步骤,或将其中的某些步骤结合在一起进行。

可选地,在本发明其它实施例中,上述方法还可以包括以下步骤:由用户手动制定或调整所述各种规则与标准,例如模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准、冲突解决标准、协调规则等。

图16例示了根据本发明的一种用于在模型变换过程中自动协调模型变换的方法的执行逻辑。从图16中可清晰看出,所输入的s0、s1、t0和t1可分别进行分段划分(710)并标识出分段改变(730),在s0和t0之间根据实际变换创建链接(720),并基于变换链接连同从s0到s1的分段改变以及从t0到t1的分段改变来分析和呈现冲突(740)。以上与图10所例示的执行逻辑相同。接着根据步骤740所执行的冲突分析结果,如果存在冲突则解决该冲突(1210),接着根据冲突解决以后的UCMG或者在不存在冲突情况下的UCMG来构建新的目标模型t2(1220)。

在同一发明构思下,本发明提出一种用于自动协调模型变换的系统。下面就结合附图对该系统进行详细说明。

图17例示了根据本发明的一种用于自动协调模型变换的系统1700。如图17所示,该系统1700包括本发明的在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的系统1100(如图11所示),并且还进一步包括:冲突解决向导1710和分段协调器1720。

根据图11的分析装置1146所执行的冲突分析结果,在存在冲突的情形下,冲突解决向导1710解决源模型改变和目标模型改变之间的冲突。这些冲突可以通过预先定义的冲突解决标准来批量处理,或者由用户手动地逐个节点地处理这些冲突。为了提高效率并增加稳定性,优选地需要预先定义冲突解决标准。冲突解决标准已在以上表5中详述,在此不再重复。通过对图9中的UCMG中的每个存在冲突的节点应用这些冲突解决标准,可以解决UCMG中的每个节点上的源分段和目标分段之间的冲突(如果存在的话)。在某些实施例中,当出现冲突解决标准未涉及的情形时,该节点上的冲突由用户进行手动处理。

在冲突解决向导1710生成冲突解决之后的UCMG之后,或者如果图11的冲突分析与呈现器1140分析出所有分段改变都不存在冲突,则分段协调器1720构建出新的目标模型t2。分段协调器1720根据预先定义的协调规则顺序地对于每个分段进行处理,或者通过重新使用改变后目标模型t1的分段或者基于t1的分段进行修改、或者基于冲突解决之后的UCMG而从改变后源模型s1的分段进行变换,并将两者的执行结果合并在一起。所述协调规则已在上面进行了详述,在此不再重复。在将上述协调规则应用到本发明的示例性UCMG中的所有节点之后,可以得到t2的所有分段。通过分段协调器1720合并分段中的所有模型元素并移除重复元素,将生成最终的t2。

可选地,在本发明其它实施例中,上述系统1700还可以包括:存储装置,用于存储上述源分段和目标分段之间的链接以及所述的各种规则与标准,例如模型分段规则、分段关系规则、链接存在判断标准、分段比较标准、分段变化标识标准、冲突标识标准、冲突解决标准、协调规则等;以及用户接口,用于由用户手动制定或调整所述各种规则与标准。尽管上述装置未在图中明确示出,但本领域普通技术人员将理解,所述存储装置与用户接口均是本领域所公知的装置,在此省略其详细描述。

以上是对本发明的用于在模型变换过程中分析和呈现源模型的改变与目标模型的改变之间的冲突的方法和系统以及用于自动协调模型变换的方法和系统的详细描述。如本领域普通人员可以了解的,本发明可以体现为方法、系统和/或计算机程序产品。因此,本发明可以呈现为完全硬件实施形式、完全软件实施形式或者软件和硬件组合实施形式。此外,本发明可以被呈现为在机器可读媒体上包括的计算机程序产品,机器可读媒体上存储了用于对计算机系统进行编程以执行根据本发明的过程的机器可执行程序指令。这里所使用的术语“机器可读媒体”包括向计算机系统提供用于执行的指令的任意媒体。这种媒体可以采用多种形式,包括但是不局限于:非易失性媒体、易失性媒体和传输媒体。非易失性媒体的常见形式例如包括软盘、软磁盘、硬盘、磁带或者任何其他磁媒体、光盘ROM(CD-ROM)或者任何其他光媒体,打孔卡或者任何其他带有孔图案的物理媒体、可编程ROM(PROM)、可擦写PROM(EPROM)、电EPROM(EEPROM)、闪速存储器、任何其他存储芯片或者盒式磁带(cartridge)、或者计算机系统可以读取并适合存储指令的任何其他媒体。

此外,可以理解,方框图和/或流程图中的每个方框以及方框图和流程图中的一些方框的组合可以用一些计算机程序指令实现。这些计算机程序指令可以提供给一通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生一机器,使得这些指令通过计算机或其他可编程数据处理设备的处理器的执行创建用于实现在方框图和/或流程图内或者方框内所指定的功能的装置。

尽管已经参考优选实施例具体地示出并描述了本发明,但其不是为了以公开的形式穷举或限制本发明。对于本领域的普通技术人员,可以在形式上和细节上进行各种改变而不会背离本发明的精神和范围。选择并描述了实施例是为了最好地解释本发明的原理和实际的应用,以及为了使本领域的其他普通技术人员能够理解对于各种实施例的本发明,所述实施例具有适合于预期的具体使用的各种修改。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号