SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
...
Vera-Rivera, F. H. | 2023-05-12
Microservices is an architectural style for service-oriented distributed computing,
and is being widely adopted in several domains, including autonomous vehicles,
sensor networks, IoT systems, energy systems, telecommunications networks and
telemedicine systems. When migrating a monolithic system to a microservices
architecture, one of the key design problems is the “microservice granularity
definition”, i.e., deciding how many microservices are needed and allocating
computations among them. This article describes a semantic grouping algorithm
(SEMGROMI), a technique that takes user stories, a well-known functional
requirements specification technique, and identifies number and scope of candidate
microservices using semantic similarity of the user stories’ textual description, while
optimizing for low coupling, high cohesion, and high semantic similarity. Using the
technique in four validation projects (two state-of-the-art projects and two industry
projects), the proposed technique was compared with domain-driven design (DDD),
the most frequent method used to identify microservices, and with a genetic
algorithm previously proposed as part of the Microservices Backlog model. We found
that SEMGROMI yields decompositions of user stories to microservices with high
cohesion (from the semantic point of view) and low coupling, the complexity was
reduced, also the communication between microservices and the estimated
development time was decreased. Therefore, SEMGROMI is a viable option for the
design and evaluation of microservices-based applications. The proposed semantic
similarity-based technique (SEMGROMI) is part of the Microservices Backlog
model, which allows to evaluate candidate microservices graphically and based on
metrics to make design-time decisions about the architecture of the microservicesbased application.
LEER