Presentation is loading. Please wait.

Presentation is loading. Please wait.

Report on DMM (Dagstuhl Middle Model)

Similar presentations


Presentation on theme: "Report on DMM (Dagstuhl Middle Model)"— Presentation transcript:

1 Report on DMM (Dagstuhl Middle Model)
3/15/2017 Report on DMM (Dagstuhl Middle Model) Timothy C. Lethbridge SITE, University. of Ottawa

2 DMM was Invented at The Dagstuhl Seminar on Interoperability of Reverse Engineering Tools
Jan 22-26, 2001 About 45 people WCRE 2001 Timothy C. Lethbridge

3 The Dagstuhl Middle Model (DMM)
Represents relationships among program and source elements in a language-independent way Key inputs University of Ottawa (TA++) Sander Tichelaar; Berne (Famix) Erhard Plödereder; Stuttgart (Bauhaus) See WCRE 2001 Timothy C. Lethbridge

4 Key Decisions Non-pre-processed code preferred
Can represent procedural languages References partly resolved More study of this is needed Allows several different levels of detail WCRE 2001 Timothy C. Lethbridge

5 The DMM schema Represented as UML
Intended to be translated into a GXL schema WCRE 2001 Timothy C. Lethbridge

6 Other GXL Schemas for Reverse Engineering
Programming language level Abstract syntax trees Too much detail for many purposes Architectural level Connecting black boxes (e.g. pipe and filter) Hard / not possible to generate automatically WCRE 2001 Timothy C. Lethbridge

7 Top level of the hierarchy
WCRE 2001 Timothy C. Lethbridge

8 Model element hierarchy
WCRE 2001 Timothy C. Lethbridge

9 Relationship hierarchy
WCRE 2001 Timothy C. Lethbridge

10 Source object hierarchy
WCRE 2001 Timothy C. Lethbridge

11 DMM Development Status
University of Ottawa Have C++ parser that generates DMM Used in SORTIE project Others used the data our parser generated Future work Progress continuing steadily by etc. WCRE 2001 Timothy C. Lethbridge

12 Issues Multi-part references to members Function pointers
a.b().c.d Function pointers Resolving correct references Computed and aliased references Templates WCRE 2001 Timothy C. Lethbridge

13 Possible extensions for traces and clusters
WCRE 2001 Timothy C. Lethbridge

14 Extending the Relationship Hierarchy for Clusters
WCRE 2001 Timothy C. Lethbridge

15 Useful URLs My home page http://www.site.uottawa.ca/~tcl DMM
WCRE 2001 Timothy C. Lethbridge

16 Example code to demonstrate DMM
int i; void main() { i = 1; } WCRE 2001 Timothy C. Lethbridge

17 Example DMM GXL (1/4) WCRE 2001 Timothy C. Lethbridge
<?xml version="1.0"?> <!DOCTYPE gxl SYSTEM "gxl1.0.dtd"> <gxl> <graph> <type xlink:xref="dmmschema.dtd#dmm"/> <node id=1> <type xlink:xref="dmmschema.dtd#SourceFile"/> <attr name="name"> <string>example1.c</string> </attr> <attr name="path"> <string>C:\TEST\</string> </node> <node id=2> <type xlink:xref="dmmschema.dtd#SourcePart"/> <attr name="startLine"> <int>1</int> <attr name="startChar"> <int>4</int> <attr name="endLine"> <attr name="endChar"> <int>5</int> <node id=3> <type xlink:xref="dmmschema.dtd#GlobalVariable"/> <string>i</string> Example DMM GXL (1/4) WCRE 2001 Timothy C. Lethbridge

18 Example DMM GXL cont. (2/4)
<node id=4> <type xlink:xref="dmmschema.dtd#SourcePart"/> <attr name="startLine"> <int>1</int> </attr> <attr name="startChar"> <int>4</int> <attr name="endLine"> <attr name="endChar"> <int>5</int> </node> <node id=5> <type xlink:xref="dmmschema.dtd#Type"/> <attr name="name"> <string>int</string> <node id=6> <int>2</int> Example DMM GXL cont. (2/4) WCRE 2001 Timothy C. Lethbridge

19 Example DMM GXL cont. (3/4)
<node id=7> <type xlink:xref="dmmschema.dtd#Routine"/> <attr name="name"> <string>main</string> </attr> </node> <node id=8> <type xlink:xref="dmmschema.dtd#SourcePart"/> <attr name="startLine"> <int>2</int> <attr name="startChar"> <int>0</int> <attr name="endLine"> <attr name="endChar"> <int>4</int> <node id=9> <type xlink:xref="dmmschema.dtd#Type"/> <string>void</string> <edge from=1 to=2> <type xlink:xref="dmmschema.dtd#Contains"/> </edge> <edge from=2 to=3> <type xlink:xref="dmmschema.dtd#Defines"/> <edge from=2 to=4> Example DMM GXL cont. (3/4) WCRE 2001 Timothy C. Lethbridge

20 Example DMM GXL cont. (4/4)
 <edge from=4 to=5> <type xlink:xref="dmmschema.dtd#Declares"/> </edge> <edge from=3 to=5> <type xlink:xref="dmmschema.dtd#IsOfType"/> <edge from=1 to=6> <type xlink:xref="dmmschema.dtd#Contains"/> <edge from=6 to=7> <type xlink:xref="dmmschema.dtd#Defines"/> <edge from=6 to=8> <edge from=8 to=9> <edge from=7 to=9> <type xlink:xref="dmmschema.dtd#Uses"/> <edge from=7 to=3> <type xlink:xref="dmmschema.dtd#Sets"/> </graph> </gxl> WCRE 2001 Timothy C. Lethbridge


Download ppt "Report on DMM (Dagstuhl Middle Model)"

Similar presentations


Ads by Google