Composing Models: Principles & Techniques © Copyright TUBS & TUD 2008 - 1 - Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
June 9, 2006 Transforming models with ATL © 2006 ATLAS Nantes Transforming models with ATL The A TLAS Transformation Language Frédéric Jouault ATLAS.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
A Review of Ontology Mapping, Merging, and Integration Presenter: Yihong Ding.
Software Requirements
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
The information integration wizard (Iwiz) project Report on work in progress Joachim Hammer Presented by Muhammed Al-Muhammed.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
MDE In A Sales Management System: A Case Study © 2008 INRIA, TUD & SAP MDE In A Sales Management System: A Case Study Mathias Fritzsche, Hugo Bruneliere,
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Advanced Applications Of Model-to-Model Transformation © 2008 INRIA Advanced Applications Of Model-to-Model Transformation Hugo Bruneliere & Frédéric.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
1 Introduction to Modeling Languages Striving for Engineering Precision in Information Systems Jim Carpenter Bureau of Labor Statistics, and President,
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
An Algebra for Composing Access Control Policies (2002) Author: PIERO BONATTI, SABRINA DE CAPITANI DI, PIERANGELA SAMARATI Presenter: Siqing Du Date:
UML Profiles Eclipse ECESIS Project The UML Profile technology SOFTEAM 144 Ave des Champs Elysées Paris, France
10/18/20151 Business Process Management and Semantic Technologies B. Ramamurthy.
Usage of OCL April Usage of OCL for design guidelines of models Christian Hein, Fraunhofer FOKUS April 2006.
Applications Of Model Weaving Techniques © 2008 INRIA & TUD Applications Of Model Weaving Techniques Hugo Bruneliere, Jendrik Johannes INRIA, TUD.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
WP 3.3 © Copyright Xactium, TUBS & TUD How to build a set of DSLs: from Theory to Practise Xactium, TUBS, Jendrik Johannes (TUD)
Generative Programming. Automated Assembly Lines.
A language to describe software texture in abstract design models and implementation.
1 Introduction to Software Engineering Lecture 1.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 10.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Introduction to Model-Driven Simulation © 2008 SAP, TU Dresden, XJ Technologies Introduction to Model-Driven Simulation Mathias Fritzsche 1, Jendrik.
An ATL Example © 2005 ATLAS Nantes An ATL Example The BibTeXML to DocBook Transformation ATLAS group (INRIA & LINA), University of Nantes, France.
Object Oriented Multi-Database Systems An Overview of Chapters 4 and 5.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
Introduction To Model-to-Model Transformation © 2008 INRIA Introduction To Model-to-Model Transformation Hugo Bruneliere & Frédéric Jouault INRIA.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
An Introduction to Metamodelling Eclipse ECESIS Project An Introduction to Metamodelling Principles & Fundamentals Department of Computer Science,
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Of 24 lecture 11: ontology – mediation, merging & aligning.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Kenneth Baclawski et. al. PSB /11/7 Sa-Im Shin
Software Quality Engineering
Model-Driven Analysis Frameworks for Embedded Systems
Informatics 121 Software Design I
Implementing Language Extensions with Model Transformations
Patterns.
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
An Introduction to Software Architecture
Semantic Markup for Semantic Web Tools:
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Implementing Language Extensions with Model Transformations
Software Architecture & Design
Presentation transcript:

Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes TUBS & TUD

