Report on DMM (Dagstuhl Middle Model)

Slides:



Advertisements
Similar presentations
Universität Koblenz-Landau Institut für Softwaretechnik Re-Group CASCON 2000Toronto, Graph Exchange Language An overview Ric Holt Andreas Winter.
Advertisements

Universität Koblenz-Landau Institut für Softwaretechnik Re-Group WCRE 2000Brisbn, Nov 25, 2000 Graph Exchange Language Representing Graph Schemas (a working.
Copyright 2001, ActiveState. XSLT and Scripting Languages or…XSLT: what is everyone so hot and bothered about?
Analysis of programs with pointers. Simple example What are the dependences in this program? Problem: just looking at variable names will not give you.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Universität Koblenz-Landau Institut für Softwaretechnik Re-Group Graph Drawing Vienna, September 26, 2001 Graph Exchange Language Andreas Winter joint.
Presenter : g9102 黃培智 Outline  Motivation and Background  GXL Overview  Exchange Graphs  Exchange Graph Schemas  Conclusion.
Variations of Linked Lists CS 308 – Data Structures.
Chapter 3 : Software Process and Other Models Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University.
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
Architectural Design.
XML-to-Relational Schema Mapping Algorithm ODTDMap Speaker: Artem Chebotko* Wayne State University Joint work with Mustafa Atay,
Chapter 15 – Inheritance, Virtual Functions, and Polymorphism
Sheet 1XML Technology in E-Commerce 2001Lecture 3 XML Technology in E-Commerce Lecture 3 DOM and SAX.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity SERA 2013SERA 2013 (August 7, 2013 in.
SIMO SIMulation and Optimization ”New generation forest planning system” Antti Mäkinen & Jussi Rasinmäki Dept. of Forest Resource Management.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
GXL Progress Report Susan Elliott Sim on behalf of Andreas Winter, Ric Holt, and Andy Schürr and the GXL Mailing List.
Unified Modelling Language (UML) Software Engineering Lab. Sharif University of Technology.
1 Enhancing Program Comprehension with recovered State Models Stéphane S. Somé Timothy C. Lethbridge SITE, University of Ottawa.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
June, 2005 NCSC Component Library National Center for State Courts & URL Integration June, 2005
The Dagstuhl Middle Model: An Overview Timothy C. Lethbridge SITE, University. of Ottawa
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Jan Pettersen Nytun, UIA, page 1 Knowledge Representation Part IV The Semantics Web Starting with XML Jan Pettersen Nytun, UiA.
Building Enterprise Applications Using Visual Studio®
Announcements/Reading
Knowledge Representation Part IV The Semantics Web Starting with XML
About.
Compiler Design (40-414) Main Text Book:
The architecture of the P416 compiler
Mooly Sagiv html://
Sharing is fun! Thoughts on open access research
Chapter 1: Introduction
Introduction to Parsing (adapted from CS 164 at Berkeley)
Textbook:Modern Compiler Design
Systems Analysis and Design With UML 2
EE2E1. JAVA Programming Revision Lecture.
Applying a Research Prototype Tool in Industrial Practice
Chapter 1: Introduction to Compiling (Cont.)
Overview of System Engineering
Bottom-up AST, original grammar
Module 8 – Database Design Using the E-R Model
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Bottom-up AST, original grammar
Bottom-up derivation tree generation
Software testing.
Starting Design: Logical Architecture and UML Package Diagrams
CMPE 152: Compiler Design August 23 Class Meeting
Visualization of DMM using GraphVis and WebDot
Moving from Studio to Atelier
CS 8532: Advanced Software Engineering
Precedence Graph Grammar for Hierarchical Program Diagram
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
SYNTAX DIRECTED DEFINITION
Part 1. Preparing for the exercises
UNIT-I Introduction to Database Management Systems
A Framework for Testing Query Transformation Rules
CMPE 152: Compiler Design January 29 Class Meeting
Chap 1. Getting Started Objectives
Graphical Modeling of INFOD applications
CSCE156: Introduction to Computer Science II
Timothy C. Lethbridge, Andrew Forward, Omar Badreddin
Introduction to TDL and TOP
Software Architecture & Design
Presentation transcript:

Report on DMM (Dagstuhl Middle Model) 3/15/2017 Report on DMM (Dagstuhl Middle Model) Timothy C. Lethbridge SITE, University. of Ottawa tcl@site.uottawa.ca

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

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.ch:8080/Exchange/2 WCRE 2001 Timothy C. Lethbridge

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

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

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

Top level of the hierarchy WCRE 2001 Timothy C. Lethbridge

Model element hierarchy WCRE 2001 Timothy C. Lethbridge

Relationship hierarchy WCRE 2001 Timothy C. Lethbridge

Source object hierarchy WCRE 2001 Timothy C. Lethbridge

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. WCRE 2001 Timothy C. Lethbridge

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

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

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

Useful URLs My home page http://www.site.uottawa.ca/~tcl DMM http://titan.cnds.unibe.ch:8080/Exchange/2 WCRE 2001 Timothy C. Lethbridge

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

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

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

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

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