没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记127(2005)17-33www.elsevier.com/locate/entcs从UML模型图形转换系统PaulZiemann1KarstenHoélscher2MartinGogolla3不来梅大学计算机科学系德国摘要在本文中,我们提出了一种方法,允许验证属性的UML模型。该方法是基于一个集成的UML的中心部分的语义。 我们正式介绍了UML用例、类、对象、状态图、协作和序列图。 此外,在通用UML方式中支持完整的OCL。 我们的语义是基于一个UML模型转换成一个图转换系统,由图转换规则和表示系统状态的工作图组成。通过在工作图上应用规则,模拟了建模系统关键词:图转换,UML语义,验证,CASE工具1介绍今天,统一建模语言(UML)被广泛接受为面向对象软件系统建模的标准。UML是一种图形化语言,它提供不同的图表类型来描述软件工件的特定方面这些图的语法是通过[12]中的元模型定义的,记为类图。然而,这种方法是半正式的,因为类图本身是由元模型以循环的方式定义的1电邮地址:ziemann@informatik.uni-bremen.de2电邮地址:hoelscher@informatik.uni-bremen.de3电子邮件地址:gogolla@informatik.uni-bremen.de1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.10.02518P. Ziemann等人/理论计算机科学电子笔记127(2005)17而且UML图的语义只能用自然语言来表达。对象约束语言(OCL)增强了图形化符号,它允许以文本方式制定约束,用图表来表达。 OCL在[12]中再次被半正式地定义。UML类图和OCL的正式语法和语义已经在[13]中介绍过,它也包含在被接受的OCL 2.0 OMG提交中[1]。在本文中,我们提出了一个集成的形式语义,不仅类图,但进一步的 基 本 图 类 型 : 用 例 , 对 象 , 状 态 图 和 交 互 图 。 我 们 坚 持 使 用UML1.5,但是UML2.0同样包含了我们所涉及的UML概念,尽管在某些情况下,一些细节和命名已经改变。特别地,协作图在UML2.0中被称为通信图新的集成语义采用图变换的概念进行[15],[4],[5])。我们不知道有一种正式的方法来处理这些UML图的集合,特别是用例的正式合并是新的(在[17]中,用例被所谓的操作模式精确地描述,包括OCL前置和后置条件,但与其他UML图的连接是开放的)。我们的方法提供了一个框架的UML模型自动翻译UML模型可以由上述的图类型组成,并且可以包括OCL表达式。图变换系统包括一组图变换规则和所谓的工作图,因此称为系统状态图。顾名思义,系统状态图表示建模系统的当前状态。图转换规则逐步修改此状态,从而模拟通过建模系统的运行。与大多数图转换工作相比,我们采用了一种增强的方法,它允许在规则中使用OCL表达式我们结合了两个世界的优点:操作图转换世界和基于逻辑的OCL世界。一方面,图形转换允许通过使用更直观的图形表示来描述和修改复杂的问题另一方面,虽然理论上可以在图形结构中表示每个方面,但使用OCL作为文本符号的额外功能在大多数情况下会带来更紧凑的图形。在我们的方法中,OCL表达式在当前系统状态下的导航此外,OCL用于图转换规则右侧的属性表达式。建模者还可以利用OCL来查询建模系统的当前状态P. Ziemann等人/理论计算机科学电子笔记127(2005)1719我们的方法提供了一个集成的形式化语义的大部分UML。由于没有正式的语义给出的UML,我们的方法依赖于一些假设的图可以在实践中使用,并在一个有用的方式集成。精确的语义是进一步工作的坚实基础。例如,这里使用UML模型作为图转换系统的表示来在实际实现之前验证系统,这是通过比较系统行为与建模者的期望来完成的。在这种情况下使用图转换的好处显然是模拟系统运行与实际模型非常接近。这种接近性允许更少的关于模型语义的假设,例如代码生成器必须做出的假设。它还允许更容易地处理关于这些假设的未来扩展和更改,因为在这些情况下仅需要更改生成的规则的结构。目前,一个原型验证系统正在实现我们的方法,生成一个给定的模型的图形转换规则,并允许交互式执行和可视化的建模系统。我们的方法可以使用一个建模在软件开发过程的早期阶段,以获得一个新设计的系统,以获得一个新的还有其他一些工作旨在使用图转换来定义UML部分的语义。在[10]中,为UML的大部分给出了一个集成的语义。然而,交互图和OCL没有被考虑。他们的方法在[8]中扩展为实例级别的交互图。操作仍然由单一规则指定,也就是说,所有操作都必须是原子的。考虑到UML的孤立部分,存在更多的问题在[9]中,协作被转换为转换规则,其中协作被解释为使用模式匹配的可视化查询。UML状态图的形式化语义例如在[19]中给出Fujaba工具套件[7]支持图形化面向对象软件设计和从故事图自动生成代码这些图结合了行为UML图和附加特性。在[6]中,给定的UML实时模型使用图转换规则进行细化,并且在CSP的语义域中检查它们的一致性。[18]提出了基于图转换的UML类图和序列图之间的一致性分析本文其余部分的结构如下。 在下一节中,将使用一个简单的例子来介绍和解释模型的UML特性。第3节详细描述了系统状态的概念。在第4节中通过实例介绍了模型到图转换系统的转换。原型实现的基本体系结构在第二节中介绍五、该文件以一个20P. Ziemann等人/理论计算机科学电子笔记127(2005)17操作预定义消息OpCall消息第六节结论。2涵盖的UML特性我们涵盖了以下UML特性:用例、类、对象、状态图和交互图(协作图和序列图),最后但并非最不重要的是完整的OCL。我们支持用于定义结构的类图,以及用于实现类图中声明的操作的交互图。交互图包含一系列消息,调用类的操作,而类的操作又由交互图实现,或者调用预定义的功能,如创建对象或设置属性值。用例同样通过交互图来实现。一个用例,它的实现说明了参与者调用哪些操作以及调用的顺序。状态图指定了对象上操作的执行顺序。我们支持的状态图是所谓的协议机,即,状态图不需要对转换进行操作。对象图用于指定开始演化的系统状态,并表示系统当前状态的一部分。*1..*0..1情境行为十... 1{xor}0.. 1*1实现操作0.. 11*1. *0.. 1实现图1. 中心建模概念图1概述了中心概念之间的联系。我们考虑一个类图和一个用例图。 每个类都有零个或多个操作。 一个用例只与一个操作关联,与类无关。每个操作都是通过交互图中指定的交互来实现的。 交互包含消息,这些消息是预定义的(用于创建对象或设置属性值)相互作用StateMachine用例对象类消息P. Ziemann等人/理论计算机科学电子笔记127(2005)1721数字时钟小时:10分钟:10pressA()pressB(count:)getTime()setHours(h:min)演员setMinutes(m:min)显示pressA()pressA()按B(计数)按B(计数)pressA()setMinutessetHours或者调用类的操作。对于每个类,可以在状态图中指定一个状态机。对象图实例化类图。我们举例说明了数字时钟的UML模型的使用和相互作用的图表。这是一个相当简单的例子;可以在[20]中找到适合我们方法的更复杂的模型图2示出了包含三个用例的用例图。演员可以获得时间,或设置时钟的小时或分钟。用于设置时间的两个用例分别有一个小时参数。 演员想要设定的时间。图2. 一个用例图图3. 一个类图图3中的类图声明了我们的时钟的属性。它有一个保存小时的属性和一个保存分钟的属性。时钟上有两种操作:按A键按A(),按B键按B()。在这个简单的例子中,我们只有一个类,但是我们的方法支持多个具有关联和继承的类。图4中的状态图指定了时钟可以处于的状态:显示、设置分钟和设置小时。初始状态指向状态显示,这意味着一旦创建了一个时钟对象,它就处于状态显示。这里还指定了在每个状态下都允许执行操作pressA( ) , 以 及 如 何 通 过 这 样 做 来 改 变 状 态 。 操 作 pressB ( ) 仅 在setMinutes和setHours状态下允许,并且不会更改状态。图4.类DigitalClock的状态图图中所示的协作图5实现用例setHours通过指定参与者可以发送的消息。 在这种情况下,我们有三个22P. Ziemann等人/理论计算机科学电子笔记127(2005)17dc:DigitalClock演员1:[dc.oclInState(setMinutes)] pressA()2:[dc.oclInState(display)] pressA()3:压力B((24-直流小时+小时)取模24)图5.实现用例setHours(h:h)的协作图OpCallMessages,如图1中的元模型所示。消息开头的序列号指定消息的发送顺序。必须填充方括号中的OCL保护才能发送消息。最后,在UML中使用行末尾的箭头来指定消息的方向。箭头的类型指示消息是同步的(实心箭头)还是异步的(棒状箭头)。我们只考虑同步消息,也就是说,在发送消息之前,它必须等到前面的消息调用的功能完成。在图5中,消息按顺序排序。在这个例子中,首先,演员必须按下A按钮一次或两次,使时钟处于setHours状态。然后,她按下B按钮所需的次数,这通过为pressB操作提供适当的参数来表示。消息被发送到代表数字时钟的分类器角色操作pressB(count:N)由图6中的协作图实现。当在数字时钟上调用该操作时,发送取决于状态的消息以设置属性。然后,如果count大于零,则递归调用该操作。这些消息通过自关联角色从接收消息的时钟发送到自身。这种关联角色不需要在类图中有相应的关联。1:按B(计数)演员«自我»1.1 a:[dc.oclInState(setHours)and count>0] setAttributeHours((dc.hours+1)mod 24)1.1b:[dc.oclInState(setMinutes)and count>0] setAttributeMinutes((dc.minutes+1)mod 60)1.2:[count>0] pressB(count-1)图6.实现pressB()操作的协作图图7中的对象图描绘了系统的初始系统状态:存在一个属性设置为零的数字时钟请注意,序列图和协作图基于UML 1.5的元模型中的相同信息,因此在语义上是等价的(参见[2],第249-250页)。甚至可以将一种图表类型转换为另一种图表类型,而不会丢失信息[3]。然而,在序列图的具体语法中,关联角色并不是可视化的。如果关联dc:DigitalClockP. Ziemann等人/理论计算机科学电子笔记127(2005)1723小时= 0分钟= 0dc:DigitalClock图7. 的对象图尽管角色被包含在序列图中,但它也可以用来代替模型中的协作图在下一节中,我们将描述表示建模系统状态的图的组件。3系统状态(包括进程)从技术上讲,系统状态被表示为具有属性节点和边的有向和标记图(参见图1)。例如[11])。首先,系统状态图包含属性对象和连接它们的链接。到目前为止,这个图可以被看作是一个对象图。然而,系统状态包含两个更重要的概念:(1)对象状态,根据状态图与对象相关联;(2)过程,表示操作的实际执行。系统状态的抽象语法如图所示。8通过元模型。图的上半部分表示来自类和用例图的信息(对于每个用例,都有一个未链接的操作一个类)。对象连接到它们的类(它们的主类及其所有超类)。相应地,实例级别上的所有其他节点(Link等)连接到规范级别的元素(关联等)。 为了在操作执行期间确定对象的初始状态,表示此状态的节点连接到由可选状态图指定的相应类。对象可以连接到一个状态,表示其当前状态或对象将处于的状态在完成当前的点火过渡后。请注意,对象的状态不一定与其属性值的配置有关,但它可以被视为一个附加特征。在系统状态中存在一个进程意味着某种功能已经被请求过了。然后可以应用合适的图形转换规则来模拟该功能。这些规则还必须尊重根据状态图需要特定对象状态所有类型的进程都有一个状态和一个序列号,并且可以有一个激活程序进程。状态可以是等待、活动或完成。OpCall- Process连接到一个操作、几个局部变量和一个运行它的对象(进程的所有者图9和10显示了不同类型的24P. Ziemann等人/理论计算机科学电子笔记127(2005)17系统状态1*** 10.. 1* 超类子类类*name:String1关联结束*角色:字符串多重性:字符串2. *111*10.. 1 初始状态name:String0.. 1状态0.. 1下一个国状态{xor}1stateOf1NextState****对象下一个状态2. *1LinkEnd免费WiFi链路name:String协会name:Stringtype:Type参数name:String返回类型:类型并发:CallConcurrencyKind操作过程(from(进程)过程活化剂 0个..1过程*状态:枚举{等待,活动,完成}seqNo:序列号局部变量name:String类型:类型值:值*0.. 1OpCallProcessresultVarName:AtomicProcess(from原子过程)*1*1 所有操作(from系统状态)对象(from系统状态)1*参数(from系统状态)属性name:Stringtype:Type1*AttributeLinkvalue:值图8. 系统状态图9. 种工艺P. Ziemann等人/理论计算机科学电子笔记127(2005)1725原子过程CreateProcess设置属性进程退货流程链接过程className:StringresultVarName:assocName:StringattributeName:Stringvalue:值type:Typevalue:值0.. 1*SetLocalVarProcessUnlinkProcessDestroyProcessassocName:String*localVarName:String类型:类型值:值0.. 12. *局部变所有者11 所有者2. *name:String类型:类型值:值对象(from系统状态)AtomicProcess流程.每一种都有其特殊的属性和关联。特别地,图10示出了与前面提到的预定义消息相对应的原子过程。它们被称为原子,因为它们不激活其他过程。图10. 原子过程为了简单地说明这个上下文中流程的概念,让我们通过示例来考虑OpCallProcess。OpCallProcess与类的操作相关联。现在让我们假设一个交互图定义了这个操作的结果就是调用另一个操作。然后会有一个规则创建另一个流程节点,它与要调用的操作相关联。系统状态还包括第一个进程是第二个进程的激活者4转换成图形转换系统图转换系统由工作图和一组规则组成,这些规则在应用时重写该图的一部分。我们将代数图模型用于属性图、有向图和标记图及其变换(参见例如[11])。粗略地说,图变换规则由左手边和右手边组成左边指定了工作图中必须更改的部分,右边指定了这些更改。在重写过程中应该保留的节点必须出现在规则的两侧。仅出现在左侧的节点被删除,而仅出现在右侧的节点被添加到工作26P. Ziemann等人/理论计算机科学电子笔记127(2005)17a1:属性name=“hours”type =时间数值= 0数值= 0o:目标al2:AttributeLinkal1:AttributeLink名称=“DigitalClock”name =“分钟”type =分钟c:类a2:属性name=“pressA”returnType= void concurrency =guardedo1:操作o5:操作name=“setMinutes”returnType = void concurrency= guardedp3:参数rname=“m”type =name =“显示”s:状态name=“getTime”returnType= void concurrency =guardedo3:操作p1:参数rname=“count”type =密码o2:操作name=“pressB”returnType =void concurrency =guardedo4:操作name=“setHours”returnType= void concurrency =guardedp2:参数rname=“h”type =图11. 时钟示例graph.每个节点都用一个标识符标记,该标识符标记在结肠前的上隔室中 。 因 此 , 两 侧 具 有 相 同 标 识 符 的 节 点 也 可 以 使 用 负 施 加 条 件(NAC)。它们被表示为延伸左手侧的图,以便指定工作图中不想要的情况,即,如果有这种情况,就不能适用。 也可以使用布尔OCL表达式形式的应用条件来限制规则在某些情况下的应用。这些表达式以类似于[13]中的OCL表达式的方式进行评估,因为系统状态图表示一个特殊的对象图,它反过来对应于[13]中解释的正式系统状态。以通常方式表示属性值的变量也可以用于规则的两端。这些变量也可以在规则右侧的OCL表达式中使用,以计算新的属性值。作为开始图(或开始系统状态),我们选择用户为此目的提供的对象图,并将初始状态附加到对象和类,以防类有状态图。这样我们就有了一个没有进程的系统状态。图11显示了我们的时钟示例的初始系统状态。它被描述为元模型的一个实例P. Ziemann等人/理论计算机科学电子笔记127(2005)1727o:操作名称=“setHours”p:OpCallProcessv:LocalVaro:操作name=“setHours”状态=等待seqNo = 0name =“h”类型=值= x在图8中。我们也可以使用一些具体的语法来隐藏类、属性、操作和参数节点,就像通常在对象图中所做的那样,但是在这里我们选择了这种更抽象的表示,以便我们可以更好地描述系统状态规则是如何工作的。系统状态包含类图中的所有类、操作和属性,以及每个用例的操作(可能带有参数)。在示例中,有一个对象具有两个属性链接,该链接连接到类和状态。基本上,我们需要两种规则:依赖于给定模型的规则预定规则。以下两节描述了这些规则以及如何构建它们。4.1取决于模型的规则初始系统状态不包含任何进程,即,没有被调用并等待执行的操作。这就是用例所需要的:对于每个用例,我们构建一个规则,添加一个OpCallProcess节点,其中包含用于在必要时保存参数的局部变量。图 12 显 示 了 用 例 setHours 的 规 则 。 该 规 则 创 建 一 个 新 的OpCallProcess,它连接到名为setHours的操作。状态设置为等待,序号设置为0。由于操作setHours有一个类型为h的参数h,因此创建了一个相应的局部变量它的值被设置为x,这是一个自由变量。因此,此规则是一个参数化规则,需要在应用x之前将x绑定到实际值L R图12.创建用例过程的规则有了到目前为止描述的规则,我们现在能够将进程添加到系统状态,以便实际开始系统运行。 接下来,我们需要处理这些过程的规则,即,根据交互图中指定的语义更改系统状态。 对于由交互图指定的每个操作,我们构建一组规则。这适用于所有操作,无论它们属于类还是用例。 我们把一个有交互作用的操作称为用户定义的操作。一个用户定义的操作调用其他几个操作。 哪一个以及顺序在交互图中指定一个互动对话-28P. Ziemann等人/理论计算机科学电子笔记127(2005)17o:目标name =“pressB”o2:操作名称=“DigitalClock”c:类o1:操作name =“setHours”p1:OpCallProcess状态=活动活化剂v1:LocalVarname=“h”value= xp2:OpCallProcess状态=已完成序号= 2c:类名称=“DigitalClock”o1:操作o2:操作name =“setHours”name =“pressB”p3:OpCallProcessp1:OpCallP进程status =waiting status = activeactivatorseqNo = 3v1:LocalVarv2:LocalVarname =“h”name =“count”value = h type = h值=(24-直流小时+h)取模24所有者o:目标LR图13.发送消息“3:pressB(h-dc.hours)”的规则gram包含以特定顺序在分类器角色之间发送的消息。每个消息都表示对用户定义的操作(类)的调用,或者表示对预定义功能(如设置属性值)的调用。 每个发送的消息对应于一个进程节点的创建,所以我们需要为交互的每条消息制定规则。我们现在检查“发送”setHours交互图的第三条消息的规则,规则如图所示。13岁该规则创建属于名为pressB的操作的进程p3(显示在规则右侧的中间)。要应用规则的先决条件是setHours操作的进程是活动的,并且与前导消息相对应的进程已完成(如进程p2在规则的左侧所示)。这就是进程具有序列号属性seqNo的原因。它需要引用必须完成的过程,在这种情况下,它是序列号为2的过程。在右侧,新流程连接到其激活器、操作和所有者对象。此外,它还有一个新创建的符合给定参数的局部变量。局部变量的值是一个OCL表达式,在应用规则时对其进行计算。前趋不会出现在右侧。它将从系统状态中删除,因为不再需要它P. Ziemann等人/理论计算机科学电子笔记127(2005)1729如果关联操作的属性并发性受到保护,则NAC确保所有者上没有相同操作的进程正在运行我们这里不显示这个NAC。4.2预定规则有些消息不调用用户定义的操作,而是调用预定义的功能。有一些消息用于创建特定类的对象,销毁对象,将对象与给定关联的链接连接,取消对象链接,设置属性值,设置局部变量值,以及返回结果。对应于这些消息,存在与操作无关但与任务所需的其他信息相关的原子进程。这些原子过程已经在图10中示出。这些规则是直接构建的,以实现预期的功能。最后,我们有一个收集垃圾的规则。此规则删除不再附加到流程节点的5执行目前,本文讨论的概念原型正在实施。这个原型的目标是可视化系统状态的演变。当提供了模型和初始对象图时,原型自动生成图转换规则和初始系统状态图。然后,图形用户界面允许用户逐步查看系统状态的演变,并通过使用OCL查询来检查当前状态。出于这个原因,原型必须能够执行图形转换,以及评估OCL表达式。我们没有为这些目的实现一个新的工具,而是选择将两个成熟的工具结合起来。图形转换部分由AGG [16]完成,OCL表达式的评估由USE工具[14]执行。模型和初始对象图是用类USE语法指定的。必须扩展USE工具,以便能够读取协作、用例和状态图定义,并在其内部模型表示中表示它们的特性。此外,还必须将计算oclInState操作的可能性添加到OCL表达式解释器中。核心原型主要包括两个部分。第一部分从给定的模型规范生成图转换规则以及初始系统状态。这是使用原型第二部分的API实现的,如图14所示。这部分的主要类是30P. Ziemann等人/理论计算机科学电子笔记127(2005)1711AGGRule1* *表达:O CLE表达式如勒应用条件1Grammar1SyncH RONIZER更改:设置1Rule():规则applyRule(Rule)step()1更新()同步(SystemState)0.. 11*11系统状态0..11AGGGraph1美国东部州addObserver(观察者)deleteObserver语法。这个核心类存储生成的图转换规则和系统状态,并处理实际的规则应用。如前所述,规则可以包含OCL表达式作为应用条件或计算新属性值的方法。由于AGG不能处理OCL表达式,因此这些规则不能完全是AGG规则。 因此,开发了一个系统状态规则,它扩展了AGG规则的功能。计算新属性值的表达式作为常量字符串值存储在AGG规则的AGG节点的相应属性中,而应用条件直接存储在系统状态规则中。图14.原型的简化类图系统状态语法包含系统状态。此系统状态结合了AGG和USE的概念。系统状态由AGG工作图和USE状态组成。AGG图对于让AGG处理纯图重写是必要的,而USE状态对于OCL表达式的求值是必要的。当应用规则时,系统状态语法必须确保AGG图和系统状态的USE状态是同步的。然后,系统状态规则的应用如下工作。如果规则具有应用条件,则系统状态语法使用USE状态和USE表达式求值器来根据规则左侧与系统状态的匹配来确定给定表达式的值。如果它评估为true,则可以应用该规则,否则测试另一个匹配。如果没有进一步的匹配,则不可能将规则应用于当前系统状态。然后,AGG在系统状态的AGG图这包括P. Ziemann等人/理论计算机科学电子笔记127(2005)1731正确处理规则左侧的可能变量。为了保持系统状态的USE状态与AGG图的同步,使用了AGG的观测器功能类Synchronizer的实例被注册为可观察AGG图的观察者。每当这个图被改变时,同步器通过其更新方法被通知。一旦AGG完成了规则应用,这些更改将被累积以更改USE状态。当规则应用完成时,同步器从AGG图的观察者列表中移除。在这个阶段,在工作图的属性值中可能存在未求值的OCL表达式作为字符串常量。它们现在由USE解释,并且值替换为对应的常数。然后,系统状态语法根据先前收集的AGG图的变化来改变USE状态。之后,USE状态和AGG图表示相同的系统状态,并且可以计算下一个规则应用为了提供计算系统状态演变的下一步骤的可能性,系统状态语法允许应用系统状态语法中的任何规则。一组系统状态规则。这是通过随机选择一个规则直到找到一个适用的规则来完成的。相反,用户也可以选择一个要执行的过程。此外,用户可以选择新的用例。在这种情况下,用户必须提供可选参数。请注意,用例规则总是适用的,并且需要选择这样的用例规则来实际启动系统状态演化。6结论和今后的工作我们已经提出了一个集成的UML语义的基础上的一个给定的UML模型转换成一个图形转换系统。 为了证明我们的方法,一个例子模型,包括几个UML图已被引入。 接下来,我们通过元模型描述了我们关于系统状态的想法,然后通过示例讨论了将给定模型转换为依赖于模型和预定义的图转换规则。最后讨论了实现该方法的原型软件的基本概念。该原型将一个给定的UML模型转换成一个图形转换系统,并允许一步一步地监视系统状态的演变。下一个目标是完成原型的实现,并为它提供一个方便的图形用户界面,以便最终我们的方法可以在实践中进行评估。由于该方法和工具适用于软件开发过程的早期阶段,因此在使用大型和非常详细的模型时可能变得不切实际。在这种情况下,上述GUI应该允许32P. Ziemann等人/理论计算机科学电子笔记127(2005)17用户可以在系统运行时选择不同的视图,例如隐藏在特定情况下不感兴趣的对象及其细节一个有趣的主题是将更多的图类型(如活动图)集成到我们的方法中。我们还将研究是否以及如何用尚未找到的UML特性来扩展已经覆盖的图案例研究将提供关于方法和工具实用性的反馈。特别是,需要更多的洞察力到我们的方法的基础上断言UML模型的属性的过程中,例如,基于转换不变量。通过这种方式,我们的方法将自动受益于图变换领域的未来认知引用[1] Boldsoft和Rational软件公司和IONA,对UML 2.0 OCL RfP的响应(ad/2000-09-03),http://www.klasse.nl/ocl/ocl-subm.html。[2] Booch,G.,我和J·兰博。Jacobson,[3] Cordes,B.,K. 她和H.-J. Kre owski,UML集成诊断:将类查询诊断转换为类查询诊断的核心分析,in:M. Nagl,J. Pfaltz和B. Büohlen,编辑,AGTIVE[4] Ehrig,H.,G.恩格斯,H. J. Kreowski和G. Rozenberg,编辑,[5] Ehrig,H.,H.- J. Kreowski,U. Montanari和G. Rozenberg,编辑,[6] Engels,G. 、R.He ck el,J. M.Küster 和L.Gr oene wegen,Consistency-preservingmodeldelevolutionthrought ransformation s,in:J.- M. 我也是H。 Hussmann和S. UML2002:统一建模语言(UML 2002-The Uni filed Modeling Language) 模型工程、语言、概念和工具。第五届国际会议,德累斯顿,德国,2002年9月/10月,会议记录,LNCS 2460(2002年),pp.212-226[7] Fischer , T. ,J.涅 尔 湖Torunski 和 A.Zu? ndorf , Storydiagrams :Anewgraphtransformationlanguage based on UML and Java,in:H.Ehrig,G.恩格斯,H. J.Kreowski和G. Rozenberg,编辑,Proc.Theory and Application to Graph Transformations(TAGT[8] Gogolla,M.,P. Ziemann和S.Kuske,Towards an integrated graph based semantics forUML,in:Graph Transformation and Visual Modeling Techniques(GT-VMT 2002),ENTCS72,2003。[9] 黑克尔河和S.Sauer,通过状态转换加强uml协作图,在:H。Hussmann,editor,FundamentalApproaches to Software Engineering,4th International Conference,FASE 2001,heldas Part of the Joint European Conferences on Theory and Practice of Software,ETAPS2001,Genova,Italy,April 2-6,2001,Proceedings,LNCS2029(2001),pp.109-123[10] Kuske,S.,M.戈戈拉河Kollmann和H.- J. Kreowski,基于图转换的UML类、对象和状态图,在:M。Butler和K.Sere,editors,3rd Int. Conf. 综合形式方法(IFM'02 ),LNCS 2335(2002),pp. 11-28[11] L?we,M.,M.KorKang和A.Wagner,AnAlgebraicFrararianfortheTransformationofAttributed Graphs,in:R.睡吧,R。Plasmeijer和M. van Eekelen,编辑,术语图重写:理论与实践,John Wiley,纽约,1993年,第100页。185-199.P. Ziemann等人/理论计算机科学电子笔记127(2005)1733[12] OMG,马萨诸塞州弗雷斯诺http://www.omg.org,2003年。[13] Richters,M.,“A Precise Approach to Validating UML Models and OCL Constraints”,Ph.D. 论文,Uni versit?atBremen,Logos Verlag,Berlin,BISSMonographs,No. 14(2002)。[14] Richters,M.,AUML-based Specification Environment(last revision 2001),http://www.db. informatik.uni-bremen.de/projects/USE网站。[15] 罗森伯格,G.,编辑,1:基金会,[16] Rudolf,M.和G.Taentzer,属性图语法系统AGG(最后修订版2003),http://tfs.cs.tu-berlin.de/agg网站。[17] Sendall,S.和A.Strohmeier,从用例到系统操作规范,在:A。埃文斯,S. Kent和B. Selic,编辑,UML 2000 -统一建模语言。推进标准。第三次国际会议,约克,英国,2000年10月,会议记录,LNCS 1939(2000年),pp. 1-15。[18] Tsiolakis,A.和H. Ehrig,使用属性图文法的UML类和序列图的一致性分析,在:H。Ehrig和G.Taentzer , 编 辑 , Proc.ofJointAPPLIGRAPH/GETGRATSWorkshoponGraphTransformation Systems,Berlin,March2000,2000,Technical Report no.2000/2,柏林技术大学[19] Vo,D.,一个UML状态图的形式化语义的建模与转换系统,在:A。科拉迪尼,H. Ehrig,H.- J. Kreowski和G. Rozenberg,editors,Graph Transformation.第一次国际会议,ICGT 2002年,巴塞罗那,西班牙,2002年10月,会议记录,LNCS 2505(2002年),pp. 378-392.[20] Ziemann , P.和 K.H? olscher ,ExampleUMLModel(2004),http://www.tzi.de/~hwaters/example.pdf.
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)