Presentation is loading. Please wait.

Presentation is loading. Please wait.

Universität Koblenz-Landau Institut für Softwaretechnik Re-Group Interoperability of Reengineering Tools Dagstuhl, Jan 20-25, 2001 Graph Exchange Language.

Similar presentations


Presentation on theme: "Universität Koblenz-Landau Institut für Softwaretechnik Re-Group Interoperability of Reengineering Tools Dagstuhl, Jan 20-25, 2001 Graph Exchange Language."— Presentation transcript:

1 Universität Koblenz-Landau Institut für Softwaretechnik Re-Group Interoperability of Reengineering Tools Dagstuhl, Jan 20-25, 2001 Graph Exchange Language Andreas Winter joint work with: Ric Holt Andy Schürr Susan Sim

2 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (2) Interoperablity of Reengineering Tools Contents Motivation and Idea Definition of GXL Exchanging graphs with GXL Exchanging schemas with GXL Conclusion

3 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (3) Interoperablity of Reengineering Tools GXL Objective standard exchange language –for interchanging data between reengineering tools mathematical model –typed, attributed, directed graphs notation –eXtensible Markup Language (XML) –Unified Modeling Language (UML) application to other areas in software engineering –graph transformation –graph drawing

4 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (4) Interoperablity of Reengineering Tools History

5 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (5) Interoperablity of Reengineering Tools GXL Partners Bell Canada (Datrix Group), Canada IBM Centre for Advanced Studies, Canada Mahindra British Telecom, India Nokia Research Center (Software Technology Laboratory), Finland Philips Research (Software Architecture Group), The Netherlands RWTH Aachen (Department of Computer Science III), Germany TU Berlin (Theoretical CS/Formal Specification Group), Berlin University of Berne (Software Composition Group), Switzerland University Bw München (Institute for Software Technology), Germany University of Koblenz (IST, GUPRO), Germany University of Oregon (Department of Computer Science), U.S.A. University of Paderborn (AG Softwaretechnik), Germany University of Stuttgart (BAUHAUS Group), Germany University of Victoria (RIGI Group), Canada Universities of Waterloo and Toronto (SWAG), Canada

6 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (6) Interoperablity of Reengineering Tools GXL Example main.c test.c 225 316 <edge id = "r1" from = "P" to = "V"> 127 <edge id = "r2" from = "Q" to = "W"> 27 <edge id = "c" from = "P" to = "Q"> 316

7 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (7) Interoperablity of Reengineering Tools Dimensions of Reengineering Data Programming Languages –single Languages (Ada, C, C++, Cobol, Java) –multi-language systems Level of Abstraction –AST-level –Architectural level Relational Aspects –Dataflow, Controlflow,... –Includes, Calls, Uses,...

8 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (8) Interoperablity of Reengineering Tools Definition of GXL Requirements for Exchange Formats –independent from specific reengineering dimensions specific reengineering applications specific reengineering tools –concrete enough to be interpreted by different reengineering tools GXL Approach –exchanging instance data and schema data GXL First Directive Everything is a typed, attributed, directed graph

9 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (9) Interoperablity of Reengineering Tools GXL Idea Graph DataPart SchemaPart > Schema Graph Data DataPart SchemaPart > M0 M1 Meta Schema Graph DataPart SchemaPart > M2 UML class diagrams UML object diagrams GXL Documents

10 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (10) Interoperablity of Reengineering Tools Definition of GXL simple and compact representation of directed and undirected graphs suitable for a broad spectrum of graph models, –including support for hypergraphs and –support for hierarchical graphs support for representation of complex attribute values extensibility of graph elements and attribute types uniform representation for graphs and graph schemas

11 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (11) Interoperablity of Reengineering Tools GXL Graph Model

12 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (12) Interoperablity of Reengineering Tools GXL Attribute Model

13 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (13) Interoperablity of Reengineering Tools GXL Document Type Definition automatic generation of GXL DTD follows MOF/XMI standard entity types and attributes are not distinguished blows up the number of XML elements (GXL 0.7.2: 136/74 elements) manual definition of GXL DTD manual work to do distinction between entity types and attributes reflects design decisions small and simple DTD (23 elements)

14 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (14) Interoperablity of Reengineering Tools GXL Document Type Definition (0.99)

