Automated Reverse Engineering for MoM-Based Microservices (ARE4MOM) Using Static Analysis
Snigdha Singh, Anne Koziolek · 2024
Context: Understanding architecture is crucial during the development of Message-oriented Middleware-based (MoM-based) microservices. Such architecture serves as a prerequisite for system maintenance, comprehension, and refactoring. However, maintaining an accurate architecture document becomes challenging due to continuous changes in the architecture throughout development. Problem: The challenge lies in maintaining the correct architectural document amid ongoing architectural modifications. While Reverse Engineering supports architecture extraction, existing approaches are limited to synchronous microservice communication and lack clear identification of microservice components and messaging interfaces. Objective: This research aims to automatically extract both the component-based architecture and behavior of MoM-based microservice systems, focusing on asynchronous communication. The primary contribution is the extraction of components and behavior models tailored for asynchronous scenarios. Method: To address the challenges, we extend the existing Software Model eXtractor (SoMoX) approach, incorporating a model-based reverse engineering concept to support asynchronous communication. Our approach automates the extraction of MoM-based microservice system architecture from its source code using static analysis. Result: The paper introduces the concepts of our approach (ARE4MOM) through a running example, demonstrating its capabilities. Evaluation: involves three GitHub case studies utilizing different MoMs and technologies for asynchronous communication. ARE4MOM successfully extracts the architecture and behavior model with a 98.1% F1 score.