eMoflon is a tool suite for Model-Driven Engineering (MDE) that provides a range of visual and formal languages for (meta)modelling and model management.

eMoflon currently consists of the following tools, which all share a common foundation based on graph pattern matching and graph transformation:


eMoflon::Core

eMoflon::IBeX

eMoflon::Neo


eMoflon logo

eMoflon::Core

Over the years, we have extracted commonalities from our various EMF-based tools into a plugin that provides a thin layer of extra goodies over EMF. This layer, which we constantly extend, currently provides:

  • A project wizard, nature, and builder that fully automate the EMF generation process for your metamodels.
  • A visualisation of Ecore models and metamodels using PlantUML.
  • A collection of useful utils for working with EMF and Eclipse.

You can install and use eMoflon::Core either directly for (meta)modelling with EMF, or as a basis for developing your own modelling tools.

eMoflon logo

To get started we recommend working through our eMoflon::Core handbook.

If you have any problems or questions use our eMoflon::Core issue tracker.

eMoflon::Core is open source (dually licensed under GPL 3.0 and EPL 1.0) and is available on GitHub.

eMoflon::IBeX

eMoflon::IBeX is an incremental interpreter for graph patterns and graph transformation rules (for unidirectional model transformation), and for Triple Graph Grammars (TGGs) for bidirectional model transformation.
eMoflon::IBeX uses an incremental graph pattern matcher meaning that it can be used for reactive programming and trades memory for almost constant response time to model changes. eMoflon::IBeX was designed with flexibility in mind and already offers many more model management operations than has ever been possible in the same TGG tool.
Some of the tasks we already support and can be automatically derived from a single TGG include: model generation, consistency checking, link creation, and incremental model synchronisation.

eMoflon logo

To get started we recommend working through our eMoflon::IBeX handbooks on unidirectional and bidirectional model transformation.

If you have any problems or questions use our eMoflon::IBeX issue tracker.

eMoflon::IBeX is open source (dually licensed under GPL 3.0 and EPL 1.0) and its source code is available on GitHub.

eMoflon::Neo (eNeo)

eNeo supports model management as a layer over Neo4j, a fairly well-known graph database. eNeo uses eMSL (the eMoflon Specification Language), a uniform modelling language for metamodelling and modelling, specifying patterns, graph constraints, rules, and triple graph grammars, all in the same uniform textual syntax with advanced support for modularity and reuse via refinement. eNeo provides an export of models (with all referenced metamodels) to Neo4j, as well as an export of patterns, constraints, rules, and triple rules to Cypher, the query and transformation language used by Neo4j. eNeo also supports an API to automate all these tasks programmatically.

eMoflon logo

To get started we recommend working through our eNeo handbooks. If you have questions or problems, just add comments directly in the handbooks.

eMoflon::Neo is licensed open source under EPL 1.0. Its source code is available on GitHub.

eMoflon in Action

Over the years, eMoflon has been applied in diverse application scenarios and domains. In the following, we provide a collection of virtual machines, screen casts, links to lectures and projects using eMoflon, and relevant publications. If you are using or have used eMoflon in a project, publication, lecture, or similar, please contact us as we would love to mention your application scenario.

Screencasts & Virtual Machines

A demonstration of eMoflon in the context of a past research project is provided by this screencast. To try out eMoflon yourself you can use one of the following virtual machines:

Projects and institutions using eMoflon

  • A case study using eMoflon for model based testing of Software Product Lines (MoSo-PoLiTe) is presented in this paper.
  • Subproject A1 of Multi-mechanism Adaptation for the Future Internet (Corporate Research Center of the DFG, 1053, MAKI)
  • Integrated Model-based Testing of Continuously Evolving Software Product Lines (DFG Priority Program 1593, IMoTEP, project website)
  • A solution for the Java Refactoring case study of the Transformation Tool Contest 2015. The case resources, the eMoflon solution (available for immediate execution in a Virtual Machine) as well as other solutions for a potential comparison can be found under https://www.transformation-tool-contest.eu/2015/solutions_refactoring.html.
  • Teaching model-driven software development at FH Münster: Model-Driven Development
  • Teaching model-driven software development at Paderborn University: Model-Based Software Development and Project Group "VICToRy"
  • Project Heterogeneous and Distributed Services for the Future Computing Continuum (HEADS), http://heads-project.eu/
  • Computer-aided engineering case study (Software Campus cooperation between Real-Time Systems Lab and Siemens)
  • Noyer A., Iyenghar P., Pulvermueller,E., Pramme F., Engelhardt J., Samson, B., Bikker G., "Tool independent code generation for the UML closing the gap between proprietary models and the standardized UML model," Intl. Conf. on Evaluation of Novel Approaches to Software Engineering (ENASE), pp.1,9, 28-30 (2014) (Details on IEEE Xplore)
  • Peldszus S., Kulcsár G., Lochau M., Schulze S., "Continuous Detection of Design Flaws in Evolving Object-Oriented Programs using Incremental Multi-pattern Matching," Proceedings of the 31st International Conference on Automated Software Engineering (ASE), pp. 578--589, September 2016 (DOI: 10.1145/2970276.2970338)
  • Kluge R., Stein M., Giessing D., Schürr A., Mühlhäuser M.: "cMoflon: Model-Driven Generation of Embedded C Code for Wireless Sensor Networks." In: Anjorin A., Espinoza H. (eds) Modelling Foundations and Applications. ECMFA 2017. Lecture Notes in Computer Science, vol 10376. Springer, Cham (DOI: 10.1007/978-3-319-61482-3_7)
  • Anjorin A., Weidmann N., Oppermann R., Fritsche L., Schürr A.: "Automating test schedule generation with domain-specific languages: a configurable, model-driven approach," MODELS '20: ACM/IEEE 23rd International Conference on Model Driven Engineering Languages and Systems (MoDELS 2020), pp. 320-331, October 2020 (DOI: 10.1145/3365438.3410991)

