Deriving Microservice Code from Underspecified Domain Models Using DevOps-Enabled Modeling Languages and Model Transformations

2020 
Domain-driven Design (DDD) is a model-based software design methodology, which focuses on close collaboration of domain experts and software engineers. It promotes to capture relevant domain concepts in domain models in order to define a ubiquitous language, whose terms are well understood by stakeholders and consistently used throughout the software engineering process. DDD is considered particularly useful in Microservice Architecture (MSA) engineering, because it specifies patterns to structure modeled domain concepts in isolated contexts. These contexts determine concepts’ applicability and validity, and make relationships between domain concepts beyond context boundaries explicit. Consequently, DDD contexts may be used to prescribe microservices’ granularities and interaction relationships. However, domain models are usually underspecified, which facilitates communication with domain experts, but hampers the derivation of microservice code.In this paper, we present a model-driven methodology towards deriving microservice code from underspecified domain models. It relies on a set of viewpoint-based MSA modeling languages, which respect the concerns of DevOps teams, and a set of automatic model transformations, which decrease modeling effort and systematize source code derivation. We validate the applicability of our methodology by means of two case studies.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    14
    References
    3
    Citations
    NaN
    KQI
    []