Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

Similar documents
Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support

Technische Universität Dresden

Coral: A Metamodel Kernel for Transformation Engines

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

A Metamodel-Based OCL-Compiler for UML and MOF

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Introduction to MDE and Model Transformation

Dresden OCL2 in MOFLON

Integrating TwoUse and OCL- DL

Ontology-based Model Transformation

MDA-Based Architecture of a Description Logics Reasoner

Softwaretechnik Model Driven Architecture Meta Modeling

The Eclipse Modeling Framework and MDA Status and Opportunities

ECLIPSE MODELING PROJECT

OCL omissions and contradictions

Construction of Complex UML Profiles

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

This paper is more intended to set up a basis for a constructive discussion than to offer definitive answers and closed solutions.

Kermeta tutorial. How to create a metamodel. François Tanguy, Didier Vojtisek. Abstract

DRESDEN OCL MANUAL FOR INSTALLATION, USE AND DEVELOPMENT. Claas Wilke, Michael Thiele, Björn Freitag, and Lars Schütze

Metamodeling and Metaprogramming

Unified Modeling Language 2

Software Architecture

Towards a Data Consistency Modeling and Testing Framework for MOF Defined Languages

USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING

MDT OCL Goes Generic. Introduction to OCL and Study of the Generic Metamodel and API. Christian W. Damus IBM Rational Software OCL Committer

WP14: DBE Knowledge Base. Deliverable D14.6: Final Release of the Recommender

Specification and Automated Detection of Code Smells using OCL

(Meta)Models between MetaEdit+

BLU AGE 2009 Edition Agile Model Transformation

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

OCL Implementing the Standard for Multiple Metamodels

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach

Language engineering and Domain Specific Languages

Metamodeling and Metaprogramming

OCL for the Specification of Model Transformation Contracts

Open Source egovernment Reference Architecture. Cory Casanave, President. Data Access Technologies, Inc.

Modelling in Enterprise Architecture. MSc Business Information Systems

Leveraging UML Profiles to Generate Plugins From Visual Model Transformations

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Sequence Diagram Generation with Model Transformation Technology

An introduction to MDR : The Model Driven approach

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Rich Hilliard 20 February 2011

with openarchitectureware

Transformational Design with

Christian Doppler Laboratory

Static analysis and testing of executable DSL specification

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

A Model Driven Approach based on Interaction Flow Modeling Language to Generate Rich Internet Applications

Model Querying with Graphical Notation of QVT Relations

CISC836: Models in Software Development: Methods, Techniques and Tools

University of Mannheim

ATL: Atlas Transformation Language. ATL User Manual

Copying Subgraphs within Model Repositories

Kermeta tutorial. How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette. Abstract

Multidimensional Key, Version 1.0

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

Metamodeling with Metamodels. Using. UML/MOF including OCL

Index. business modeling syntax 181 business process modeling 57 business rule 40

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Java Metadata Interface (JMI)

!MDA$based*Teaching*and* Research*in*Software*Engineering*!

A Model-Driven JSON Editor

On the link between Architectural Description Models and Modelica Analyses Models

A Proposed Engine Implementation Mechanism to Execute the Code of Relations Query/View/Transformation Language

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Model Driven Engineering

FedDW Global Schema Architect

A Model-driven approach to NLP programming with UIMA

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Toward a Knowledge-Based Solution for Information Discovery in Complex and Dynamic Domains

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Concepts for Comparing Modeling Tool Architectures

Event Metamodel and Profile (EMP) Proposed RFP Updated Sept, 2007

AT&T Government Solutions, Inc.

A MOF based Meta-Model and a Concrete DSL Syntax of IIS*Case PIM Concepts

EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation)

Comparative analysis of MDA tools

Introduction to Dependable Systems: Meta-modeling and modeldriven

Model-Driven Language Engineering

ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES LUIS ROCHA. A project submitted in partial fulfillment

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

MOMOCS D2.1 XIRUP S UPPORTING T OOLS R EQUIREMENTS. Model driven Modernisation of Complex Systems. Dissemination Level: Work package:

Model Transformations for Embedded System Design and Virtual Platforms

Meta-Modeling and Modeling Languages

Implementing Model Driven Architecture

BOCHICA: A MODEL-DRIVEN FRAMEWORK FOR ENGINEERING MULTIAGENT SYSTEMS

Dominique Blouin Etienne Borde

USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

Generation of Web-based Prototypes for Business Applications

Advanced Topics in Software Engineering (02265) Ekkart Kindler

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

Model Driven Engineering (MDE)

Algebraic Semantics of EMOF/OCL Metamodels

Transcription:

Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment Großer Beleg Final Presentation

Contents Introduction Research Methodology Results Evaluation TU Dresden Großer Beleg Final Presentation Slide 2 of 27

Contents Introduction Research Methodology Results Evaluation TU Dresden Großer Beleg Final Presentation Slide 3 of 27

Motivation Model-driven Software Development (MDSD) emerging paradigm for higher productivity and quality in software engineering increasing importance of domain-specific modeling languages (DSL) on meta layers M2 and M3 requires precise models, model transformations idea: use a standard constraint and model query language like OCL on instances of arbitrary DSLs TU Dresden Großer Beleg Final Presentation Slide 4 of 27

Goals design of a pivotal metamodel to integrate OCL with multiple DSLs OCL Pivot Model DSL implement an approach to realize the mapping between the Pivot Model and the target DSL TU Dresden Großer Beleg Final Presentation Slide 5 of 27

Example EMF Ecore small and specialized language for defining objectoriented metamodels meta-metalanguage (M3) Benefits of integration with OCL: express wellformedness rules over Ecore models transform Ecore models using QVT Example language defined with Ecore: Plugin Modeling Language (PML) TU Dresden Großer Beleg Final Presentation Slide 6 of 27

Example language defined with Ecore: Plugin Modeling Language (PML) TU Dresden Großer Beleg Final Presentation Slide 7 of 27

Contents Introduction Research Methodology Results Evaluation TU Dresden Großer Beleg Final Presentation Slide 8 of 27

Approach analysis of literature about metamodeling to identify foundational challenges analysis of related work to identify respective strengths and weaknesses: Dresden OCL2 Toolkit Kent OCL Library Epsilon Platform definition of a conceptual framework to guide research TU Dresden Großer Beleg Final Presentation Slide 9 of 27

Conceptual Framework Concepts Level Definition Level Execution Level TU Dresden Großer Beleg Final Presentation Slide 10 of 27

Applying the Framework requires integration of Ecore with OCL M3 M2 M1 Ecore PML a Plugin Model M0 a Plugin instance TU Dresden Großer Beleg Final Presentation Slide 11 of 27

Contents Introduction Research Methodology Results Evaluation TU Dresden Großer Beleg Final Presentation Slide 12 of 27

Design of the Pivot Model TU Dresden Großer Beleg Final Presentation Slide 13 of 27

Implementation of Model Adaptation knows OCL engine Pivot Model Target DSL «realize» adapt operates on Adapters TU Dresden Großer Beleg Final Presentation Slide 14 of 27

Presentation generically displaying Ecore models through the Pivot Model interface TU Dresden Großer Beleg Final Presentation Slide 15 of 27

Integrating the OCL Standard Library OCL Standard Library predefined types and operations some problems with integration: infinite number of OCL collection and tuple types all model types implicity derive from OclAny existing OCL engines: dynamic creation of Standard Library in the code complex, error-prone TU Dresden Großer Beleg Final Presentation Slide 16 of 27

Integrating the OCL Standard Library my solution: support templates (generics) in the Pivot Model model Standard Library as instance of Pivot Model integrate by loading serialized XMI and bind generic types when necessary TU Dresden Großer Beleg Final Presentation Slide 17 of 27

Presentation modeling the OCL Standard Library TU Dresden Großer Beleg Final Presentation Slide 18 of 27

Writing OCL expressions for Ecore models example: a wellformedness rule for PML -- a Plugin must have a valid id context Plugin inv: self.id->notempty() problem: existing OCL parser needs adaptation solution: alternative concrete syntax for OCL based on XML use EMF for serialization / deserialization TU Dresden Großer Beleg Final Presentation Slide 19 of 27

OCL in XML XOCL XML-based OCL <xocl:namespacexs pathname="pml"> <ownedrule name="idnotempty" kind="invariant" constrainedelement="plugin"> <specification body="self.id->notempty()"> <bodyexpression xsi:type="xocl:collectionoperationcallexpxs" referredcollectionoperation="notempty"> <source xsi:type="xocl:propertycallexpxs" referredpropertyname="id"> <source xsi:type="xocl:variableexpxs" referredvariable="//@ownedrule.0/@specification/@context"/> </source> </bodyexpression> </specification> </ownedrule> </xocl:namespacexs> TU Dresden Großer Beleg Final Presentation Slide 20 of 27

Presentation visually creating OCL expressions TU Dresden Großer Beleg Final Presentation Slide 21 of 27

Parsing OCL expressions adapter layer allows to add transient elements to a domain-specific model Constraint instances representing OCL expressions properties and operations defined by OCL expressions TU Dresden Großer Beleg Final Presentation Slide 22 of 27

Presentation parsing an XOCL file TU Dresden Großer Beleg Final Presentation Slide 23 of 27

Contents Introduction Research Methodology Results Evaluation TU Dresden Großer Beleg Final Presentation Slide 24 of 27

Evaluation comparison of effort to integrate a DSL Adapted metamodel Lines of code Dresden OCL2 Toolkit Kent OCL Pivot Model UML MOF Ecore Ecore 2124 1657 685 554 automatic generation of large parts of Pivot Model adapter layer possible TU Dresden Großer Beleg Final Presentation Slide 25 of 27

Contributions detailed analysis of conceptual challenges proposal of a conceptual framework thorough review of current Dresden OCL2 Toolkit carefully designed Pivot Model novel approach for integrating Standard Library clean and highly extensible design of an integration framework investigation of Execution Level in preparation of future developments (OCL interpreter) TU Dresden Großer Beleg Final Presentation Slide 26 of 27

The End Thank you for your attention! Questions? Comments? TU Dresden Großer Beleg Final Presentation Slide 27 of 27

Backup TU Dresden Großer Beleg Final Presentation Slide 28 of 27

Generics TU Dresden Großer Beleg Final Presentation Slide 29 of 27

Adaptation TU Dresden Großer Beleg Final Presentation Slide 30 of 27

Ontological Classification Problem two dimensions of metamodeling M2 Metaclass ontological-instance-of Class ontological-instance-of Object linguistic-instance-of linguistic-instance-of linguistic-instance-of M1 Species ontological-instance-of Dog ontological-instance-of Fido TU Dresden Großer Beleg Final Presentation Slide 31 of 27

Ontological Classification Problem In UML: Stereotypes and Profiles extend M2 concepts DSLs define entirely new ontology concepts on M2 M2 (UML metamodel) Stereotype Class 1..* -classifier InstanceSpecification M1 (UML model) «stereotype» Species «stereotype» «Species» Dog -name : String -weight : float fido : Dog name = "Fido" weight = 25.5 TU Dresden Großer Beleg Final Presentation Slide 32 of 27

System Instantiation Problem Transformation on the System layer requires instantiation of new System elements Instantiation semantics? Model Space describes M3: Meta-Metamodel describes instance-of M2: Metamodel describes instance-of M1: Model instance-of System Space describes M0: System instance-of TU Dresden Großer Beleg Final Presentation Slide 33 of 27

ModelFacade Repository Adaptation in Dresden OCL Toolkit UML-specific monolithic (33 methods) + getrefobject (mofid : String) : Object + getfeature (mofid : String) : List + getname (mofid : String) : String + getmultiplicity (mofid : String) : Multiplicity + getordering (mofid : String) : OrderingKind + getqualifier (mofid : String) : List + getnamespace (mofid : String) : Namespace + getupper (mofid : String) : int +... HashMap<String,Object> refobjects mofid 7D749D32- :00036B 7D749D32- :000364 7D749D32- :00035E 7D749D32- :000352 refobject Netbeans Metadata Repository (MDR) Custom Repository TU Dresden Großer Beleg Final Presentation Slide 34 of 27

Mapping «interface» OclFactory getoclrepresentationfor(type : OclType, o : Object) : OclRoot reconvert(targettype : NonOclType, oclobject : OclRoot) : Object getoclmodeltypefor(pathname : String) : OclModelType getoclenumtypefor(pathname : String) : OclEnumType getocltupletype(names : String[], types : OclType[]) : OclTupleType... OclModelObject java.lang.object OclEnumLiteral OclModelType java.lang.class java.lang.enum OclSequence java.util.list OCL Space Java Space TU Dresden Großer Beleg Final Presentation Slide 35 of 27