Abstract:
Microservices have brought an evolution in the Service Oriented Architecture by
introducing high independence at various levels. These services provide independent
development, service to service communication, individual database per service,
independent deployment, and maintenance, etc. The service-oriented systems support
the quick implementation of customized changes to software applications. These
frequent changes might result in introducing some feeble solutions. These solutions
commonly known as “Anti-Patterns”, can negatively impact the quality of the
microservices. Another reason for anti-patterns occurrence may be due to the migration
of software applications developed on monolithic architecture to microservices
architecture. This process demands a high knowledge of microservices-based design
patterns and best practices to avoid flaws that might instigate while migration from
centralized to a distributed environment. In this research, we have selected 18
microservices related anti-patterns and proposed an approach for their detection. We
found only a single approach that presented an algorithm to detect microservices
specific Anti-Patterns [1]; the study focused on detecting five anti-patterns. However,
our proposed approach differs from the state-of-the-art approach, as, firstly, we focused
on the detection of a large number of anti-patterns. Secondly, we have implemented
reverse engineering on microservices-based systems and then detected anti-patterns
from these systems. Our research focuses on the detection of microservices specific
anti-patterns from microservices-based software applications. Our approach is
developed as an automated approach supplemented with an add-in for Sparx System
EA for the automatic detection of anti-patterns from microservices-based systems. We
have evaluated our approach using precision and recall metrics.