Reverse engineering for software maintenance: a systematic review of literature

dc.audienceComunidad Universidad de Medellínspa
dc.contributor.authorAguilar Vera, Raúl Antonio
dc.contributor.authorBaeza Pérez, José de la Rosa
dc.contributor.authorDíaz Mendoza, Julio Cesar
dc.contributor.authorAguileta Güemez, Antonio Armando
dc.coverage.spatialLat: 06 15 00 N degrees minutes Lat: 6.2500 decimal degreesLong: 075 36 00 W degrees minutes Long: -75.6000 decimal degrees
dc.date.accessioned2024-11-01T13:48:27Z
dc.date.available2024-11-01T13:48:27Z
dc.date.issued2024-05-02
dc.descriptionReverse engineering covers a wide range of software life cycle activities starting with the existing implementation, recovering, or recreating the design and deciphering the requirements implemented in the system. The objective of this article is to present a state of the art on Reverse Engineering techniques used in the context of software maintenance. For this purpose, a Systematic Literature Review was carried out, in which 47 primary studies from 4 databases, published in this century, were analyzed. Research questions were raised regarding the distribution of publications throughout this century and, about the type of maintenance on which they focus; Likewise, the techniques and metrics reported for reverse engineering processes in maintenance activities were analyzed. A significant increase (just over 200 %) could be observed in the second decade of this century compared to the first. On the other hand, it was observed that perfective maintenance is the one in which the most techniques were identified, although the majority are static. From the analysis of the selected studies, a total of 22 types of reengineering techniques used for software maintenance/evolution tasks were identified, reporting a set of eight types of metrics used to evaluate the quality of reengineering processes in the evolution of the software.eng
dc.descriptionLa ingeniería inversa cubre una amplia gama de actividades del ciclo de vida del software comenzando con la implementación existente, recuperando o recreando el diseño y descifrando los requisitos implementados en el sistema. El objetivo de este artículo es presentar un estado del arte sobre técnicas de Ingeniería Inversa utilizadas en el contexto del mantenimiento de software. Para ello se realizó una Revisión Sistemática de la Literatura, en la que se analizaron 47 estudios primarios de 4 bases de datos, publicados en este siglo. Se plantearon interrogantes de investigación respecto de la distribución de las publicaciones a lo largo de este siglo y, sobre el tipo de mantenimiento en el que se enfocan; Asimismo, se analizaron las técnicas y métricas reportadas para los procesos de ingeniería inversa en las actividades de mantenimiento. En la segunda década de este siglo se pudo observar un aumento significativo (poco más del 200 %) en comparación con la primera. Por otro lado, se observó que el mantenimiento perfectivo es en el que más técnicas se identificaron, aunque la mayoría son estáticas. Del análisis de los estudios seleccionados se identificaron un total de 22 tipos de técnicas de reingeniería utilizadas para tareas de mantenimiento/evolución del software, reportando un conjunto de ocho tipos de métricas utilizadas para evaluar la calidad de los procesos de reingeniería en la evolución del software.spa
dc.format.extentp. 1-18spa
dc.format.mediumElectrónicospa
dc.format.mimetypePDF
dc.identifier.doihttps://doi.org/10.22395/rium.v23n44a2
dc.identifier.eissn2248-4094
dc.identifier.instnameinstname:Universidad de Medellínspa
dc.identifier.issn1692-3324
dc.identifier.reponamereponame:Repositorio Institucional Universidad de Medellínspa
dc.identifier.repourlrepourl:https://repository.udem.edu.co/
dc.identifier.urihttp://hdl.handle.net/11407/8630
dc.language.isospa
dc.publisherUniversidad de Medellínspa
dc.publisher.facultyFacultad de Ingenieríasspa
dc.publisher.placeMedellínspa
dc.relation.citationendpage18
dc.relation.citationissue44
dc.relation.citationstartpage1
dc.relation.citationvolume23
dc.relation.haspartRevista Ingenierías Universidad de Medellín; Vol. 23 Núm. 44 enero-junio 2024spa
dc.relation.ispartofseriesRevista Ingenierías Universidad de Medellín; Vol. 23 No. 44 (2024)spa
dc.relation.referencesP. Bourque & R. Dupuis (2004). Swebok. IEEE Computer society.
dc.relation.referencesP. Bourque & R. Fairley (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK V3.0). IEEE Computer Society.
dc.relation.referencesM. Piattini, J. Villalba, F. Ruiz, T. Bastanchury, M. Polo, M. Martínez & C. Nistal (2000). Mantenimiento del Software. Modelos, técnicas y métodos para la gestión del cambio. Ed. Alfaomega & Ra-Ma.
dc.relation.referencesLehman, M. M., & Ramil, J. F. (2003). Software evolution'Background, theory, practice. Information Processing Letters, 88(1-2), 33-44.
dc.relation.referencesLehman, M. M., Ramil, J. F., Wernick, P. D., Perry, D. E., & Turski, W. M. (1997). Metrics and laws of software evolution-the nineties view. In Proceedings Fourth International Software Metrics Symposium. 20-32. IEEE.
dc.relation.referencesE. Chikofsky & J. Cross (1990). Reverse engineering and design recovery: A taxonomy. IEEE software, 7(1), 13-17.
dc.relation.referencesM. Genero, J. Cruz-Lemus y M. Piattini (2014) Métodos de Investigación en Ingeniería de Software, Ed. Ra-Ma.
dc.relation.referencesB. Kitchenham & S. Charters (2007). Guidelines for performing systematic literature reviews in software engineering.
dc.relation.referencesC. Wohlin (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. Proceedings of the 18th ICE & A in SE.
dc.relation.referencesC. Raibulet, F. Fontana & M. Zanoni (2017) Model-driven reverse engineering approaches: A systematic literature review. Ieee Access, 5, 14516-14542.
dc.relation.referencesM. Hasbi, E. Budiardjo & W. Wibowo (2018). Reverse engineering in software product line-a systematic literature review. In Proceedings of the 2018 2nd International Conference on Computer Science and Artificial Intelligence. 174-179.
dc.relation.referencesT. Dybå & T. Dingsøyr (2008). Empirical studies of agile software development: A systematic review. Information and software technology, 50(9-10), 833-859.
dc.relation.referencesJ. Baeza & R. Aguilar (2022) Quality Assessment for Selected Primary Studies in a Systematic Literature Review: A Case Study. Proceedings of the 2022 Mexican International Conference on Computer Science (ENC). Xalapa, Veracruz, México. DOI: 10.1109/ENC56672.2022.9882921
dc.relation.urihttps://revistas.udem.edu.co/index.php/ingenierias/article/view/4701
dc.rights.creativecommonsAttribution-NonCommercial-NoDerivatives 4.0 International*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0*
dc.sourceRevista Ingenierías Universidad de Medellín; Vol. 22 No. 42 (2023): (enero-junio); 1-18
dc.subjectSoftware engineeringeng
dc.subjectSoftware maintenanceeng
dc.subjectSystematic literature revieweng
dc.subjectReverse engineering techniqueseng
dc.subjectIngeniería de softwarespa
dc.subjectMantenimiento de softwarespa
dc.subjectRevisión sistemática de literaturaspa
dc.subjectTécnicas de ingeniería inversaspa
dc.titleReverse engineering for software maintenance: a systematic review of literatureeng
dc.titleIngeniería inversa para el mantenimiento del software: una revisión sistemática de literaturaspa
dc.typearticle
dc.type.coarhttp://purl.org/coar/resource_type/c_6501
dc.type.driverinfo:eu-repo/semantics/article
dc.type.localArtículo científicospa
dc.type.versioninfo:eu-repo/semantics/publishedVersion

Archivos

Bloque original

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
Revista_Ingenierias_UdeM_446.pdf
Tamaño:
549.46 KB
Formato:
Adobe Portable Document Format