Contenido principal del artículo

Autores

La complejidad del software permite analizar lo difícil que puede ser entender, implementar y mantener el programa. Las métricas nos permiten medir y estimar ciertas características del software para tomar decisiones y acciones correctivas o preventivas. La definición de la complejidad del diseño de aplicaciones basadas en microservicios es fundamental, ya que afecta directamente el rendimiento de la aplicación, los tiempos de desarrollo y prueba, la mantenibilidad, el almacenamiento (transacciones y consultas distribuidas), el uso y consumo de recursos computacionales. En este artículo se propone una métrica de complejidad cognitiva para evaluar el diseño y la granularidad de las aplicaciones basadas en microservicios, la cual define el esfuerzo requerido, o el grado de dificultad para comprender los microservicios que componen el sistema. Se analizaron casos típicos que pueden presentarse en el diseño de aplicaciones basadas en microservicios, en los cuales el cálculo de la complejidad cognitiva fue correcto y consistente con la dificultad de entender, mantener y desarrollar un sistema de microservicios, por lo tanto, la métrica propuesta es una opción viable para analizar la complejidad en sistemas basados en microservicios.

1.
Vera-Rivera FH. Puntos de complejidad cognitiva: una métrica para evaluar el diseño de aplicaciones basadas en microservicios. inycomp [Internet]. 13 de marzo de 2024 [citado 27 de abril de 2024];26(1):e-21013145. Disponible en: https://revistaingenieria.univalle.edu.co/index.php/ingenieria_y_competitividad/article/view/13145

Pressman RS. Ingeniería del Software un enfoque práctico. Septima. Mexico: McGraw Hill Interamericana editores; 2010.

Misra S, Adewumi A, Fernandez-Sanz L, Damasevicius R. A Suite of Object Oriented Cognitive Complexity Metrics. IEEE Access. 2018;6(c):8782–96. DOI: https://doi.org/10.1109/ACCESS.2018.2791344

Wang Y. On the cognitive informatics foundations of software engineering. In: Proceedings of the Third IEEE International Conference on Cognitive Informatics, 2004 [Internet]. IEEE; 2004 [cited 2019 Feb 6]. p. 22–31. Available from: http://ieeexplore.ieee.org/document/1327456/

López López S. enmilocalfunciona.io. 2018 [cited 2019 Feb 5]. Complejidad Cognitiva. Available from: https://enmilocalfunciona.io/complejidad-cognitiva/

Newman S. Building Microservices [Internet]. First Edit. Building Microservices. Gravenstein Highway North, Sebastopol, CA 95472, United States of America: O’Reilly Media, Inc.; 2015. 102 p. Available from: http://oreilly.com/catalog/errata.csp?isbn=9781491950357 for

Vera-Rivera FH, Gaona C, Astudillo H. Defining and measuring microservice granularity—a literature overview. PeerJ Comput Sci [Internet]. 2021 Sep 8 [cited 2022 Feb 7];7:e695. Available from: https://peerj.com/articles/cs-695 DOI: https://doi.org/10.7717/peerj-cs.695

Hamzehloui MS, Sahibuddin S, Salah K. A Systematic Mapping Study on Microservices Mohammad. In: Saeed F, Gazem N, Mohammed F, Busalim A, editors. IRICT: International Conference of Reliable Information and Communication Technology 2018 [Internet]. Cham: Springer International Publishing; 2019. p. 1079–90. (Advances in Intelligent Systems and Computing; vol. 843). Available from: http://link.springer.com/10.1007/978-3-319-99007-1 DOI: https://doi.org/10.1007/978-3-319-99007-1_100

Vera-Rivera FH, Puerto E, Astudillo H, Gaona CM. Microservices Backlog–A Genetic Programming Technique for Identification and Evaluation of Microservices From User Stories. IEEE Access [Internet]. 2021 [cited 2022 Feb 3];9:117178–203. Available from: https://ieeexplore.ieee.org/document/9519691/ DOI: https://doi.org/10.1109/ACCESS.2021.3106342

Vera-rivera FH, Puerto Cuadros E, Perez B, Gaona Cuevas CM, Astudillo H. SEMGROMI — a semantic grouping algorithm to identifying microservices using semantic similarity of user stories. PeerJ Comput Sci. 2023 May;9(e1380). DOI: https://doi.org/10.7717/peerj-cs.1380

Vera-Rivera FH, Astudillo H, Gaona-Cuevas CM. Defining and measuring microservice granularity – a literature overview. PeerJ Comput Sci. In review.

Totalmetrics.com. www.totalmetrics.com. [cited 2023 Aug 18]. Total Metrics Approach - Function points. Available from: https://www.totalmetrics.com/our_approach

