Presenter : g9102 黃培智
Outline Motivation and Background GXL Overview Exchange Graphs Exchange Graph Schemas Conclusion
GXL Background Tools in Software Reengineering source code extract repository abstract view visualizer: graph and diagram visualizer, code browser extractor: parser, scanner abstractor: structure recognition
GXL Simple Example
GXL History
Requirements of Exchange Formats Independence application independence -language independence (C/C++, Cobol, Java, JCL, SQL, multi-language etc.) -abstraction level independence (AST, "middle level", Architecture) -aspect independence (data flow, control flow, code structure, etc.) tool independence -data structure independence (syntax trees, various types of graphs, relational databases, object oriented databases, file and directory structures)
Requirements of Exchange Formats Efficiency efficiency in time efficiency in space efficiency in "building tools" Extensibility extensible for further applications (CASE tools, visualization tools, etc) Universality used by others standardized format
Outline Motivation and Background GXL Overview Exchange Graphs Exchange Graph Schemas Conclusion
GXL Objective Exchanged Data Instance data Schemas data Mathematical Model Typed, attributed, ordered, directed graphs Expanded by hypergraphs and hierarchical graphs Notation eXtensible Markup Language (XML) Unified Modeling Language (UML)
GXL Graph Model typed graphs attributed graphs directed graphs ordered graphs hierarchical graphs hyper- graphs
GXL Document Type Definition (1.0)
Outline Motivation and Background GXL Overview Exchange Graphs Exchange Graph Schemas Conclusion
Supported Graph Type Typed Graphs Attributed Graphs Directed Graphs Undirected Graphs Ordered Graphs Hypergraphs Hierarchical Graphs …..
Directed Graphs
Directed Typed Graphs
Typed, Attributed, Directed Graphs
Typed, Attributed, Directed, Ordered Graphs
Hypergraphs.gxl#Us.gxl#V <relend target="v" role="theV"s.gxl#Ws.gxl#R direction="in"/> <relend target="w" role="theW" direction="out"/> <relend target="u" role="theFirstU" direction="out" endorder="1"/> <relend target="u" role="theSecondU" direction="out" endorder="2"/>
Hierarchical Graphs Nodes, edges, and hyperedges contain further graphs
Outline Motivation and Background GXL Overview Exchange Graphs Exchange Graph Schemas Conclusion
Exchange Schemas with GXL Graph Schema Definition with UML Class Diagrams Representing UML Class Diagrams by Graphs (Schema Graphs) Exchanging Schemas Graphs by GXL Documents
Exchange Schemas with GXL Graph Class (UML class diagram) Var file : string line : int refs Proc Var file="main.c" line = 27 line = 42 e : refs Graph p : Proc v :
GXL Schema Representation UML class diagram Var file:string line : int Proc refs Proc:NodeClass name="Proc" a1:Attribute name="file" s : String refs: EdgeClass name="refs" var:NodeClass name="Var" i : Integer a2:Attribute name="line" comesFrom goesTo has Attribute has Domain has Attribute has Attribute has Domain Schema Graph
GXL Schema Representation Proc refs Var...
Conclusion GXL : uniform language for Exchanging graphs Exchanging graph schemas GXL : ratified as standard exchange format Software Reengineering community (Dagstuhl, January ) Usage within GTXL Graph Transformation Exchange Language systems (APPLIGRAPH Subgroup Meeting, Bremen, March, )