Report on DMM Dagstuhl Middle Model - PowerPoint PPT Presentation

About This Presentation
Title:

Report on DMM Dagstuhl Middle Model

Description:

Timothy C. Lethbridge. 6. Other GXL Schemas for Reverse ... string i /string /attr /node WCRE 2001. Timothy C. Lethbridge. 18. Example. DMM GXL ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 21
Provided by: kbre
Category:

less

Transcript and Presenter's Notes

Title: Report on DMM Dagstuhl Middle Model


1
Report on DMM(Dagstuhl Middle Model)
  • Timothy C. Lethbridge
  • SITE, University. of Ottawa
  • tcl_at_site.uottawa.ca

2
DMM was Invented at The Dagstuhl Seminar on
Interoperability of Reverse Engineering Tools
  • Jan 22-26, 2001
  • About 45 people

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 http//titan.cnds.unibe.ch8080/Exchange/2

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

5
The DMM schema
  • Represented as UML
  • Intended to be translated into a GXL schema

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

7
Top level of the hierarchy
8
Modelelementhierarchy
9
Relationshiphierarchy
10
Source objecthierarchy
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 email etc.

12
Issues
  • Multi-part references to members
  • a.b().c.d
  • Function pointers
  • Resolving correct references
  • Computed and aliased references
  • Templates

13
Possible extensions for traces and clusters
14
Extending the Relationship Hierarchy for Clusters
15
Useful URLs
  • My home page
  • http//www.site.uottawa.ca/tcl
  • DMM
  • http//titan.cnds.unibe.ch8080/Exchange/2

16
Example code to demonstrate DMM
  • int i
  • void main()
  • i 1

17
Example DMM GXL (1/4)
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE gxl SYSTEM "gxl1.0.dtd"gt
  • ltgxlgt
  • ltgraphgt
  • lttype xlinkxref"dmmschema.dtddm
    m"/gt
  • ltnode id1gt
  • lttype xlinkxref"dmmschem
    a.dtdSourceFile"/gt
  • ltattr name"name"gt

  • ltstringgtexample1.clt/stringgt
  • lt/attrgt
  • ltattr name"path"gt

  • ltstringgtC\TEST\lt/stringgt
  • lt/attrgt
  • lt/nodegt
  • ltnode id2gt
  • lttype xlinkxref"dmmschem
    a.dtdSourcePart"/gt
  • ltattr name"startLine"gt
  • ltintgt1lt/intgt
  • lt/attrgt

18
ExampleDMM GXLcont. (2/4)
  • ltnode id4gt
  • lttype xlinkxref"dmmschem
    a.dtdSourcePart"/gt
  • ltattr name"startLine"gt
  • ltintgt1lt/intgt
  • lt/attrgt
  • ltattr name"startChar"gt
  • ltintgt4lt/intgt
  • lt/attrgt
  • ltattr name"endLine"gt
  • ltintgt1lt/intgt
  • lt/attrgt
  • ltattr name"endChar"gt
  • ltintgt5lt/intgt
  • lt/attrgt
  • lt/nodegt
  • ltnode id5gt
  • lttype xlinkxref"dmmschem
    a.dtdType"/gt
  • ltattr name"name"gt

  • ltstringgtintlt/stringgt

19
ExampleDMM GXLcont. (3/4)
  • ltnode id7gt
  • lttype xlinkxref"dmmschem
    a.dtdRoutine"/gt
  • ltattr name"name"gt

  • ltstringgtmainlt/stringgt
  • lt/attrgt
  • lt/nodegt
  • ltnode id8gt
  • lttype xlinkxref"dmmschem
    a.dtdSourcePart"/gt
  • ltattr name"startLine"gt
  • ltintgt2lt/intgt
  • lt/attrgt
  • ltattr name"startChar"gt
  • ltintgt0lt/intgt
  • lt/attrgt
  • ltattr name"endLine"gt
  • ltintgt2lt/intgt
  • lt/attrgt
  • ltattr name"endChar"gt
  • ltintgt4lt/intgt

20
Example DMM GXL cont. (4/4)
  • ltedge from4 to5gt
  • lttype xlinkxref"dmmschem
    a.dtdDeclares"/gt
  • lt/edgegt
  • ltedge from3 to5gt
  • lttype xlinkxref"dmmschem
    a.dtdIsOfType"/gt
  • lt/edgegt
  • ltedge from1 to6gt
  • lttype xlinkxref"dmmschem
    a.dtdContains"/gt
  • lt/edgegt
  • ltedge from6 to7gt
  • lttype xlinkxref"dmmschem
    a.dtdDefines"/gt
  • lt/edgegt
  • ltedge from6 to8gt
  • lttype xlinkxref"dmmschem
    a.dtdContains"/gt
  • lt/edgegt
  • ltedge from8 to9gt
  • lttype xlinkxref"dmmschem
    a.dtdDeclares"/gt
  • lt/edgegt
  • ltedge from7 to9gt
Write a Comment
User Comments (0)
About PowerShow.com