with Model-driven Engineering
- model-driven: abstract the complexity of microservice architectures with the power of Model-driven Engineering
- collaborative: provide concern-oriented, integrated modeling languages for stakeholder groups of microservice architectures ranging from domain experts to microservice developers and operators
- practice-oriented: aligned to the requirements of real-world microservice architectures including distributed development, DevOps-based teams, and technology heterogeneity
- broad applicability: LEMMA has been used for, e.g., (i) the translation of domain-driven microservice designs into implementations; (ii) architecture recovery and quality attribute analysis; and (iii) microservice code generation
- IDE support: thanks to the Eclipse ecosystem LEMMA comes with dedicated editors including syntax highlighting, code completion, and as-you-type validation
- designed for extensibility: interested in extending LEMMA with your own super cool framework for microservice development or deployment? drop us an e-mail
LEMMA works with any Eclipse version greater or equal 2021-03, and can be installed using a dedicated Eclipse updatesite or a set of Eclipse dropins.
You can install LEMMA from a running Eclipse instance via the following Eclipse updatesite: https://microservices.fh-dortmund.de/lemma/.
As an alternative to the Eclipse updatesite, you may also download the LEMMA Eclipse plugins for its latest release as a set of Eclipse dropins. You can find these dropins as an asset of LEMMA's latest release on GitHub. However, in this case you will also need to manually install the Eclipse plugins for the ATL Transformation Language and EMFTVM version 4.5 or greater. The corresponding Eclipse updatesite is available here: https://download.eclipse.org/mmt/atl/updates/releases/.
We provide several examples for using LEMMA to describe coherent (parts of) microservice architectures including their domain data, microservice APIs, and operation. You can find these examples on GitHub:
- Charging Station Management Example
- Parking Space Example
- E-Vehicle Charging Example
- Food to Go Example
- Insurance Company Example
The LEMMA documentation can be found at https://seelabfhdo.github.io/lemma-docs. The documentation is currently work in progress but will receive updates on a regular basis. For example, it already contains a comprehensive installation guideline and a quick tour!
For information about the current version of LEMMA please refer to its Changelog.
LEMMA has its roots in Software Engineering research, and more specifically in the Software Architecture and Model-driven Engineering research communities. Thus, there are several papers that concern LEMMA's design and its application:
- Rademacher, Florian "A Language Ecosystem for Modeling Microservice Architecture." PhD Thesis. Department of Electrical Engineering and Computer Science, University of Kassel.
- Rademacher, Florian, et al. "Towards an Extensible Approach for Generative Microservice Development and Deployment Using LEMMA." Software Architecture (ECSA 2021). Springer, 2022.
- Giallorenzo, Saverio, et al. "Model-Driven Generation of Microservice Interfaces: From LEMMA Domain Models to Jolie APIs." Coordination Models and Languages (COORDINATION 2022). Springer, 2021. 276-284.
- Giallorenzo, Saverio, et al. "Jolie and LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices." Coordination Models and Languages (COORDINATION 2021). Springer, 2021. 276-284.
- Rademacher, Florian, et al. "Towards Holistic Modeling of Microservice Architectures Using LEMMA." Companion Proceedings of the 15th European Conference on Software Architecture 2021. CEUR-WS, 2021.
- Sorgalla, Jonas, et al. "Applying Model-Driven Engineering to Stimulate the Adoption of DevOps Processes in Small and Medium-Sized Development Organizations." SN Computer Science. Springer, 2021.
- Rademacher, Florian, et al. "Graphical and textual model-driven microservice development." Microservices. Springer, 2020. 147-179.
- Rademacher, Florian, Sabine Sachweh, and Albert Zündorf. "Deriving Microservice Code from Underspecified Domain Models Using DevOps-Enabled Modeling Languages and Model Transformations." 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA). IEEE, 2020.
- Rademacher, Florian, Sabine Sachweh, and Albert Zündorf. "A Modeling Method for Systematic Architecture Reconstruction of Microservice-Based Software Systems." Enterprise, Business-Process and Information Systems Modeling. Springer, 2020. 311-326.
- Sorgalla, Jonas, et al. "Modeling microservice architecture: a comparative experiment towards the effectiveness of two approaches." Proceedings of the 35th Annual ACM Symposium on Applied Computing. 2020.
- Sorgalla, Jonas, et al. "Model-driven Development of Microservice Architecture: An Experiment on the Quality in Use of a UML-and a DSL-based Approach." (2020).
- Sorgalla, Jonas, Sabine Sachweh, and Albert Zündorf. "Exploring the Microservice Development Process in Small and Medium-Sized Organizations" Product-Focused Software Process Improvement. Springer, 2020. 453-460.
- Rademacher, Florian, Sabine Sachweh, and Albert Zündorf. "Aspect-oriented modeling of technology heterogeneity in microservice architecture." 2019 IEEE International Conference on Software Architecture (ICSA). IEEE, 2019.
- Rademacher, Florian, et al. "A model-driven workflow for distributed microservice development." Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing. 2019.
- Rademacher, Florian, et al. "Microservice architecture and model-driven development: yet singles, soon married (?)." Proceedings of the 19th International Conference on Agile Software Development: Companion. 2018.
- Rademacher, Florian, Jonas Sorgalla, and Sabine Sachweh. "Challenges of domain-driven microservice design: a model-driven perspective." IEEE Software 35.3 (2018): 36-43.
- Sorgalla, Jonas, et al. "Collaborative model-driven software engineering and microservice architecture: a perfect match?." Proceedings of the 19th International Conference on Agile Software Development: Companion. 2018.
- Rademacher, Florian, Sabine Sachweh, and Albert Zündorf. "Differences between model-driven development of service-oriented and microservice architecture." 2017 IEEE International Conference on Software Architecture Workshops (ICSAW). IEEE, 2017.
- Rademacher, Florian, Sabine Sachweh, and Albert Zündorf. "Towards a UML profile for domain-driven design of microservice architectures." International Conference on Software Engineering and Formal Methods. Springer, 2017.
Kudos to all LEMMA contributors 🎉🎉🎉