Dimitris Kolovos, Louis RoseRichard Paige, Nikos Matragkas,@dskolovos, @louismrose, @richpaige, @nmatragkasEnterprise SystemsGroupDepartment of Computer Science, University ofYorkEpsilon: Practical MDEwith Eclipse/EMF
What is MDE?
Model Driven Engineering Promotes models to first-class artefacts More than documentation Live entities that are amenable to automatedprocessing Validation, transformation, comparison, merging,refactoring, code generation etc.
Models ≠ UML diagrams UML is just one modelling language Most domains have differentabstractions/semantics Domain Specific Languages (DSLs) Models ≠ Pictures Models can be graphical or textual ... or both
What is ?
Eclipse Modeling Project Top-level project of Eclipse Open-source project Provides tool-support for building DomainSpecific modelling languages (DSLs) UML is just another DSL Backed by major IT companies IBM SAP Borland
Eclipse Modeling Project Eclipse Modeling Framework (EMF) Specify abstract syntax of DSLs EMF ≈ XML++ Graphical Modeling Framework (GMF) Graphical editors for EMF DSLs Xtext Textual editors for EMF DSLs EMFCompare Comparison and version management of EMFmodels
What is ?
: a family ofintegrated programminglanguages for managingEMF and other typesof models
Mature project Under Eclipse.orgsince 2006 Well-documented Examples, articles,screencasts, book Substantial user base > 3.5K posts in theforum
Languages for MDE Inconsistent syntaxes Different dialects of OCL Different ways to perform modelnavigation/modification End up writing the same code in many languages Poor integration and interoperation E.g. validation -> M2M -> M2T Recurrence of bugs / missing features
Features Task-specific languages for a rangeof MDE tasks All languages have consistent syntaxes Can manage models from differentmetamodels / modelling technologies Can call methods of Java objects Tight integration with EMF and GMF Eclipse-based development tools Editors, Launching facilities
Epsilon Object LanguagePlay with EOL in your browser:www.eclipse.org/epsilon/live
Epsilon Generation Language
Epsilon Transformation Language
Epsilon Validation Language
Epsilon Tools EuGENia Front-end that simplifies the development of GMFeditors Workflow ANT tasks for composing chains oftransformations HUTN Implementation of the OMG Human UsableTextual Notation
Epsilon Tools Exeed Customizable tree-based EMF model editor Modelink Multi-panel editor for model weaving Concordance EMF model integrity management