Abstract

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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call