Composing Models: Principles & Techniques © Copyright TUBS & TUD Context of this work The present courseware has been developed within the context of the MODELPLEX European IST FP6 project ( Co-funded by the European Commission, the MODELPLEX project involves 21 partners from 8 different countries. MODELPLEX aims to define and develop a coherent infrastructure specifically for the application of MDE to the development and subsequent management of complex systems within a variety of industrial domains. To achieve the goal of the large-scale adoption of MDE, MODELPLEX promotes the idea of the collaborative development of courseware dedicated to this domain. The MDE courseware provided here with the status of open- source software is produced under the EPL 1.0 licence.

Composing Models: Principles & Techniques © Copyright TUBS & TUD Outline Introduction Terminology Principles syntactical model composition semantical model composition relations between syntactical and semantical composition properties of model composition Techniques composing models with Reuseware composing models through model weaving with AMW Composing models through comparison and merging with Epsilon

Composing Models: Principles & Techniques © Copyright TUBS & TUD Introduction: Terminology Model composition process: Integrating a number of models either by Ensuring their interoperability as autonomous models or by Comnining them into new composite models Consists of several activities (etc. interoperability check or establishing weaving model) Participating models: Input models Output model(s) Weaving model: Contains links to elements of input models

Composing Models: Principles & Techniques © Copyright TUBS & TUD Introduction: Terminology II Participyting models (cont‘d): Woven model: Model that contains elements whcih were target of one or more weaving models Composition model: Special kind of Weaving model: links are useful for composition only (e.g., links to elements which have to be merged) Model Composition Activities: Model weaving: establishing a weaving model Model merging: integrating a number of input models to a one or more output models by exploiting information in one or more composition models

Composing Models: Principles & Techniques © Copyright TUBS & TUD Syntax and Semantics of Models Syntax: Conrete Syntax: representation of the model Diagrams Text XML Abstract Syntax: independent from representation „essence“ of the model Semantics: „meaning of the model“ E.g., by mapping to a well known semantic domain

Composing Models: Principles & Techniques © Copyright TUBS & TUD Syntax and Semantics of Models Semantical composition: User has a composition operator in mind E.g. „merge 2 class diagrams using UML package merge and its rules“ i.e., the composition is first defined on the semantic level Syntactical composition: Defines what the operator does on the syntactical level E.g., copying attributes and methods of equal-named classes into a new class with the same name (without duplicates) Composition is always executed on the syntactical level Central questions: „What is the relationship between the syntactical and the semantical operator?“ „What is the relationship between the semantics of the input models and the semantics of the output model?“ and especially „Are there any consequences?“

Composing Models: Principles & Techniques © Copyright TUBS & TUD Semantics of Models Compositional development implies open-world- assumption: „What is not stated is considered unknown” More than 1 system may realize a model Thus: introduce semantic mapping which maps each model to the set of systems which are possible realizations Denote S / M as the set of all systems / models, sm as the semantic mapping,  as powerset we have sm : M ->  (S)

Composing Models: Principles & Techniques © Copyright TUBS & TUD Semantics of Models Each model describes predicates over the set of systems Properties of sm: m  M consistent  sm(m) ≠ Ø m  M does not contain information  sm(m) = S m 2 refines m 1  sm(m 2 )  sm(m 1 ) The more we know the fewer implementations are possible Add information  set of systems gets smaller

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model composition Simplest form on the syntactic level:  : M x M → M Property Preserving (PP) composition operator: On the left: sm(m 1  m 2 )  sm(m 1 ) On the right: sm(m 1  m 2 )  sm(m 2 ) PP: sm(m 1  m 2 )  sm(m 1 )  sm(m 2 ) PP  no information/design decision is lost during composition No equality, but subset: There can be added information (e.g., unnamed associations get a name)

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model composition If we have equality  Fully Property Preserving composition operator: sm(m 1  m 2 ) = sm(m 1 )  sm(m 2 ) Advantages !!! Analyze models seperateley Trace properties/errors back to source models PP  all requirements defined in source models are preserved in composition FPP is a prerequisite to generate code out of each model separately

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model composition Repeated: PP composition operator: sm(m 1  m 2 )  sm(m 1 )  sm(m 2 )  composition can add information This may lead to an inconsistent result (sm(m) = Ø) even though the originals are not incosistent with each other (sm(m 1 )  sm(m 2 )  Ø) Difficult to handle such a composition operator  demand for Consistency Preservation (CP): sm(m 1 )  sm(m 2 )  Ø  sm(m 1  m 2 )  Ø FPP  CP

Composing Models: Principles & Techniques © Copyright TUBS & TUD Semantic Composition Operator Similar to the syntactic level  : D x D → D Example: intersection Resulting diagram: Diagram commutes iff sm(m 1  m 2 ) = sm(m 1 )  sm(m 2 ) (FPP) M2M2 MMM sm   SSS

Composing Models: Principles & Techniques © Copyright TUBS & TUD Deeper investigation This presentation contains basic investigations only For more detailed discussions and examples see: Herrmann, Krahn, Rumpe, Schindler, Völkel: An Algebraic View on the Semantics of Model Composition, ECMDA 2007, Haifa, Israel

Composing Models: Principles & Techniques © Copyright TUBS & TUD Outline Introduction Terminology Principles syntactical model composition semantical model composition relations between syntactical and semantical composition properties of model composition Techniques composing models with Reuseware composing models through model weaving with AMW Composing models through comparison and merging with Epsilon

Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models With Reuseware Reuseware is... A language independent modularisation approach [1] A framework: Reuseware Composition Framework [2] Common concepts for different composition systems for arbitrary languages Easy specification of new composition techniques and porting of techniques from one language to another Reuse of composition tooling Tailor tooling for composition system and language Support features of aspect-oriented systems Support homogeneous crosscuts (and quantification) Support heterogeneous crosscuts [1] On Language-Independent Model Modularisation,Transactions on Aspect-Oriented Development, 2008 [2]

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts Model Fragments (Partial) models that may contain variation points Offer a Composition Interface Composition Interface consists of Ports Ports point at elements of the model fragment that can be accessed for composition One Port can point at several elements at arbitrary places in the model fragment (heterogeneous crosscut) Similar Ports can be joined to one HomogeneousPort (homogeneous crosscut) Composition Programs Define composition links between Ports Are executed to produce a composed model where model fragments are woven at the elements pointed out by the linked Ports

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts Composition Systems Define modularisation concepts (e.g., modules, packages, aspects) Define relations between modularisation concepts (e.g, an aspect relates to a core) Reuse extensions (for a particular language) Define how modularization concepts defined in a composition system are realized in a concrete language Define which ports are related to which model elements of a model fragment

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts Model Fragment AModel Fragment B Composition interface Composition program

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts Model composed from A and B Composed model

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts homogeneous crosscut

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware - Core Concepts heterogeneous crosscut x x yy

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware Example: Activity Diagram Composition Composition of two activity diagram model fragments

Composing Models: Principles & Techniques © Copyright TUBS & TUD Reuseware Example: Activity Diagram Composition Composed activity diagram

Composing Models: Principles & Techniques © Copyright TUBS & TUD Compositing Models through Model Weaving with AMW AMW Eclipse modelling tool for model weaving Allows to link models through weaving models Weaving models can act as composition models Model transformation interprets such weaving models and merges them

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition with AMW - Example Weaving links are defined between elements of two models to express composition

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition with AMW - Example A transformation interprets the weaving links as model compositions

Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing models through comparison and merging (Epsilon) Epsilon Eclipse model management platform Allows to link models through link models Link models can act as composition models Model comparison and merging are used to interpret link models as model compositions Epsilon language ECL and EML are used for this

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition with Epsilon - Example Links define relations between model elements required for a composition

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition with Epsilon - Example Comparison rules (written ECL) compute correspondences between models involved in the compositon rule ClassWithObserver match c : Core!EClass with o : ObserverPattern!EClass { guard : o.name = 'Observer' compare : ObserverLink!ObserverLink.allInstances.exists( l|l.observer = c) }...

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition with Epsilon - Example Merge rules (written in EML) compose models autorule ClassWithSubject merge c : Core!EClass with s : ObserverPattern!EClass into t : Target!EClass extends ClassWithOperationsContributingClass { guard : o.name = 'Subject' }...

Composing Models: Principles & Techniques © Copyright TUBS & TUD Model Composition Techniques - Summary More detail about the presented model composition techniques can be found in: MODELPLEX Public Deliverable Document D3.1.b: Model Weaving M14 Available at: