Budapest University of Technology and Economics Department of Measurement and Information Systems Foundations of DSLs in the Eclipse Modeling Framework.

Slides:



Advertisements
Similar presentations
Insights to EMF An overview of EMF in context of MOIN.
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Department of Computer Science Business Information Systems 1 Model Interchange between ARIS and Eclipse EMF Heiko Kern and Stefan Kühne {kern,
The Knowledge Industry Survival Strategy (KISS) Tony Clark, Thames Valley University, London, UK Jorn Bettin, Sofismo, Switzerland.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
A Family of Languages for Architecture Description OOPSLA 2008 Markus Voelter
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Xactium xDSLs Run Models Not Code Tony Clark
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Introduction to MDA (Model Driven Architecture) CYT.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Model Handling with EMF Eclipse ECESIS Project Model handling with EMF An introduction to the Eclipse Modeling Framework ATLAS group (INRIA & LINA),
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
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.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
Selected Topics in Software Engineering - Distributed Software Development.
© 2008 by Roy Ganor; made available under the EPL v1.0 | 19 th March 2008 Roy Ganor, Team Leader Zend Technologies, Ltd. March 19th 2008 EXTENDING THE.
Client or Partner logo and Together. Free your energies Xtext workshop – level: Advanced SIG Domain Language Engineering Peter Vermeulen, Meinte Boersma.
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
1 Innovative Solutions For Mission Critical Systems Using EMF Annotations to Drive Program Behavior February 19, 2014.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
INFORMATION NETWORKING MODEL DSL James McAvoy and Yifeng Li CSI Information Networking Model DSL 1 Winter Term
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
Builder Compositional Design – with a twist…. Problem Consider your favorite –Text editor, word processor, spreadsheet, drawing tool They allow editing.
GMP – Graphical Modeling Project (GMF – Graphical Modeling Framework)
® IBM Software Group A Metamodeling Approach to Pattern Specification Maged Elaasar 1,2, Dr. Lionel Briand 1, Dr. Yvan Labiche 1 1 Carleton University,
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
ETrice Release Review | © Protos Software GmbH, Made available under the EPL v 1.0 eTrice Release Review Planned Review Date: Communcation.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
Re Write POGO using openArchitectureWare Technology ● Pogo History ● OpenArchitectureWare technology ● Generated code ● Project status.
DSL implementation for UNICOS-CPC Ivan Prieto Barreiro Jeffrey Goderie BE-ICS.
SysML v2 Formalism Requirements Formalism WG September 15, 2016.
M&CML: A Monitoring & Control Specification Modeling Language
Associate Professor Dept. of Computer and Information Sciences NTNU
Original Implementation Approach proposed at March 2010 meeting
SysML v2 Formalism: Requirements & Benefits
Daniel Amyot and Jun Biao Yan
Chapter 12 Outline Overview of Object Database Concepts
Model-Driven Analysis Frameworks for Embedded Systems
Building Modular and Efficient DSML in Eclipse
Evaluating Compuware OptimalJ as an MDA tool
Chapter 11: Classes, Instances, and Message-Handlers
Constructing MDA-based Application Using Rational XDE for .NET
OOPSLA Workshop on Domain-Specific Modeling Tools Workgroup
Towards an Open Meta Modeling Environment
The JSF Tools Project – WTP (internal) release review
QVT Operational 1.0 Ganymede Simultaneous Release Graduation Review
Automated Analysis and Code Generation for Domain-Specific Models
Teneo Ganymede Mini Deck
MDT OCL 1.3 Mini-deck June 10, 2009.
QVT Operational 1.0 Mini-deck
Software Engineering and Architecture
Software Architecture & Design
Presentation transcript:

Budapest University of Technology and Economics Department of Measurement and Information Systems Foundations of DSLs in the Eclipse Modeling Framework Dániel Varró Budapest University of Technology and Economics (BME) Dagstuhl Seminar Schloss Dagstuhl, Germany February 2-6, 2015

Focus of the talk: EMF/Ecore Aspects of Defining DSMLs

Specification of DSMLs Graphical syntax Code generation View Well-formedness constraints Behavioral semantics, simulation, refactoring Abstract syntax Textual syntax Mapping Code (documentation, configuration)

Role of EMF/Ecore technology in DSL Goal: Provide common base for advanced DSL tools Consistent model manipulation Persist models Tree based editor Goal: Provide common base for advanced DSL tools Consistent model manipulation Persist models Tree based editor GMF, Graphiti, EuGENia, Sirius, Spray, Xtext, … GMF, Graphiti, EuGENia, Sirius, Spray, Xtext, … Acceleo, ATL, Epsilon, IncQuery, QVT, Xtend, … EMF Compare EMF Store, CDO, … EMF Compare EMF Store, CDO, …

The Classical EMF/Ecore Waterfall

Example Ecore (Meta)model of Questionnaire

Core metamodel constructs (Ecore) Typing: EClass deep_instantiates(2) EObject = every EClass instance implicitly subtypes EObject = every instance of every instance of EClass implicitly instantiates EObject

Core metamodel constructs (Ecore) Class with arbitrary num. of superclasses associations attributes Class with arbitrary num. of superclasses associations attributes Typed Attribute Unidirectional (binary) relation (Association) typed optional inverse end multiplicities Unidirectional (binary) relation (Association) typed optional inverse end multiplicities

Example Constraint Definition // Object Constraint Language context Question inv: self.name = self.variable.name // Epsilon Validation Langauge (EVL) context Question { constraint IdentifiersWithoutMatchingVariableName { check : self.name = self.variable.name message : ‘Identifier of question ' + self.name + ' does not match its variable name ‘ + self.variable.name } } // = Q, message = "Identifier of question $Q.name$ does not match its variable name $V.name$ ", severity = "error",targetEditorId = "*") pattern identifiersWithoutMatchingVariableName (Q: Question, V: Variable) { Question.name(Q, Nm1); Question.variable.name(V,Nm2); Variable.name(V,Nm2); check (Nm1 != Nm2); } Constraint Languages for EMF: Declarative Object/Graph based Scalable evaluation Constraint Languages for EMF: Declarative Object/Graph based Scalable evaluation

Example Derived Features in = "isComputed") pattern isComputed (Q: Question, BoolValue) { find questionWithExpression(Q, _Exp); BoolValue == true; } or { neg find questionWithExpression(Q, _Exp); BoolValue == false; } pattern questionWithExpression(Q: Question, E: Expression){ Question.expression(Q, E); } Derived Features: Values calculated from other model elements Not persisted Common best practice Declared in metamodel, defined by queries Recalculation upon change? Derived Features: Values calculated from other model elements Not persisted Common best practice Declared in metamodel, defined by queries Recalculation upon change? Definition by Queries

Example Generate Tooling Autogenerated Tooling: Model access & manipulation interfaces + implementations Model persistency (XMI) Notifications, commands, Undo, redo Tree-based editor Client test code Autogenerated Tooling: Model access & manipulation interfaces + implementations Model persistency (XMI) Notifications, commands, Undo, redo Tree-based editor Client test code

Example Sample Questionnaire Model Model editing: Models serialized in XMI Manipulated in tree editors Properties view Model editing: Models serialized in XMI Manipulated in tree editors Properties view

ResourceSet Resource EMF Instance Models in the Large  Strict containment hierarchy EObject Resource Containment reference Cross-reference EObject Resource (typically file) Root object (typically single) Objects with attributes

Example Constraint Validation Constraint Validation for EMF: Scalable evaluation for models with 1M+ elements Largest models: 30M+ Error reporting with markers Constraint Validation for EMF: Scalable evaluation for models with 1M+ elements Largest models: 30M+ Error reporting with markers

Validation of Well-formedness Constraints Meta- model Model pattern switchWOSignal(sw) { Switch(sw); neg find switchHasSignal(sw); } pattern switchHasSignal(sw) { Switch(sw); Signal(sig); Signal.mountedTo(sig, sw); } Query Modify User Result

The Dynamic / Reflective EMF Workflow Goal: Immediate feedback during DSL development Code generation only for production ready editor Goal: Immediate feedback during DSL development Code generation only for production ready editor

Limitations of EMF/Ecore Technology

Summary of EMF/Ecore technology Goal: Provide common base for advanced DSL tools Consistent model manipulation Persist models Tree based editor Goal: Provide common base for advanced DSL tools Consistent model manipulation Persist models Tree based editor EuGENia, GMF, Graphiti, Sirius, Spray, Xtext, … EuGENia, GMF, Graphiti, Sirius, Spray, Xtext, … Acceleo, ATL, Epsilon, IncQuery, QVT, Xtend, … EMF Compare EMF Store, CDO, … EMF Compare EMF Store, CDO, …