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 three tools, which all share a common foundation based on graph pattern matching and graph transformation:


eMoflon::Core

eMoflon::TIE

eMoflon::IBeX



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 pragmatic means of integrating handwritten with generated code via what we call injections.
  • 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::TIE

eMoflon::TIE is a code generator that is able to generate fully EMF-compliant Java code from Story Diagrams, a language for unidirectional model transformation, and Triple Graph Grammars (TGGs), a language for bidirectional model transformation.
eMoflon::TIE is currently composed of two parts: the eMoflon::TIE IDE Eclipse feature (required) and the eMoflon::TIE Enterprise Architect addin (only for visual syntax support).
Although the TGG part of eMoflon::TIE is no longer being actively developed, it is stable, mature, and highly optimised.

eMoflon logo

To get started we recommend working through our eMoflon::TIE handbook. If you are an experienced eMoflon user, we refer you to the current eMoflon::TIE release for information about the update-site URL etc.

If you have any problems or questions use our eMoflon::TIE issue tracker or consult the eMoflon::TIE GitHub Wiki and FAQ site for specific questions and troubleshooting.

In the eMoflon::TIE Google group, we spread eMoflon::TIE-related news (e.g., new releases). Consult changelog.txt for an overview of the changes introduced in each eMoflon::TIE version.

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

Note: A well-known problem is that the dependency from eMoflon::TIE to PlantUML is not resolved automatically. Please consult this post to solve the issue manually.
Use the following update-site URL for installing the latest version of eMoflon::TIE: https://emoflon.org/eclipse-plugin/beta/updatesite/
When you first try to install eMoflon::TIE, Eclipse may complain about missing dependencies. The reason is that eMoflon refers to additional update sites for its external dependencies. To fix this issue, press Manage... in the Install New Software... dialog and enable the following update sites: Afterwards, proceed with the intallation as usual.

Fingerprints

The eMoflon::TIE Eclipse plugin is signed. The following fingerprints allow you to verify the validity of the certificate.

MD5:    F1:E9:FF:4E:7B:D7:6D:90:9F:4D:A8:24:34:66:46:24
SHA1:   F7:23:92:9D:9A:92:86:7C:9A:16:04:8C:2E:E7:04:1D:AE:BB:5A:B6
SHA256: 07:69:56:2D:7F:63:28:B6:CE:1C:77:9B:4F:1E:F4:3E:BE:10:CC:48:14:A7:7D:7E:71:55:72:35:24:A9:3A:39

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. While eMoflon::IBeX is not (yet) as scalable as eMoflon::TIE, it is very flexible, and already offers many more model management operations than has ever been possible in the same tool.
Some of the tasks we already support and can automatically derive from a single TGG include: model generation, consistency checking, link creation, incremental model synchronisation, and soon much more. Making eMoflon::IBeX as efficient as possible is a current research challenge.

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 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::TiE in the context of a past research project is provided by this screencast. To try out eMoflon::TiE 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
  • 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)

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)
  • The current TGG algorithm in eMoflon::TiE 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, Marius Lauder, Erhan Leblebici, Lars Patzina, Sven Patzina, Tobias Rötschke, Ingo Weisemöller, Martin Wieber
  • Student developers: 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.