没有合适的资源?快使用搜索试试~ 我知道了~
102理论计算机科学电子笔记72第2期(2002)URL:http://www.elsevier.nl/locate/entcs/volume 72. html10页s用DiaGen生成类图马克·米纳斯1软件技术研究所计算机科学联邦武装部队大学,慕尼黑85577 Neubiberg,德国摘要这个扩展的摘要表明,当限制可视化语言的类时,为可视化语言创建编辑器和环境变得相当容易。所提出的方法认为,图形的语言,其图由不同类型的节点和边。 该规范方法允许 描述这些图的节点和边缘类型,并利用约束条件来表达语法属性。DIAGEN系统用于从这些规范生成运行编辑器。1介绍DIAGEN为图表编辑器的快速开发提供了一个环境[4]。它已被用于创建各种图表语言的编辑器,例如,有限自动机,控制流程图,Nassi-Shneidermandiagrams,消息序列图,视觉表达图,顺序函数,图,梯形图,Petri网,UML类图等。实际上,我们并不知道有一种图表语言是不能被指定的,这样它就可以用DIA GEN来处理。从正式规范生成图编辑器大大减少了创建它们的工作量。然而,当限制到图形样的diagrams,e的orts可以减少甚至更多。类图由某些类型的节点和连接节点的边组成。有时,节点可以是分层节点,即,它们可以包含其它节点和边。边可能会跨越层次边界。著名的图类图语言有UML类图、状态图、Petri网等。这个扩展的抽象概述了如何使用非常精简的规范来完全指定一个类似图形的图表语言,以及预处理器如何第1minas@acm.org2002年由ElsevierScienceB. V.在CC BY-NC-ND许可下开放访问。米纳斯103可以创建一个以下部分布瑞·吉里这样描述DIAGEN。第3节概述了图状图是如何以一种浓缩的方式具体化,并从这种具体化中产生第4延伸抽象的结论。2迪亚根DIA GEN完全用Java实现,它由一个编辑器框架和一个程序生成器组成。2为了为特定的图表语言创建编辑器,编辑器开发人员提供语法规范和语义学。也可以提供额外的程序代码,这些代码是“手动”编写的然后,程序生成器将指定转换为Java类生成的类与编辑器框架和手动编写的代码一起实现了指定图表语言的编辑器使用DIA GEN(创建、删除和修改图表组件,就像使用现成的绘图工具一样。在每次编辑操作之后,编辑器根据图表语言的语法分析DIA GEN编辑器的开发人员还可以指定复合语法导向编辑的操作。 每一项行动都是为了修改图表的含义。自动布局是DIA GEN编辑器的另一个可选功能。当指定语法定向编辑操作时,它是强制性的。自动布局机构调整任何修改后的图表。 用于指定的DIA GEN以声明方式的布局机制,以及用于插入其他布局机制。当DIAGEN编辑器的用户通过自由编辑创建或修改图表时,编辑器将图表转换为超图模型,创建其语法结构,从而检查其语法正确性与指定语法的关系作为这个过程的结果,编辑必须如果绘图包含错误,则向编辑器用户提供视觉反馈编辑器在每个编辑操作之后按四个步骤的顺序执行此任务:扫描、简化、解析和属性评估。这些步骤在以下段落中简要描述。2.1扫描步骤图表组件(例如,有向图中的圆圈和箭头)具有附着区域,即,允许连接到其它组件的组件的部分(例如,箭头的起点和终点最普遍的,但2DIA GEN可从http://www2.cs.fau.de/DiaGen/获得米纳斯104这种组件的简单形式描述是连接到表示图组件的连接区域的节点的超边3这些节点和超边首先组成一个不连通的超图。的如果相应的连接区域以特定方式相关,则scanner通过附加边连接节点,具体说明见规范。该扫描步骤的结果是图的超图模型(HGM)2.2还原步骤HGM往往是相当大的,即使是小图。为了允许高效的解析,首先从HGM创建简化超图模型(rHGM)。归约器由一些变换指定,这些变换识别HGM的那些子超图,这些子超图携带图的信息并相应地构建rHGM。这一步类似于传统编译器的词法分析步骤。2.3解析步骤图语言的超图模型的语法--以及语言的语法--由具有嵌入的 这样的文法类似于字符串文法,因为它们定义了终端和非终端边类型,一个起始超图和一组超图产生式。 上下文无关的产生式允许通过产生式右侧的超图用非终结符类型(由产生式左侧定义)替换超边,而嵌入产生式允许将超边插入到由产生式左侧定义的上下文中。一些限制适用于可能使用嵌入产生式的情况(参见[1])。类似于(文本)编程语言的编译器解析器,它是内置到每个迪亚根 编辑器用于创建图的rHGM的语法结构,即,寻找一个序列从起始超图到rHGM。解析器能够识别语法错误,然后将其可视化给编辑器用户。42.4属性评估步骤翻译过程的最后一步通过基于属性语法的某种语法导向翻译创建图的语义表示,因为它也用于(文本)编程语言的编译器3超图由节点和超边组成,类似于有向图。尽管有向图的边连接到两个节点,但超边连接到任意数量的节点4目前,格式良好的图部分被突出显示。因此,缺少突出显示表示错误的图部分。米纳斯105Fig. 1. UML类图的示例编辑器。用属性扩充超边和超文法产生式,用求值规则扩充超边和超文法产生式。3类图图状图由一组节点和连接这些节点的边组成通常,区分不同种类的节点和边此外,节点可以包含其他图,例如,UML类图中的包(图1),在这个扩展的抽象中用作示例语言。图2显示了类图的节点和边类型的规范,以及有效类图必须满足的谓词。类节点与包节点不同它们的图形表示是通过引用实现类来指定的(例如,uml.Class)。此外,包装包含(参见关键字内容)的类图(可能是空图)。两种类型的边缘被区分:Assimilations和Generalizations。它们的视觉外观由内置实现指定(带或不带箭头的行)。注释文本(多重性等)为了简单起见省略了。图图3显示了图1的类图的HGM1.一、图节点和米纳斯106diagram ClassDiagram {}node Package {private String style=“uml.Package”;ClassDiagram contents;}Node Class {public String style =“numl.class”;}边Ask {public String style=“String”;}边缘常规{public String style=“String”;private String head =“UnfilledTriangle”;}谓词(for all e inAsphalt)(类别tgt(e)中的src(e));谓词(for all e in General)(src(e)inClass ==>tgt(e)inClasssrc(e)inPackage ==>tgt(e)inPackage);谓词(对于Class + Package中的所有c)(不是c--General+ -->c);端部图图二. 类图边缘由HGM超边缘表示,HGM超边缘被描绘为通过细线连接到黑点的灰色他们访问的节点。超边以一定的顺序访问它们的节点,图中没有显示3,但从上下文中应该清楚超边类型是节点和边类型。类和包的名称以斜体字添加,以便可视化与图1的对应关系1.一、灰色箭头表示空间关系:在tach处连接图边缘和图节点,包含用于表示层次结构。这些超边用于所有类型的图,因此是预处理器的固定部分,该预处理器从指定创建reducer对每个类图的工作方式也几乎相同。在所得到的rHGM中,每个节点类型超边缘由节点超边缘表示,并且每个边缘类型超边缘连同rHGM的第三种超边缘类型是包含,再次表示层次结构。图4示出了图1的HGM的相应rHGM。3.第三章。图5显示了通用reducer请注意,应用归约规则PR并不意味着重写米纳斯107节点“工作人包含不不不边缘S节点“雇员”边缘节点“地址”节点“人”节点“账户”节点“客户”边缘边缘包“共同”包含包含类“人”在在Assoc类“地址”在at一般一般在在类“雇员”包含包“工作人类“客户”在Assoc类“账户”在图三. 图1的类图的HGM。见图4。 图1的类图的rHGM。 字母s和t分别表示源。目标触手包含超边。HGM由R.应用这样的规则意味着在HGM中找到模式P的匹配,并相应地将RHGM不被还原剂改性。rHGM被创建为第二超图。图中的第一个规则5只是为HGM的每个gNode超边缘向rHGM添加节点超边缘,其中gNode是表示图形节点的每个类型的超类型在我们的示例中,gNode是hyperedge的超类型S s包含包含节点“共同”米纳斯108一B一B在在在在Gedge边缘T1T2一B一包含BS不包含包含包含一一节点gNode图五、类图的通用缩减器最后一条规则实际上是一个模板,其中包含文本中解释的边类型变量T1和T2类型类和包。第二条规则搜索图的任何边超边缘类型gEdge是表示图边缘的每个超边缘类型的超类型,即,在我们的例子中,这是一个抽象和一般的概念。该规则要求图的边连接到一些图的节点,这些节点由到节点a和b的边表示。该规则的LHS的被划掉的部分如果用户在屏幕上绘制两个重叠的节点,并在其边界的交点处添加一条边,则可能会出现这种模糊的情况,如以下普通图形示例所示:图中的最后一个简化规则5最终负责将包含超边添加至代表层级的rHGM所描述的规则实际上是一个必须多次实例化的模板实例化必须反映contents关键字所描述的层次结构规范(参见图2)的情况。在我们的示例中,模板必须针对(T1,T2)=(package,class)和(T1,T2)=(package,package),因为包可能包含米纳斯109···节点一:一一子图节点节点一子图:一...节点节点.........包含包含一B :一B边缘节点节点节点节点图形::节点Node......图六、类图的泛型文法包以及类。的rHGM解析相对于一个超图语法,这是相同的所有图形的图表语言。如图所示六、 gram-mar是一个上下文无关的嵌入超图文法。椭圆表示非终端超边,而矩形表示终端超边,即,rHGM的超边缘。除了最后一个之外的所有产生式都是上下文无关的产生式,即,LHS由仅具有其访问节点的非终结超边组成。“然而,DIA GEN使用这些集合产品而是允许更高效的解析。最后一个产品是一个嵌入产生式允许通过边连接任何两个节点其余的规格(图)。2)定义了与GTDL [3]非常相似的一致性谓词:每个谓词描述了一个必须适用于图的属性第一个描述了关联只连接类下一个告诉类(包)只能泛化类(包)。最后一个要求泛化边不创建循环。--General+ -->匹配任何包含General只有边缘预处理器将这些谓词转换为Java代码,该代码在属性评估期间执行,即,在语义分析中。当谓词被违反时,编辑器能够显示非常详细的错误消息例如,在一个示例中,如果用户使用关联边将类连接到包,编辑器将突出显示此边并显示违反的谓词。未来的版本也将显示更可读的文本,这将是规范的一部分。米纳斯110另一种方法是将这些谓词转化为归约规则。 对于第一个谓词和第二个谓词,这是可能的。如果谓词被违反,则rHGM的关联和泛化超边将不会被减少到rHGM的边超边。然而,编辑器将不得不使用其通用能力来处理错误的图表,即,它将突出显示错误的边缘,但编辑器无法显示如上所述的详细错误。图2包含类图的完整表示,除了实现类和包符号的Java类uml.Class和uml.Package。当前的实现需要手动实现这些类,但我们目前正在构建一个工具来以图形方式指定它们这大约30行文字的具体说明图2被翻译成大约100行的UML类图的文本规范。 Ad-然后,从通用图形布局器创建布局模块不布局者的任务是避免或最小化屏幕上的相反,它在屏幕上散布节点,使得它们除了分层包含的节点之外不重叠当然,布局器考虑到先前的布局,即,它试图最小化布局修改。4结论这个扩展的摘要简要地概述了一种简化的方法,用于指定由具有不同节点和边类型的图组成的某类视觉语言也可以指定节点可能包含其他图的层次图视觉语言的句法属性必须由谓词来具体化,而谓词必须由图来满足才能有效。给定这样的规范,运行的图形编辑器将通过两个步骤生成。在第一步中,这个规范被转换成另一个适合于DIA GEN系统的规范,其生成器最终生成第二步运行编辑器这种规范化方法受到GTDL的启发[3]。但由于最后使用了DIA GEN的方法,DIA GEN自动布局,生成Java Bean等都是本文描述方法,也。所述方法仍在进行中。它表明,当视觉语言被限制在某些语言类别时,对于这个扩展抽象的UML类图示例,规范从大约100行减少到大约30行。此外,生成的编辑器带有自动布局。如果我们没有使用这种方法,这个布局必须从通用布局手动创建最后,使用这种方法创建的编辑器能够在错误图表的情况下显示非常详细的错误消息,而无需额外的编程,而不使用这种方法时需要这些编程。米纳斯111然而,这种方法仍然使用图形语法和图形解析器来指定和检查在将规范转换为符合DIAG的规范之后的视觉语法的某些部分但我们也可以避免这种额外的限制:本文中描述的规范实际上是一个带有一些约束的图模式。因此,可以通过图模式和约束检查器来执行这今后将采取这种办法。图模式和谓词将类似于扩展的ER图和图规范语言约束,因为它们在知识系统[2]中使用引用[1] Bardohl河,M. Minas,A. Sch uüranddG. 张文,《从图形到视觉语言的转换》,载:H. Ehrig,G.恩格斯,H.J. Kreowski和G. Rozenberg, 编 辑 , Handbook of Graph Grammars and Computing byGraph Transformation 。 Vol. II : Applications , Languages andTools ,World Scienti fic,Singapore,1999 pp. 105-180[2] Ebert,J. 、杨A. Winter,P. Dahm,A. 我的朋友。 陈晓,陈晓,等.基于 EER/GRAL 的 系 统 建 模 与 实 现 . 北 京 : 北 京 大 学 出 版 社 . Thalheim ,editor , Proc.15thInternationalConferenceonConceptualModeling(ER'96),Lecture Notes in Computer Science 1157(1996),pp. 163-178。[3] Janneck , J.W. 和 R. Esser , A predicate based approach to defining visuallanguage syntax,in:Proc. of IEEE Symposia on Human-Centric ComputingLanguages and Environments(2009年9月)。5-7,2001,Stresa,Italy)(2001),pp. 40比47[4] Minas , M. ,的 图 表 编 辑 器 生 成 器 的 概 念 与 实 现Hypergraphtransformation,Science of Computer Programming 44(2002),pp. 157比180
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功