The Dagstuhl Middle Model: An Overview Timothy C. Lethbridge SITE, University. of Ottawa

Slides:



Advertisements
Similar presentations
Major Influences on the Design of ODM Dan Chang (IBM) Elisa Kendall (Sandpiper) MDSW 2004.
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Program Representations. Representing programs Goals.
Production Rule Representation Team Response Presentation to BEIDTF OMG Montreal Aug 2004 Ruleml.org.
Detailed Design Kenneth M. Anderson Lecture 21
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
The RDF meta model: a closer look Basic ideas of the RDF Resource instance descriptions in the RDF format Application-specific RDF schemas Limitations.
1 Conceptual Modeling of Topic Maps with ORM Versus UML Are D. Gulbrandsen The XML group, Center for Information Technology Services, University of Oslo,
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
The Role of Modeling in Systems Integration and Business Process Analysis © Sparx Systems Pty Ltd 2011 Ben Constable Sparx Systems.
David Harrison Senior Consultant, Popkin Software 22 April 2004
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
Databases From A to Boyce Codd. What is a database? It depends on your point of view. For Manovich, a database is a means of structuring information in.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Model Transformations
© 2007 Open Grid Forum OGF Modeling Activities DMTF Alliance Partner Symposium Portland, 2007 July 18 Ellen Stokes
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
Chapter 2 CIS Sungchul Hong
An Introduction to Software Architecture
Chapter 1. Introduction.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Introduction to MDA (Model Driven Architecture) CYT.
Topic S Program Analysis and Transformation SEG 4110: Advanced Software Design and Reengineering.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Entity Framework Overview. Entity Framework A set of technologies in ADO.NET that support the development of data-oriented software applications A component.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
SaveUML System design. System overview Possible...
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Metadata. Generally speaking, metadata are data and information that describe and model data and information For example, a database schema is the metadata.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
A language to describe software texture in abstract design models and implementation.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
44220: Database Design & Implementation Modelling the ‘Real’ World Ian Perry Room: C41C Ext.: 7287
ProgrammingLanguages Programming Languages Language Definition, Translation and Design.
Using Meta-Model-Driven Views to Address Scalability in i* Models Jane You Department of Computer Science University of Toronto.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
Topic #1: Introduction EE 456 – Compiling Techniques Prof. Carl Sable Fall 2003.
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
The RDF meta model Basic ideas of the RDF Resource instance descriptions in the RDF format Application-specific RDF schemas Limitations of XML compared.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
Basic Characteristics of Object-Oriented Systems
Artificial Intelligence Knowledge Representation.
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
Sheet 1MDAFA2004 Linköping, June 2004 A Language for Model Transformations in the MOF Architecture Ivan Kurtev, Klaas van den Berg University of Twente,
Report on DMM (Dagstuhl Middle Model)
Chapter 1 Introduction.
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
SysML v2 Formalism: Requirements & Benefits
Syntactic Requirements
Chapter 1 Introduction.
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment.
Evaluating Compuware OptimalJ as an MDA tool
An Introduction to Software Architecture
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
Software Architecture & Design
Presentation transcript:

The Dagstuhl Middle Model: An Overview Timothy C. Lethbridge SITE, University. of Ottawa

ateM VictoriaTimothy C. Lethbridge2 Motivation Information interchange is necessary among reverse engineering tools So researchers/companies can - Use each others’ tools - Interpret each other’s data Therefore we need one or more metamodels (better if we can integrate and have just one metamodel) We will use the term metamodel and schema interchangeably

ateM VictoriaTimothy C. Lethbridge3 Various metamodels that have been used CDIF (obsolete now) UML metamodel and the MOF TA / RSF schemas - In the Canadian research community Famix Others Typical problems Too proprietary Too complex Don’t meet all reverse-engineering requirements

ateM VictoriaTimothy C. Lethbridge4 Requirements not met by the UML metamodel Effective handling of source-code level information such as: Full procedure call hierarchy Full details of variables and access information Macros and other source code constructs The UML metamodel focuses on things representable by UML i.e. designed for forward-engineering

ateM VictoriaTimothy C. Lethbridge5 Main types of metamodels for reverse engineering Low-level (Abstract Syntax Graph) Specific to a programming language Can represent full details of code, allowing almost unlimited types of analysis Mid-level Relationships among program entities More compact than low-level Architectural E.g. components, pipes and filters Database

ateM VictoriaTimothy C. Lethbridge6 The Dagstuhl Middle Model (DMM) Probably should from now on be called the Dagstuhl Middle Metamodel Initiated at the Dagstuhl Seminar on reverse engineering tool interoperability Held Jan 22-26, 2001 Involved about 45 people Ratified GXL A syntactic representation for schemas Started work on the four types of schemas

