{'fraction_non_alphanumeric': 0.024013722126929673, 'fraction_numerical': 0.0, 'mean_word_length': 5.8359375, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Viewpoint-Specific Model-Driven Microservice Development with Interlinked Modeling Languages

Microservice Architecture (MSA) is a novel approach to the development and deployment of distributed, service-oriented software architectures. To this end, MSA puts a strong emphasis on service-specific independence regarding functional, technological, and organizational aspects. Based on that independence, MSA fosters the adoption of agile and DevOps-based development practices. On the other hand, Model-driven Development (MDD) is a software engineering approach that abstracts a software's design leveraging models. In particular, the development of complex, distributed software architectures is considered to benefit from MDD techniques like dedicated modeling languages, model validation, and model transformation. In this paper, we present an approach to employ MDD for MSA engineering. Therefore, we introduce a set of modeling languages for a model-driven workflow of microservice development in distributed, DevOps-based teams. The workflow considers the different DevOps roles of the teams' members on the basis of dedicated modeling viewpoints. Each modeling viewpoint clusters the modeling concerns of a certain DevOps role and is captured in its own metamodel. Starting from the metamodels, a set of modeling languages is derived to practically enable team members to construct models for their specific viewpoint on the microservice architecture. To foster the collaboration among team members of different DevOps roles, the metamodels and hence the modeling languages are interlinked. This interlinkage enables model reuse across viewpoints and subsequent composition of comprehensive architectural models of MSA-based software systems.