Mostrar el registro sencillo del ítem

dc.contributor.authorVera-Rivera, F. H.
dc.contributor.authorPuerto Cuadros, Eduard Gilberto
dc.contributor.authorPEREZ GUTIERREZ, BORIS RAINIERO
dc.contributor.authorAstudillo, Hernán
dc.contributor.authorGaona, Carlos
dc.date.accessioned2024-04-08T15:20:50Z
dc.date.available2024-04-08T15:20:50Z
dc.date.issued2023-05-12
dc.identifier.urihttps://repositorio.ufps.edu.co/handle/ufps/6851
dc.description.abstractMicroservices 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 microservicesbased application.eng
dc.format.extent30 Páginasspa
dc.format.mimetypeapplication/pdfspa
dc.language.isoengspa
dc.publisherPeerJ Computer Sciencespa
dc.rightsDistributed under Creative Commons CC-BY 4.0eng
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/spa
dc.sourcehttps://peerj.com/articles/cs-1380/spa
dc.titleSEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user storieseng
dc.typeArtículo de revistaspa
dcterms.referencesAbdullah M, Iqbal W, Erradi A. 2019. Unsupervised learning approach for web application autodecomposition into microservices. Journal of Systems and Software 151:243–257 DOI 10.1016/j.jss.2019.02.031.spa
dcterms.referencesAl-Debagy O, Martinek P. 2019. A new decomposition method for designing microservices. Periodica Polytechnica Electrical Engineering and Computer Science 63(4):274–281 DOI 10.3311/PPee.13925.spa
dcterms.referencesAl-Debagy O, Martinek P. 2020. Extracting microservices’ candidates from monolithic applications: interface analysis and evaluation metrics approach. In: 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE). Piscataway: IEEE, 289–294.spa
dcterms.referencesBaresi L, Garriga M, De Renzis A. 2017. Microservices identification through interface analysis. In: European Conference on Service-Oriented and Cloud Computing—Lecture Notes in Computer Science. 10465:Cham: Springer, 19–33spa
dcterms.referencesBeck K. 2000. Extreme programming explained: embrace change. Boston: Addison Wesley.spa
dcterms.referencesBogner J, Wagner S, Zimmermann A. 2017. Automatically measuring the maintainability of service- and microservice-based systems. In: Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement on—IWSM Mensura ’17. 107–115.spa
dcterms.referencesCandela I, Bavota G, Russo B, Oliveto R. 2016. Using cohesion and coupling for software remodularization: is it enough? ACM Transactions on Software Engineering and Methodology 25(3):1–28 DOI 10.1145/2928268.spa
dcterms.referencesChen R, Li S, Li Z. 2017. From monolith to microservices: a dataflow-driven approach. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC). Piscataway: IEEE, 466–475.spa
dcterms.referencesChristoforou A, Odysseos L, Andreou A. 2019. Migration of software components to microservices: matching and synthesis. In: Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering. Setúbal: SCITEPRESS—Science and Technology Publications, 134–146.spa
dcterms.referencesCohn M. 2004. User stories applied for agile software development. Boston: Addison Wesley. Pearson Education Inc.spa
dcterms.referencesCohn M. 2005. Agile estimating and planning. Noida: Pearson Education India.spa
dcterms.referencesDe Alwis AAC, Barros A, Fidge C, Polyvyanyy A. 2019. Business object centric microservices patterns. In: On the Move to Meaningful Internet Systems: OTM 2019 Conferences: Confederated International Conferences: CoopIS, ODBASE, C&TC 2019. Lecture Notes in Computer Science. Cham: Springer, 476–495.spa
dcterms.referencesDe Alwis AAC, Barros A, Polyvyanyy A, Fidge C. 2018. Function-splitting heuristics for discovery of microservices in enterprise systems. In: Pahl C, Vukovic M, Yin J, Yu Q, eds. Service-Oriented Computing. Cham: Springer International Publishing, 37–53.spa
dcterms.referencesEvans E. 2015. Domain-driven design reference—definitions and pattern summaries. Indianapolis: Dog Ear Publishing.spa
dcterms.referencesGysel M, Kölbener L, Giersche W, Zimmermann O. 2016. Service cutter: a systematic approach to service decomposition. In: IFIP International Federation for Information Processing 2016. Cham: Springer, 185–200spa
dcterms.referencesHan J, Kamber M, Jian P. 2012. Data mining: concepts and techniques. Third Edition. Amsterdam: Elsevier.spa
dcterms.referencesHassan S, Bahsoon R, Kazman R. 2020. Microservice transition and its granularity problem: a systematic mapping study. Software: Practice and Experience 50(9):1–31 DOI 10.1002/spe.2869.spa
dcterms.referencesHevner AR, March ST, Park J, Ram S. 2004. Design science in information systems research. MIS Quarterly 28(1):75–105 DOI 10.2307/25148625.spa
dcterms.referencesHirzalla M, Cleland-Huang J, Arsanjani A. 2009. A metrics suite for evaluating flexibility and complexity in service oriented architectures. Berlin: Springer, 41–52.spa
dcterms.referencesHomay A, de Sousa M, Zoitl A, Wollschlaeger M. 2020. Service granularity in industrial automation and control systems. In: 2020 25th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA). Piscataway: IEEE, 132–139spa
dcterms.referencesJin W, Liu T, Cai Y, Kazman R, Mo R, Zheng Q. 2019. Service candidate identification from monolithic systems based on execution traces. IEEE Transactions on Software Engineering 47(5):1 DOI 10.1109/TSE.2019.2910531.spa
dcterms.referencesJosélyne MI, Tuheirwe-Mukasa D, Kanagwa B, Balikuddembe J. 2018. Partitioning microservices—a domain engineering approach. In: Proceedings of the 2018 International Conference on Software Engineering in Africa—SEiA ’18. New York, NY, USA: ACM Press, 43–49spa
dcterms.referencesKrause A, Zirkelbach C, Hasselbring W, Lenga S, Kroger D. 2020. Microservice decomposition via static and dynamic analysis of the monolith. In: Proceedings—2020 IEEE International Conference on Software Architecture Companion, ICSA-C 2020. Piscataway: IEEE, 9–16spa
dcterms.referencesLi S, Zhang H, Jia Z, Li Z, Zhang C, Li J, Gao Q, Ge J, Shan Z. 2019. A dataflow-driven approach to identifying microservices from monolithic applications. Journal of Systems and Software 157(2):110380 DOI 10.1016/j.jss.2019.07.008.spa
dcterms.referencesMazlami G, Cito J, Leitner P. 2017. Extraction of microservices from monolithic software architectures. In: 2017 IEEE International Conference on Web Services (ICWS). Piscataway: IEEE, 524–531.spa
dcterms.referencesNewman S. 2015. Building microservices. Sebastopol: O’Reilly Media, Inc.spa
dcterms.referencesNunes L, Santos N, Rito Silva A. 2019. From a monolith to a microservices architecture: an approach based on transactional contexts. DOI 10.1007/978-3-030-29983-5_3.spa
dcterms.referencesPerepletchikov M, Ryan C, Frampton K. 2007. Cohesion metrics for predicting maintainability of service-oriented software. In: Seventh International Conference on Quality Software (QSIC 2007). Piscataway: IEEE, 328–335.spa
dcterms.referencesRen Z, Wang W, Wu G, Gao C, Chen W, Wei J, Huang T. 2018. Migrating web applications from monolithic structure to microservices architecture. In: Internetware ’18: Proceedings of the Tenth Asia-Pacific Symposium on Internetware. New York, NY, USA: Association for Computing Machinery, 1–10.spa
dcterms.referencesRud D, Schmietendorf A, Dumke RR. 2006. Product metrics for service-oriented infrastructures. In: Conference: Applied Software Measurement. Proceedings of the International Workshop on Software Metrics and DASMA Software Metrik Kongress (IWSM/MetriKon 2006)spa
dcterms.referencesSaidani I, Ouni A, Mkaouer MW, Saied A. 2019. Towards automated microservices extraction using muti-objective evolutionary search. In: 17th International Conference Service-Oriented Computing. Lectures Notes in Computer Science. Cham: Springer, 58–63.spa
dcterms.referencesSpacy.io. 2020. Models · spaCy models documentation. Available at https://spacy.io/models.spa
dcterms.referencesTaibi D, Syst K. 2019. From monolithic systems to microservices: a decomposition framework based on process mining. In: International Conference on Cloud Computing and Service Science —CLOSER 2019, (March).spa
dcterms.referencesTanveer M. 2015. Agile for large scale projects—a hybrid approach. In: 2015 National Software Engineering Conference (NSEC). Piscataway: IEEE, 14–18.spa
dcterms.referencesTyszberowicz S, Heinrich R, Liu B, Liu Z. 2018. Identifying microservices using functional decomposition. In: Feng X, Müller-Olm M, Yang Z, eds. International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, Lecture Notes in Computer Science. Vol. 10998. Cham: Springer International Publishing, 50–65.spa
dcterms.referencesVera-Rivera FH, Gaona C, Astudillo H. 2021. Defining and measuring microservice granularity— a literature overview. PeerJ Computer Science 7(3):695 DOI 10.7717/peerj-cs.695.spa
dcterms.referencesVera-Rivera FH, Gaona Cuevas CM, Astudillo H. 2019. Desarrollo de aplicaciones basadas en microservicios: tendencias y desafíos de investigación. Revista Ibérica de Sistemas e Tecnologias de Informação E23:107–120.spa
dcterms.referencesVera-Rivera FH, Puerto E, Astudillo H, Gaona C. 2021. Microservices backlog: a genetic programming technique for identification and evaluation of microservices from user stories. IEEE Access 9:117178–117203 DOI 10.1109/ACCESS.2021.3106342.spa
dcterms.referencesVera-Rivera FH, Puerto-Cuadros E, Astudillo H, Gaona-Cuevas CM. 2020. Microservices backlog—a model of granularity specification and microservice identification. In: 2020 International Conference on Services Computing (SCC-2020), Honolulu, USA.spa
dcterms.referencesVera-Rivera FH, Vera-Rivera JL, Gaona-Cuevas CM. 2019. Sinplafut: a microservices—based application for soccer training. Journal of Physics: Conference Series 1388(2):012026 DOI 10.1088/1742-6596/1388/1/012026.spa
dcterms.referencesVural H, Koyuncu M, Misra S. 2018. A case study on measuring the size of microservices. In: Laganá A, Gavrilova ML, Kumar V, Mun Y, Tan CJK, Gervasi O, eds. International Conference on Computational Science and Its Applications—ICCSA 2018, Lecture Notes in Computer Science. Berlin: Springer, 454–463.spa
dc.identifier.doi10.7717/peerj-cs.1380
dc.relation.citationedition(2023)spa
dc.relation.citationendpage30spa
dc.relation.citationissue(2023)spa
dc.relation.citationstartpage1spa
dc.relation.citesVera-Rivera FH, Puerto Cuadros EG, Perez B, Astudillo H, Gaona C. 2023. SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories. PeerJ Comput. Sci. 9:e1380 DOI 10.7717/peerj-cs.1380
dc.rights.accessrightsinfo:eu-repo/semantics/openAccessspa
dc.rights.creativecommonsAtribución 4.0 Internacional (CC BY 4.0)spa
dc.subject.proposalMicroserviceseng
dc.subject.proposalMicro-services granularityeng
dc.subject.proposalSemantic similarityeng
dc.subject.proposalUser storieseng
dc.subject.proposalServices computingeng
dc.subject.proposalMicro-services decompositionseng
dc.type.coarhttp://purl.org/coar/resource_type/c_6501spa
dc.type.contentTextspa
dc.type.driverinfo:eu-repo/semantics/articlespa
dc.type.redcolhttp://purl.org/redcol/resource_type/ARTspa
oaire.accessrightshttp://purl.org/coar/access_right/c_abf2spa
oaire.versionhttp://purl.org/coar/version/c_970fb48d4fbd8a85spa
dc.type.versioninfo:eu-repo/semantics/publishedVersionspa


Ficheros en el ítem

Thumbnail

Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem

Distributed under Creative Commons CC-BY 4.0
Excepto si se señala otra cosa, la licencia del ítem se describe como Distributed under Creative Commons CC-BY 4.0