Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Modeling Services Model Interoperability Xavier Blanc – University Paris VI.
1Model Driven Architecture – 3. März 2008 – Siegfried Nolte 1.UML – What is it and what is it good for ? 2.MDA – What is it and what is it good for ? 3.MDA.
1 Model-driven development of SOA with Web services – using QVT technology Master thesis by Berge Stillingen Department of Informatics, University of Oslo.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
7 July 2003 MDA presentation Dennis Wagelaar 1 Model-Driven Architecture The current state of affairs.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
© Copyright Eliyahu Brutman Programming Techniques Course.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
LUCENTIA Research Group Department of Software and Computing Systems Using i* modeling for the multidimensional design of data warehouses Jose-Norberto.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
1 Introduction Chapter 1. 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding the organization.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
1 MDWE'2008, Toulouse, France, September 30, 2008 A Comparative Analysis of Transformation Engines for User Interface Development Juan Manuel González.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
XASTRO-2 Overview Presentation CCSDS SAWG Athens Meeting 12 th April 2005.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
DSL Classification October 21-22, 2007 Benoît Langlois / Thales-EPM Consuela-Elena Jitia / Eric Jouenne, Thales Research & Technology The 7th OOPSLA Workshop.
On the Role of Abstract Platform in Model Driven Development* Marten van Sinderen Centre for Telematics and Information Technology, University of Twente,
XASTRO Metamodel. CCSDS SAWG2 Presentation Outline XASTRO-1 Metamodel XASTRO-2 Metamodel Alignment with Model Driven Architecture.
MDA – Model Driven Architecture Olivier Riboux. Overview What is MDA? The Challenges MDA addresses Developing in the MDA Benefits / Conclusion Case Study:
Welcome Experiences in the Use of MDA and UML in Developing NATO Standards 16 July 2008 Chris Raistrick, Kennedy KC.COM.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Extensible Modeling and Simulation Framework Extensible 3D Graphics (X3D) Don Brutzman MOVES Institute, Naval Postgraduate School Andreas Tolk VMASC, Old.
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
14 October 2002GGF6 / CGS-WG1 Working with CIM Ellen Stokes
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
A Flexible MDATool Set Anneke Kleppe Klasse Objecten.
Model Driven Performance Analysis University College London James Skene –
Model Driven Architecture MDA SE-548 Lale Doğan
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Comparison of ZOOM with other Formal Methodologies Hsiu-Chien Jing SE690 Initial Presentation School of CTI, DePaul University Supervised by Dr. Jia October,
MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards.
SysML v2 Formalism: Requirements & Benefits
Model-Driven Ontology Engineering
Evaluating Compuware OptimalJ as an MDA tool
The Tropos visual modeling language A meta-model.
UML profiles.
Constructing MDA-based Application Using Rational XDE for .NET
Execute your Processes
Model Driven Software Development
Software Architecture & Design
Presentation transcript:

Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault Frédéric Fondement

Plan Model Driven Engineering Model transformation MTL concepts And soon…

Plan Model Driven Engineering Model transformation MTL concepts And soon…

Model driven approaches « From contemplative to productive models» Jean Bézivin Based on different models most of the time of different meaning and level of abstraction. These models have to match / communicate / be composed Model transformation is a key point !

EX: MDA from the OMG Successive refinements RequirementsAnalysis Architectural Design Detailed Design ImplementationValidation Lifecycle Modeling point of views Proofs, QoS Analysis, Simulation Technical Aspects Business Aspects Text (e.g. XML) PIM Doc PIM PSM PIMPSM CodeTests Formal Models Endomorphic Transformations Exomorphic Transformations Outside UML scope

The OMG 4 layers architecture What we want to transform

Plan Model Driven Engineering Model transformation MTL concepts And soon…

Patterns of transformation Platform Description Etc. … MDA Guide, OMG

Something interesting… Model transformation is a program: just apply the best programming practices ! Design and analysis Models of transformations at different abstraction level Tracability, versionning, testing… MDE: transformation of transformation ! Such as XML with XSLT, a transformation may transform the model of a transformation For instance to adapt a generic transformation (PIT) to a specific tool (PST)…

Transformation tools: requirements (Bézivin Farcet Jézéquel Langlois Pollet) Depends only on metamodels (not on models) Must be cascadable Can represent generic tasks, not depending on the level of abstraction Must be adaptable to slightly different problems Must be maintainable

Transformation tools now… An upcoming standard: OMG MOF QVT Obviously, not yet implemented Many dedicated transformations code generators, object to relational mappings, … Much less dedicated tools J, JMI implementations,… No generic solution (UML, real-time,…) Proprietary solutions

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

Model Transformation Language (MTL) The IRISA solution for model manipulations A dedicated language for model transformation (DSL ?) To be used as a motor when the OMG MOF QVT will be realised

