Published on

A quick overview of Epsilon

Published in: Technology
  • Be the first to comment


  1. 1. Dimitris Kolovos, Louis RoseRichard Paige, Nikos Matragkas,@dskolovos, @louismrose, @richpaige, @nmatragkasEnterprise SystemsGroupDepartment of Computer Science, University ofYorkEpsilon: Practical MDEwith Eclipse/EMF
  2. 2. What is MDE?
  3. 3. 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.
  4. 4. 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
  5. 5. What is ?
  6. 6. 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
  7. 7. 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
  8. 8. What is ?
  9. 9. : a family ofintegrated programminglanguages for managingEMF and other typesof models
  10. 10.  Mature project Under Eclipse.orgsince 2006 Well-documented Examples, articles,screencasts, book Substantial user base > 3.5K posts in theforum
  11. 11. before epsilon...
  12. 12. 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
  13. 13. Example: Checking fora UML stereotype
  14. 14. OCL (Model validation)package umlcontext Elementdef Operations:let hasStereotype(s : String) : Boolean= getAppliedStereotypes()->exists(st | st.name = s)endpackage
  15. 15. ATL (M2M Transformation)helper context UML2!Element def :hasStereotype(s : String): Booleanself.getAppliedStereotypes()->exists(st | st.name = s);
  16. 16. MOFScript (Code Generation)uml.Element::hasStereotype(s : String): Boolean {result = self.getAppliedStereotypes()->exists(st | st.name = s);}
  17. 17. Languages for MDE
  18. 18. Architecture of
  19. 19. 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
  20. 20. Epsilon Object LanguagePlay with EOL in your browser:www.eclipse.org/epsilon/live
  21. 21. Epsilon Generation Language
  22. 22. Epsilon Transformation Language
  23. 23. Epsilon Validation Language
  24. 24. 2.Tools
  25. 25. Epsilon Tools
  26. 26. 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
  27. 27. Epsilon Tools Exeed Customizable tree-based EMF model editor Modelink Multi-panel editor for model weaving Concordance EMF model integrity management
  28. 28. EuGENia GMF front-end
  29. 29.  Download www.eclipse.org/epsilon Documentation www.eclipse.org/epsilon/doc www.eclipse.org/epsilon/doc/eugenia Screencasts www.eclipse.org/epsilon/cinema Twitter: @epsilonews