Vural H, Koyuncu M, Misra S. A Case Study on Measuring the Size of Microservices. In: Laganá A, Gavrilova ML, Kumar V, Mun Y, Tan CJK, Gervasi O, editors. International Conference on Computational Science and Its Applications - ICCSA 2018 [Internet]. Berlin, Heidelberg: Springer Berlin Heidelberg; 2018. p. 454–63. (Lecture Notes in Computer Science). Available from: http://link.springer.com/10.1007/b98048 DOI: https://doi.org/10.1007/978-3-319-95174-4_36

Perepletchikov M, Ryan C, Frampton K, Tari Z. Coupling Metrics for Predicting Maintainability in Service-Oriented Designs. In: 2007 Australian Software Engineering Conference (ASWEC’07) [Internet]. IEEE; 2007 [cited 2019 Jun 18]. p. 329–40. Available from: http://ieeexplore.ieee.org/document/4159685/

Nunes L, Santos N, Rito Silva A. From a Monolith to a Microservices Architecture: An Approach Based on Transactional Contexts. In: 13th European Conference, ECSA 2019 Lectures Notes in Computer Science 11681 [Internet]. Springer; 2019. p. 37–52. Available from: http://link.springer.com/10.1007/978-3-030-29983-5_3 DOI: https://doi.org/10.1007/978-3-030-29983-5_3

Hevner AR, March ST, Park J, Ram S. Design science in information systems research. MIS Q [Internet]. 2004 [cited 2018 May 16];28(1):75–105. Available from: https://pdfs.semanticscholar.org/fa72/91f2073cb6fdbdd7c2213bf6d776d0ab411c.pdf

Hirzalla M, Cleland-Huang J, Arsanjani A. A Metrics Suite for Evaluating Flexibility and Complexity in Service Oriented Architectures. In Springer, Berlin, Heidelberg; 2009 [cited 2019 Jun 18]. p. 41–52. Available from: http://link.springer.com/10.1007/978-3-642-01247-1_5 DOI: https://doi.org/10.1007/978-3-642-01247-1_5

Vera-Rivera FH, Puerto-Cuadros EG, Astudillo H, Gaona-Cuevas CM. Microservices Backlog - A Model of Granularity Specification and Microservice Identification. In: International conference on service computing SCC 2020 Lecture Notes in Computer Science [Internet]. Springer Science and Business Media Deutschland GmbH; 2020 [cited 2020 Nov 20]. p. 85–102. Available from: https://link.springer.com/chapter/10.1007/978-3-030-59592-0_6 DOI: https://doi.org/10.1007/978-3-030-59592-0_6

Li S, Zhang H, Jia Z, Li Z, Zhang C, Li J, et al. A dataflow-driven approach to identifying microservices from monolithic applications. J Syst Softw. 2019;157. DOI: https://doi.org/10.1016/j.jss.2019.07.008

Baresi L, Garriga M, De Renzis A. Microservices identification through interface analysis. In: European Conference on Service-Oriented and Cloud Computing - Lecture Notes in Computer Science [Internet]. Springer, Cham; 2017 [cited 2017 Nov 2]. p. 19–33. Available from: http://link.springer.com/10.1007/978-3-319-67262-5_2 DOI: https://doi.org/10.1007/978-3-319-67262-5_2

Evans E. Domain-Driven Design [Internet]. Addison Wesley; 2004. 529 p. Available from: http://dddcommunity.org/book/evans_2003/

Gysel M, Kölbener L, Giersche W, Zimmermann O. Service Cutter: A Systematic Approach to Service Decomposition. In: IFIP International Federation for Information Processing 2016 [Internet]. Springer, Cham; 2016 [cited 2019 May 17]. p. 185–200. Available from: https://link.springer.com/chapter/10.1007%2F978-3-319-44482-6_12

mybatis.org. Mybatis Jpetstore-6: A web application built on top of MyBatis 3, Spring 3 and Stripes [Internet]. [cited 2020 Nov 22]. Available from: https://github.com/mybatis/jpetstore-6

Jin W, Liu T, Cai Y, Kazman R, Mo R, Zheng Q. Service Candidate Identification from Monolithic Systems based on Execution Traces. IEEE Trans Softw Eng [Internet]. 2019;X(X):1–1. Available from: https://ieeexplore.ieee.org/document/8686152/

Vera-Rivera FH, Vera-Rivera JL, Gaona-Cuevas CM. Sinplafut: A microservices – based application for soccer training. In: 5th International Week of Science, Technology & Innovation Journal of Physics: Conference Series [Internet]. 2019. p. 012026. Available from: https://iopscience.iop.org/article/10.1088/1742-6596/1388/1/012026 DOI: https://doi.org/10.1088/1742-6596/1388/1/012026

Recibido 2023-08-15
Aceptado 2024-03-01
Publicado 2024-03-13