LEMMA
A Language Ecosystem for Modeling Microservice Architecture
Facilitating the design :memo: development :wrench: and deployment :ship: of complex microservice architectures
with Model-driven Engineering
Table of Contents
Features
- 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
Installation
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.
Updatesite
You can install LEMMA from a running Eclipse instance via the following Eclipse updatesite: https://microservices.fh-dortmund.de/lemma/.
Dropins
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/.
Examples
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:
Documentation
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!
Changelog
For information about the current version of LEMMA please refer to its Changelog.
Science
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:
2022
2021
2020
- 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.
2019
2018
2017
Contributors
Kudos to all LEMMA contributors :tada::tada::tada:
License
MIT