SlideShare una empresa de Scribd logo
1 de 29
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
What is MDE?
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.
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
What is ?
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
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
What is ?
: a family of
integrated programming
languages for managing
EMF and other types
of models
 Mature project
 Under Eclipse.org
since 2006
 Well-documented
 Examples, articles,
screencasts, book
 Substantial user base
 > 3.5K posts in the
forum
before epsilon...
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
Example: Checking for
a UML stereotype
OCL (Model validation)
package uml
context Element
def Operations:
let hasStereotype(s : String) : Boolean
= getAppliedStereotypes()->
exists(st | st.name = s)
endpackage
ATL (M2M Transformation)
helper context UML2!Element def :
hasStereotype(s : String): Boolean
self.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 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
Epsilon Object Language
Play 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 GMF
editors
 Workflow
 ANT tasks for composing chains of
transformations
 HUTN
 Implementation of the OMG Human Usable
Textual 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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Procedural vs. object oriented programming
Procedural vs. object oriented programmingProcedural vs. object oriented programming
Procedural vs. object oriented programming
 
Programming Paradigms
Programming ParadigmsProgramming Paradigms
Programming Paradigms
 
Modular programming
Modular programmingModular programming
Modular programming
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?
 
Presentation c
Presentation cPresentation c
Presentation c
 
TextUML Toolkit
TextUML ToolkitTextUML Toolkit
TextUML Toolkit
 
MDD with Executable UML Models
MDD with Executable UML ModelsMDD with Executable UML Models
MDD with Executable UML Models
 
Introduction to programming languages part 1
Introduction to programming languages   part 1Introduction to programming languages   part 1
Introduction to programming languages part 1
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)
 
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLeveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
 
Introduction to programming languages part 2
Introduction to programming languages   part 2Introduction to programming languages   part 2
Introduction to programming languages part 2
 
Programming paradigm
Programming paradigmProgramming paradigm
Programming paradigm
 
Principles of object oriented programming
Principles of object oriented programmingPrinciples of object oriented programming
Principles of object oriented programming
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
Object oriented vs. object based programming
Object oriented vs. object based  programmingObject oriented vs. object based  programming
Object oriented vs. object based programming
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!
 

Destacado

GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11
Chauvin Mariot
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Compared
koentsje
 

Destacado (13)

Automated Translation among EPSILON Languages for Performance-Driven UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven UML Sof...
 
E(fx)clipse eclipse con
E(fx)clipse   eclipse conE(fx)clipse   eclipse con
E(fx)clipse eclipse con
 
EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache Cassandra
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing Framework
 
GEF4 - Sightseeing Mars
GEF4 - Sightseeing MarsGEF4 - Sightseeing Mars
GEF4 - Sightseeing Mars
 
GEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot OhGEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot Oh
 
Combining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling ToolsCombining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling Tools
 
What's up GMF Tooling?
What's up GMF Tooling?What's up GMF Tooling?
What's up GMF Tooling?
 
GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Compared
 
Fight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and SonarFight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and Sonar
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
 
Chien-luoc-marketing-mix-cua-cafe-trung-nguyen
Chien-luoc-marketing-mix-cua-cafe-trung-nguyenChien-luoc-marketing-mix-cua-cafe-trung-nguyen
Chien-luoc-marketing-mix-cua-cafe-trung-nguyen
 

Similar a Epsilon

Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
deimos
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
elliando dias
 

Similar a Epsilon (20)

ALT
ALTALT
ALT
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
UML01
UML01UML01
UML01
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 
5
55
5
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE
 
Model-driven Development of Model Transformations
Model-driven Development of Model TransformationsModel-driven Development of Model Transformations
Model-driven Development of Model Transformations
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML Workshop
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
 
6
66
6
 
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010
 
Sig A&D - MDA
Sig A&D - MDASig A&D - MDA
Sig A&D - MDA
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
 

Más de Dimitris Kolovos

Más de Dimitris Kolovos (9)

Picto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T TransformationPicto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T Transformation
 
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
 
Partial Loading of XMI Models
Partial Loading of XMI ModelsPartial Loading of XMI Models
Partial Loading of XMI Models
 
Merging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterMerging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade Later
 
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsAssessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a Service
 
Eclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataEclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the Data
 
Adding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxAdding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE Toolbox
 
COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Epsilon

  • 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
  • 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. 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
  • 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. 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
  • 9. : a family of integrated programming languages for managing EMF and other types of models
  • 10.  Mature project  Under Eclipse.org since 2006  Well-documented  Examples, articles, screencasts, book  Substantial user base  > 3.5K posts in the forum
  • 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. Example: Checking for a UML stereotype
  • 14. OCL (Model validation) package uml context Element def Operations: let hasStereotype(s : String) : Boolean = getAppliedStereotypes()-> exists(st | st.name = s) endpackage
  • 15. ATL (M2M Transformation) helper context UML2!Element def : hasStereotype(s : String): Boolean self.getAppliedStereotypes() ->exists(st | st.name = s);
  • 16. MOFScript (Code Generation) uml.Element:: hasStereotype(s : String): Boolean { result = self.getAppliedStereotypes() ->exists(st | st.name = s); }
  • 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. Epsilon Object Language Play with EOL in your browser: www.eclipse.org/epsilon/live
  • 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. Epsilon Tools  Exeed  Customizable tree-based EMF model editor  Modelink  Multi-panel editor for model weaving  Concordance  EMF model integrity management
  • 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