MTL architecture Read Write models Read only models Transfor- mation model MTL CASE MTL Engine Dedicated CASEs

MTL Position MTL motor Repositories Transformation In OMG-QVT Libraries Framework Transformation In MTL Interpreter/Compilator OMG-QVT 2 MTL In MTL

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

Transformation tools: requirements (Bézivin Farcet Jézéquel Langlois Pollet) Depends only on metamodels (not on models) => Manipulates models Of any kind of metamodel In any kind of repository

Transformation tools: requirements (Bézivin Farcet Jézéquel Langlois Pollet) Must be cascadable => Re-usable libraries of transformations Interoperability Can call other (transformation ?) tools Native libraries Can be called by other (transformation ?) tools

Transformation tools: requirements (Bézivin Farcet Jézéquel Langlois Pollet) Can represent generic tasks, not depending on the level of abstraction Must be adaptable to slightly different problems => OO genericity (multiple inheritance) For classes For libraries Concept of view manipulation Views are virtual models whose metamodel is described by a MTL Library

Transformation tools: requirements (Bézivin Farcet Jézéquel Langlois Pollet) Must be maintainable => Programming language with well-known concepts Easy to learn Existing maintenance solutions Independency from the model repositories

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

From the programmer point of view (1/2) Typed language Static typing for MTL Implicit typing for model elements Object-oriented language Based on the OMG UML class diagrams Packages Classes Associations (N-ary, class-associations, qualifiers…) Visibility Exception mechanism … Methods (behaviours) in imperative style

From the programmer point of view (2/2) Integrated model manipulation MTL object and model elements are manipulated the same way No constraint on the number of manipulated models An abstract language Based on MOF + OCL MM (+ QVT ?) Many compatible concrete syntax may be defined Full textual Structure in UML class diagrams + methods in text Structure in UML class diagrams + methods in an adapted activity graphs Allows transformations of transformations Adapt a transformation to a specific platform

Adding known techniques and specific innovating solution « Old » well-known techniques The MTL specificity MTL = OCL One of the best solution for model manipulation Standard library + Side effects Model modification MTL objects modification + Structuration UML class diagrams + MTL Libraries are “templated” Models to be manipulated – found at runtime Views as MTL “abstract” libraries – for generic manipulations

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

Model integration Everything is declared in a library which may be “templated” by a number of models or views Libraries are “instanciated” Declared elements can access real models and real adaptors (library subclass of the given view)

How to use views ? (motivation) Write transformations independent from metamodels of the manipulated models 1. Describe manipulated concepts (PI MM!) in a library (as an example Class, Field…) 2. Write in an inheriting library (PS MM!) how your concepts are mapped into the real metamodels (UML 1.4, CWM RDB,…) This is the MDA pattern !

An example of view

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

Independency from repository tools Model manipulation implies model repositories ! Many of them are already available, with different techniques and standards OMG MDA / JMI (Novosoft, CIM, MDR, EMF, UML CASE (Rose, Objecteering, UMLAUT, Poseidon,…) Object-Oriented Databases / OQL (Poet, Jasmine,…) Relational databases (PostgreSQL, Oracle,…) Distributed systems (CORBA, EJB,.net,…) … Many others in the future MTL must not depend on repository technology !

Yet another API… We have introduced a new API for model manipulation IDL compatible The most basic concepts of the MOF No reflection “Drivers” must adapt the tool to the API Already written: MDR DON’T MIND ! MTL (motor / compiled programs ?) use this API No knowledge of this API required: everything is in the language

Capabilities Create, find or delete an instance of a class (found with its qualified name) an association (found either with its qualified name or its association ends) Field access (found with its name) attributes, references, operation – if supported ! attribute modification Optional parts (may be not supported – PST = Platform Specific Transformation!): qualified links, reflection, dedicated methods…

An example

The meta-level Information from MTL

The model-level Information from the repository driver

Plan Model Driven Engineering Model transformation MTL concepts Respected requirements Overview Models and views Repository access And soon…

BasicMTL Offers main characteristics of MTL Strongly typed for himself, layzy typed for models Object oriented (libraries, classes, attributes and operations, multi inheritance for classes and libraries) Model manipulation (repository access) Action language independent from the platform Predefined types and operations inspired from OCL Views – Adapter mechanism Exceptions Platform independent (from standards and real platforms) Independence is adaptability (to the future…)

BasicMTL and MTL BasicMTL will be available soon It offers less possibilities than MTL By transformation (in BasicMTL), it can become MTL BasicMTL is used as a “bootstrap” for MTL It will permit testing main MTL concepts !

Conclusion We propose to see a transformation language as a classical language Ease of learning Apply well known methodologies Still have to implement it ! BasicMTL quite soon (validation of concepts) Adaptation to the QVT standard later