Publications

For further background information we refer to the following papers on eMoflon:
  • Erhan Leblebici, Anthony Anjorin, and Andy Schürr. "Developing eMoflon with eMoflon." Theory and Practice of Model Transformations. Springer International Publishing, 138-145 (2014). (DOI: 10.1007/978-3-319-08789-4_10)
  • Anthony Anjorin, et al. "eMoflon: Leveraging EMF and Professional CASE Tools." Informatik, 281 (2011). (PDF)
  • Nils Weidmann, Anthony Anjorin, Patrick Robrecht, Gergely Varró "Incremental (Unidirectional) Model Transformation with eMoflon::IBeX" ICGT 2019, 131-140. (PDF)
  • Nils Weidmann, Anthony Anjorin, Lars Fritsche, Gergely Varró, Andy Schürr, Erhan Leblebici "Incremental Bidirectional Model Transformation with eMoflon::IBeX" Bx@PLW 2019, 45-55. (PDF)
  • The TGG algorithm used in an old version of eMoflon is documented in: Anthony Anjorin. "Synchronization of Models on Different Abstraction Levels using Triple Graph Grammars" PhD Thesis, (2014) (Online at TUprints).
For a comparison of eMoflon with other tools and approaches see the following publications.
  • Erhan Leblebici et al. "A Comparison of Incremental Triple Graph Grammar Tools." Electronic Communications of the EASST, 67 (2014). (PDF)
  • Stephan Hildebrandt et al. "A Survey of Triple Graph Grammar Tools." Electronic Communications of the EASST 57 (2013). (PDF)
  • Sven Patzina and Lars Patzina. "A Case Study Based Comparison of ATL and SDM." Applications of Graph Transformations with Industrial Relevance. Springer, 210-221 (2012). (PDF)
  • Hildebrandt, Stephan, et al. "A Survey of Triple Graph Grammar Tools." Electronic Communications of the EASST 57 (2013). (PDF)

Development

eMoflon is developed jointly at the Real-Time Systems Lab, TU Darmstadt (TUDA) and the Database and Information Systems Group, Paderborn University (UPB).

Current Developers

Former Developers

  • Scientists: Carsten Amelunxen, Frederik Deckwerth, Felix Klar, Alexander Königs, Geza Kulcsar, Marius Lauder, Erhan Leblebici, Lars Patzina, Sven Patzina, Tobias Rötschke, Roland Speith (né Kluge), Gergely Varró, Ingo Weisemöller, Martin Wieber
  • Student developers:Mario Treiber, Jannik Hinz, Patrick Robrecht, Robin Oppermann, Sascha Zander, Anne-Sophie Ettl, Thomas Kovac, Alexander Schleich, Nico Wombacher, Lars Kliegel, Lukas Neumann, and many more.

Impressum und Datenschutzerklärung (German)

eMoflon ist ein Forschungsprojekt der

TU Darmstadt
Fachgebiet Echtzeitsysteme
Magdalenenstr. 4
64289 Darmstadt
Germany
Telefon: +49 6151 16-22350
Telefax: +49 6151 16-22352
E-Mail: kontakt(at)es.tu-darmstadt.de
Internet: www.es.tu-darmstadt.de

Für das Fachgebiet Echtzeitsysteme gilt das Impressum der TU Darmstadt Vertretungsberechtigter des FG Echtzeitsysteme ist Prof. Dr. rer. nat. Andy Schürr.

Haftungsausschluss

Trotz sorgfältiger inhaltlicher Kontrolle uebernehmen wir keine Haftung für die Inhalte externer Links. Fuer den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Datenschutzerklärung

Diese Webseite wird über GitHub Pages gehostet. Neben den Daten, die laut GithHub Privacy Policy verarbeitet werden, erheben wir keinerlei weitere Daten der Besucher unserer Webseite. Verantwortlich für den Datenschutz ist: TU Darmstadt, Fachgebiet Echtzeitsysteme. Bei Fragen zum Datenschutz wenden Sie sich bitte an kontakt(at)es.tu-darmstadt.de.