15 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (15) Interoperablity of Reengineering Tools Exchanging Graphs with GXL Attributed, typed, directed Graphs Undirected Graphs Ordered Graphs Hypergraphs Hierarchical Graphs

16 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (16) Interoperablity of Reengineering Tools Typed, Attributed, Directed Graphs p : v : graph <edge from = "p" to = "v"> e : id = "e" refers typed Proc Var attributed file = "main.c" line = 27 main.c 27

17 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (17) Interoperablity of Reengineering Tools Attributed Edges <edge id = "e" from = "p" to = "v"> 42 p : v : Proc Var file = "main.c" line = 27 e : refers line = 42

18 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (18) Interoperablity of Reengineering Tools... Undirected Graphs p : v : Proc Var file = "main.c" line = 27 e : edges are always noted as directed but can be interpreted as undirected

19 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (19) Interoperablity of Reengineering Tools... <edge id = "e" orientation = "undirected" from = "p" to = "v">... undirected edge in directed graph Undirected Graphs p : v : Proc Var file = "main.c" line = 27 e : edges are always noted as directed but can be interpreted as undirected

20 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (20) Interoperablity of Reengineering Tools GXL Documents (DTD) <!ATTLIST graph id ID #REQUIRED roleNMTOKEN#REQUIRED edgeids ( true | false ) "false" hypergraph ( true | false ) "false" direction ( directed | undirected ) "directed" >

21 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (21) Interoperablity of Reengineering Tools Nodes and Edges (DTD)

22 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (22) Interoperablity of Reengineering Tools Prog authors = { Ric, Andy, Susan, Andreas } p : GXL supports set, sequence, bag, tuple of bool, int, float, string, references (URI), complex values Attribute Types Ric Andy Susan Andreas

23 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (23) Interoperablity of Reengineering Tools Attributes (DTD)

24 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (24) Interoperablity of Reengineering Tools Attribute Values (DTD) <!ATTLIST locator xlink:type (simple) #FIXED "simple" xlink:href CDATA #IMPLIED > links to external objects simple attributes complex attributes

25 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (25) Interoperablity of Reengineering Tools Ordering of Incidences u : w : v : e : g : f : {1} {2} {4} {3} toorder = "3" toorder = "2" fromorder = "1" fromorder = "4"

26 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (26) Interoperablity of Reengineering Tools {1} {2} v : V w : W u : U r : theSecondU theFirstU theV theW directed Hypergraphs and n-ary Relations <link ref = "u" role = "theFirstU" direction = "out" endorder = "2" /> <link ref = "u" role = "theSecondU" direction = "out" endorder = "1" /> <link ref = "v" role = "theV" direction = "in" /> <link ref = "w" role = "theW" direction = "none"/>

27 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (27) Interoperablity of Reengineering Tools v : V w : W u : U r : theSecondU theFirstU theV theW undirected Hypergraphs and n-ary Relations

28 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (28) Interoperablity of Reengineering Tools Relations (DTD)

29 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (29) Interoperablity of Reengineering Tools u : f : t : T Support for Hierarchical Graphs <edge id = "f" from = "t" to = "u"/> <edge id = "e" from = "v" to = "w"/> v :w : e : g : GraphT

30 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (30) Interoperablity of Reengineering Tools u : f : t : T Support for Hierarchical Graphs <edge id = "e" from = "v" to = "w"/> <edge id = "f" from = "t" to = "u"/> v :w : e : g : GraphT <edge id = "h" from = "u" to = "w"/> h :

31 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (31) Interoperablity of Reengineering Tools GXL Extension by redefining entities by including GXL DTD (external entities) <!ENTITY % gxl-extension "FOO," > <!ENTITY % basegxl SYSTEM "gxl.dtd"> %basegxl; GXL offers extending – GXL documents – graphs – nodes – edges – hyperedges (rel) – links – values

32 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (32) Interoperablity of Reengineering Tools GXL Extension (DTD)

33 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (33) Interoperablity of Reengineering Tools Summary: Exchanging Graphs Attributed, typed, directed Graphs Undirected Graphs Ordered Graphs Hypergraphs Hierarchical Graphs