ateM VictoriaTimothy C. Lethbridge7 DMM background continued Represents program and source elements and their relationships In a language-independent way Suitable for typical OO and procedural languages - C, C++, Java, Fortran, Cobol, etc. Extensions needed for languages with special features - E.g. Logic languages, scripting languages Key initial contributors and inputs University of Ottawa (TA++) Sander Tichelaar; Berne (Famix) Erhard Plödereder; Stuttgart (Bauhaus) others Web site:

ateM VictoriaTimothy C. Lethbridge8 Design issues On the next few slides we will look at some of the issues considered when designing DMM Most of these issues were resolved in the direction of providing Simpler models That capture adequate information Enabling the reverse engineer to navigate objects and relationships in the system - Once they have found information of interest they may look at code or more detailed models

ateM VictoriaTimothy C. Lethbridge9 Design issue 1 Should you be able to regenerate the original code given a middle model? Decision: No That would yield models of too great complexity for our target audience But this does not preclude a parser that generates a low level model, coupled to a tool that ‘lifts’ the data to a middle model

ateM VictoriaTimothy C. Lethbridge10 Design issue 2 Should a model represent original code or pre- processed code? Options: - Original code More useful for browsing tools What the reverse engineer really thinks about and needs to modify Can model pre-processor directives + macros - Pre-processed Much easier to parse Decision: Represent original code

ateM VictoriaTimothy C. Lethbridge11 Design issue 3 How language-independent should the metamodel be? Decision: It should be able to abstractly represent all common relationships among elements Even though in different languages … - … the elements may have different names - … the elements may have subtly different semantics

ateM VictoriaTimothy C. Lethbridge12 Examples of language- independence-promoting abstractions The notion of type of a variable is preserved - But different types of pointers and storage can be abstracted out Procedures, functions and methods can all be treated similarly Classes, records and structures can be treated similarly Etc.

ateM VictoriaTimothy C. Lethbridge13 Design issue 4 Should all references be resolved? E.g. exactly what procedure is called by what procedure call Resolved references Not possible in the general case due to function pointers, dynamic binding Even in the non-OO case, requires full understanding of language-dependent linkage rules Often dependent on makefile In practice, software engineers can understand most aspects of code without resolved references

ateM VictoriaTimothy C. Lethbridge14 Design issue 5 What level of detail needs to be captured? Assignments, control constructs? - No – that is for low-level ASG metamodels Local variables? - Not normally at the middle level Exact position of all references? (e.g. calls) - Existence of references in some object may be all that is needed Enough detail for full data flow analysis? - No; only enough for limited DFA

ateM VictoriaTimothy C. Lethbridge15 Design issue 6 Do we separate representation of source entities from representation of conceptual entities? Source elements are chunks of source code Needed for tools to point reverse engineers to where conceptual entities are mapped to code Also useful for representing source constructs such as macros, conditional compilation, etc. Such a separation has proved useful, but may not always be needed

ateM VictoriaTimothy C. Lethbridge16 How to model DMM? We follow the OMG convention of modeling DMM using a class diagram Actually we use the subset of class diagrams called MOF (Meta Object Format)

ateM VictoriaTimothy C. Lethbridge17 Top level of the hierarchy

ateM VictoriaTimothy C. Lethbridge18 Model element hierarchy

ateM VictoriaTimothy C. Lethbridge19 Relationship hierarchy

ateM VictoriaTimothy C. Lethbridge20 Source object hierarchy

ateM VictoriaTimothy C. Lethbridge21 Issues not handled by DMM that may concern reverse engineers Multi-part references to members E.g. in the expression a.b().c - How Function pointers Reverse engineers we have worked for really have wanted to understand what can call what via function pointers Computed and aliased references Templates, à la C++

ateM VictoriaTimothy C. Lethbridge22 Syntactic carrier neutrality DMM can be represented using: GXL: See TA XMI RDF Any other format capable of representing instances of classes and their associations A tool can use whichever it likes, provided there are appropriate syntax translators

ateM VictoriaTimothy C. Lethbridge23 DMM Development Status General website University of Ottawa Have C++ parser that generates DMM in GXL URL: Others are also experimenting with model Future work Many details to be decided based on initial experiences

ateM VictoriaTimothy C. Lethbridge24 Topics for discussion How useful is DMM as it stands? Is anything clearly inadequate? What changes, variants or extensions are needed? What other middle level metamodels are there and can we merge the ideas from these to create a common standard Will this standard be adopted What extensions might be useful? Can DMM be reasonably integrated with other types of metamodels? (E.g. database, architectural, and ASG metamodels, with common classes at the intersection)

ateM VictoriaTimothy C. Lethbridge25 (End)

ateM VictoriaTimothy C. Lethbridge26 The UML Meta- model

ateM VictoriaTimothy C. Lethbridge27 A legacy mid-level model: TA++

ateM VictoriaTimothy C. Lethbridge28 Another input model: part of Famix