Main Article Content

Authors

The complexity of the software allows us to analyze how difficult to understand, implement and maintain the program can be. The metrics allow us to measure and estimate certain characteristics of the software to make decisions and corrective or preventive actions. The definition of the complexity of the microservices-based applications design is fundamental since it directly affects the performance of the application, development, testing, maintainability, storage (transactions and distributed queries), and the use and consumption of computational resources. In this paper, a cognitive complexity metric is proposed to evaluate the design and granularity of microservices-based applications, which define the required effort, or degree of difficulty to understand the microservices that make up the system. Typical cases were analyzed, which can appear in the design of microservices-based applications, the calculation of cognitive complexity was correct and consistent with the difficulty of understanding, maintaining, and developing a microservice system, therefore it is a viable option for analyzing complexity in microservices-based architecture.

1.
Vera-Rivera FH. Cognitive complexity points: a metric to evaluate the design of microservices-based applications. inycomp [Internet]. 2024 Feb. 26 [cited 2024 Nov. 18];26(1):e-21013145. Available from: 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

Received 2023-08-15
Accepted 2024-03-01
Published 2024-02-26