34 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (34) Interoperablity of Reengineering Tools Exchanging Schemas with GXL Graph Schema Definition with UML Class Diagrams –attributed, typed, directed graphs –hypergraphs –hierarchical graphs GXL Representation of class diagrams GXL Metaschema

35 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (35) Interoperablity of Reengineering Tools Graph Schema - Graphs UML class diagram Var file : string line : int refers Proc v : Var file="main.c" line = 27 line = 42 e : refers UML object diagram p : Proc

36 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (36) Interoperablity of Reengineering Tools Graph Schema - Notation Var file : string line : int refers Proc edge class node class node attribute ordering {ordered} direction multiplicity 0.. * attribute type attribute name edge attributes

37 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (37) Interoperablity of Reengineering Tools Graph Schema - Hypergraphs UML object diagram V W U r theSecondU theFirstU theV theW 1..* 0..1 1 1 {ordered} UML class diagram v : V w : W u : U r : theSecondU theFirstU theV theW {1} {2}

38 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (38) Interoperablity of Reengineering Tools Graph Schema - Hierarchical Graphs UML object diagram u : U f : F t : T v : Vw : W e : E g : GraphT UML class diagram UT F V W GraphT > E Stereotype

39 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (39) Interoperablity of Reengineering Tools Graph Schema - Hierarchical Graphs UML object diagram u : U f : F t : T v : Vw : W e : E g : GraphT Stereotype Composition U V W T GraphT > F E UML class diagram

40 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (40) Interoperablity of Reengineering Tools Graph Schema - Higher Constructs Generalization Aggregation

41 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (41) Interoperablity of Reengineering Tools Summary: Exchanging Schemas Graph Schema Definition with UML Class Diagrams –attributed, typed, directed graphs –hypergraphs –hierarchical graphs GXL Representation of class diagrams GXL Metaschema

42 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (42) Interoperablity of Reengineering Tools Representing Schemas Schemas (graph classes) are represented as graphs as well Schemas are exchanged as GXL documents suiting a metaschema for graph classes only one common and simple DTD for exchanging –graphs matching different graph schemas –graph classes matching a metaschema

43 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (43) Interoperablity of Reengineering Tools GXL Schema Representation UML class diagram Var file:string line : int Proc refers :Nodeclass name="Proc" : Attribute name="file" : String : EdgeClass name="refers" : NodeClass name="Var" : Integer : Attribute name="line" comesFrom goesTo has Attribute has Domain has Attribute has Attribute has Domain schema graph

44 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (44) Interoperablity of Reengineering Tools GXL Metaschema (Extract)

45 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (45) Interoperablity of Reengineering Tools GXL Metaschema - Graph (Extract)

46 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (46) Interoperablity of Reengineering Tools GXL Metaschema - Graph (Extract)

47 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (47) Interoperablity of Reengineering Tools GXL Metaschema - GXL Document <type xlink:href = "gxl.gxl#gxl"/> <type xlink:href = "gxl.gxl#NodeClass"/> NodeClass false... <type xlink:href = "gxl.gxl#NodeClass"/> GraphClassElement true... <type xlink:href = "gxl.gxl#isA"/>

48 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (48) Interoperablity of Reengineering Tools Concepts in GXL Class Diagrams Definition of NodeClasses, EdgeClasses, and RelationClasses. Definition of (structured) Attributes. Definition of Orientation, Multiplicities, Roles, and Ordering. Definition of Graph Hierarchy. Definition of Graphclasses. Definition of Generalization and Aggregation.

49 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (49) Interoperablity of Reengineering Tools GXL Metaschema (Graph Part)

50 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (50) Interoperablity of Reengineering Tools GXL Metaschema (Attribute Part)

51 © Institut für Softwaretechnik Universität Koblenz-Landau Dagstuhl, Jan 21-26, 2001 (51) Interoperablity of Reengineering Tools Conclusion GXL offers a language for describing graphs directed and undirected, typed, attributed graphs hypergraphs and hierarchical graphs a language for defining graph classes a language for exchanging graphs instance graphs schema graphs more information –http://www.gupro.de/GXL


Download ppt "Universität Koblenz-Landau Institut für Softwaretechnik Re-Group Interoperability of Reengineering Tools Dagstuhl, Jan 20-25, 2001 Graph Exchange Language."

Similar presentations


Ads by Google