Upcoming SlideShare
Loading in...5




A quick overview of Epsilon

A quick overview of Epsilon



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Epsilon Epsilon Presentation Transcript

  • 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
  • before epsilon...
  • 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
  • Example: Checking fora UML stereotype
  • OCL (Model validation)package umlcontext Elementdef Operations:let hasStereotype(s : String) : Boolean= getAppliedStereotypes()->exists(st | st.name = s)endpackage
  • ATL (M2M Transformation)helper context UML2!Element def :hasStereotype(s : String): Booleanself.getAppliedStereotypes()->exists(st | st.name = s);
  • MOFScript (Code Generation)uml.Element::hasStereotype(s : String): Boolean {result = self.getAppliedStereotypes()->exists(st | st.name = s);}
  • Languages for MDE
  • Architecture of
  • 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
  • 2.Tools
  • Epsilon Tools
  • 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
  • EuGENia GMF front-end
  •  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