Re-engineering microservice applications into delta-oriented software product lines

Maya R.A. Setyautami, Hafiyyan S. Fadhlillah, Daya Adianto, Ichlasul Affan, Ade Azurat

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review


Software with microservice architecture consists of a collection of small and independent services. Those services can be combined and modified to serve various purposes, which leads to an increase in requirement variability. The variability needs to be documented to track any changes and optimize the reusability. The issues are related to variability management, which is one of the main concerns in software product line engineering (SPLE). We propose an approach to re-engineer microservice applications into SPLE. The process comprises variability modeling, architectural design, and product line implementation. To model the variability in microservices, we use a multi-level feature diagram. The feature diagram is combined with the UML class diagram from existing systems to design a product line architecture. We utilize the UML-DOP profile that provides an extension to represent delta-oriented concepts in the UML notation. UML diagrams with UML-DOP profile are used to capture several levels of abstractions in the architectural models. These models enable traceability from requirements to endpoints implementation. The proposed approach is shown by performing a re-engineering for existing microservice-based webshop systems. The result is a microservices-based product line that can be generated into various applications.

Original languageEnglish
Title of host publicationHandbook of Re-Engineering Software Intensive Systems into Software Product Lines
PublisherSpringer International Publishing AG
Number of pages18
ISBN (Electronic)9783031116865
ISBN (Print)9783031116858
Publication statusPublished - 22 Nov 2022


Dive into the research topics of 'Re-engineering microservice applications into delta-oriented software product lines'. Together they form a unique fingerprint.

Cite this