Microservices backlog – a genetic programming technique for identification and evaluation of microservices from user stories.

The microservice granularity directly affects the quality attributes and usage of computational resources of the system, determining optimal microservice granularity is an open research topic. Microservices granularity is defined by the number of operations exposed by the microservice, the number of...

Full description

Autores:
Vera-Rivera, F. H.
Puerto Cuadros, Eduard Gilberto
Astudillo, Hernán
Gaona, Carlos
Tipo de recurso:
Article of investigation
Fecha de publicación:
2017
Institución:
Universidad Francisco de Paula Santander
Repositorio:
Repositorio Digital UFPS
Idioma:
eng
OAI Identifier:
oai:repositorio.ufps.edu.co:ufps/6653
Acceso en línea:
https://repositorio.ufps.edu.co/handle/ufps/6653
Palabra clave:
Service-oriented systems engineering
Service computing
Software design
Software architecture
Web services
Micro-services granularity
Microservices decompositions
Genetic algorithms
Software metrics
Rights
openAccess
License
https://creativecommons.org/licenses/by-nc/4.0/
Description
Summary:The microservice granularity directly affects the quality attributes and usage of computational resources of the system, determining optimal microservice granularity is an open research topic. Microservices granularity is defined by the number of operations exposed by the microservice, the number of microservices that compose the whole application, and its complexity and dependencies. This paper describes "Microservice Backlog (MB)", a semiautomatic model for defining and evaluating the granularity of microservice-based applications; MB uses genetic programming technique to calculate at design time the granularity of each microservice from the user stories in the "product backlog" or release planning; the genetic algorithm combined coupling, cohesion, granularity, semantic similarity, and complexity metrics to define the number of microservices, and the user stories associated with each microservice. MB decomposes the candidate microservices, allowing to analyze graphically the size of each microservice, as well as its complexity, dependencies, coupling, cohesion metrics, and the number of calls or requests between microservices. The resulting decomposition (number of microservices and their granularity) performed by MB shows less coupling, higher cohesion, less complexity, fewer user stories associated with each microservice, and fewer calls among microservices. MB was validated against three existing methods, using two state-of-the-art applications (Cargo Tracking and JPet-Store), and one real-life applications (Foristom Conferences). The development team and/or architect can use metrics to identify the critical points of the system and determine at design time how the microservice-based application will be implemented.