Successfully reported this slideshow.
Your SlideShare is downloading. ×
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
The Epsilon Pattern Language
The Epsilon Pattern Language
Loading in …3
×

Check these out next

1 of 29 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement
Advertisement

Epsilon

  1. 1. Dimitris Kolovos, Louis Rose Richard Paige, Nikos Matragkas, @dskolovos, @louismrose, @richpaige, @nmatragkas Enterprise SystemsGroup Department of Computer Science, University ofYork Epsilon: Practical MDE with 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 automated processing  Validation, transformation, comparison, merging, refactoring, code generation etc.
  4. 4. Models ≠ UML diagrams  UML is just one modelling language  Most domains have different abstractions/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 Domain Specific 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 EMF models
  8. 8. What is ?
  9. 9. : a family of integrated programming languages for managing EMF and other types of models
  10. 10.  Mature project  Under Eclipse.org since 2006  Well-documented  Examples, articles, screencasts, book  Substantial user base  > 3.5K posts in the forum
  11. 11. before epsilon...
  12. 12. Languages for MDE  Inconsistent syntaxes  Different dialects of OCL  Different ways to perform model navigation/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 for a UML stereotype
  14. 14. OCL (Model validation) package uml context Element def 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): Boolean self.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 range of MDE tasks  All languages have consistent syntaxes  Can manage models from different metamodels / 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 Language Play 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 GMF editors  Workflow  ANT tasks for composing chains of transformations  HUTN  Implementation of the OMG Human Usable Textual 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

×