TY - JOUR
T1 - SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
AU - Vera-Rivera, Fredy H.
AU - Cuadros, Eduard Gilberto Puerto
AU - Perez, Boris
AU - Astudillo, Hernán
AU - Gaona, Carlos
N1 - Publisher Copyright:
© Copyright 2023 Vera-Rivera et al.
PY - 2023
Y1 - 2023
N2 - 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.
AB - 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.
KW - Micro-services decompositions
KW - Micro-services granularity
KW - Microservices
KW - Semantic similarity
KW - Services computing
KW - User stories
UR - http://www.scopus.com/inward/record.url?scp=85160409179&partnerID=8YFLogxK
U2 - 10.7717/peerj-cs.1380
DO - 10.7717/peerj-cs.1380
M3 - Article
AN - SCOPUS:85160409179
SN - 2376-5992
VL - 9
JO - PeerJ Computer Science
JF - PeerJ Computer Science
M1 - e1380
ER -