SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories

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...

Full description

Bibliographic Details
Main Authors: Fredy H. Vera-Rivera, Eduard Gilberto Puerto Cuadros, Boris Perez, Hernán Astudillo, Carlos Gaona
Format: Article
Language:English
Published: PeerJ Inc. 2023-05-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-1380.pdf
_version_ 1797827229804134400
author Fredy H. Vera-Rivera
Eduard Gilberto Puerto Cuadros
Boris Perez
Hernán Astudillo
Carlos Gaona
author_facet Fredy H. Vera-Rivera
Eduard Gilberto Puerto Cuadros
Boris Perez
Hernán Astudillo
Carlos Gaona
author_sort Fredy H. Vera-Rivera
collection DOAJ
description 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 microservices-based application.
first_indexed 2024-04-09T12:44:55Z
format Article
id doaj.art-314e21bc82c84c86835de3d3d6e15ee7
institution Directory Open Access Journal
issn 2376-5992
language English
last_indexed 2024-04-09T12:44:55Z
publishDate 2023-05-01
publisher PeerJ Inc.
record_format Article
series PeerJ Computer Science
spelling doaj.art-314e21bc82c84c86835de3d3d6e15ee72023-05-14T15:05:14ZengPeerJ Inc.PeerJ Computer Science2376-59922023-05-019e138010.7717/peerj-cs.1380SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user storiesFredy H. Vera-Rivera0Eduard Gilberto Puerto Cuadros1Boris Perez2Hernán Astudillo3Carlos Gaona4Grupo de Investigación GIA, Universidad Francisco de Paula Santander, Cúcuta, Norte de Santander, ColombiaGrupo de Investigación GIA, Universidad Francisco de Paula Santander, Cúcuta, Norte de Santander, ColombiaGrupo de Investigación GIA, Universidad Francisco de Paula Santander, Cúcuta, Norte de Santander, ColombiaDepartamento de Informática, Universidad Técnica Federico Santa María, Santiago, Santiago, ChileGrupo de Investigación GEDI, Universidad del Valle, Cali, Valle del Cauca, ColombiaMicroservices 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 microservices-based application.https://peerj.com/articles/cs-1380.pdfMicroservicesMicro-services granularitySemantic similarityUser storiesServices computingMicro-services decompositions
spellingShingle Fredy H. Vera-Rivera
Eduard Gilberto Puerto Cuadros
Boris Perez
Hernán Astudillo
Carlos Gaona
SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
PeerJ Computer Science
Microservices
Micro-services granularity
Semantic similarity
User stories
Services computing
Micro-services decompositions
title SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_full SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_fullStr SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_full_unstemmed SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_short SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_sort semgromi a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
topic Microservices
Micro-services granularity
Semantic similarity
User stories
Services computing
Micro-services decompositions
url https://peerj.com/articles/cs-1380.pdf
work_keys_str_mv AT fredyhverarivera semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT eduardgilbertopuertocuadros semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT borisperez semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT hernanastudillo semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT carlosgaona semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories