Reverse engineering for software maintenance: a systematic review of literature
Ingeniería inversa para el mantenimiento del software: una revisión sistemática de literatura
Share this
Date
2024-05-02Author
Aguilar Vera, Raúl Antonio
Baeza Pérez, José de la Rosa
Díaz Mendoza, Julio Cesar
Aguileta Güemez, Antonio Armando
Citación
Metadata
Show full item recordDocuments PDF
Abstract
Reverse 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. La 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.
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivatives 4.0 International
Related items
Showing items related by title, author, creator and subject.
-
Gamification experience of an educational environment in software engineening: Gamifying a course of agility for software process improvement [Experiencia de gamificación de un entorno educativo en ingeniería de software: Gamificando un curso de agilidad para la mejora de procesos software]
Gasca-Hurtado G.P.; Gomez M.C.; Zepeda V.V. (IEEE Computer SocietyIngeniería de SistemasFacultad de Ingenierías, 2018)In the last decade gamification has become as a useful strategy for make work environments more dynamic, specifically because it supports initiatives associated with the increase of performance characteristics of work teams ... -
SETMAT (Software engineering teaching method and theory): A theory of software engineering teaching [SETMAT (Software Engineering Teaching Method and Theory): Una teoría para la enseñanza de Ingeniería de Software]
Gómez-Álvarez M.C.; Jaramillo C.M.Z.; Astudillo H.Software engineering (SE) teaching uses learning strategies to promote the acquisition of technical and social capabilities; typical strategies are project-based learning, collaborative learning, and problem-based learning. ... -
Software processes improvement proposal based on PSP for telecommuting contexts
Giraldo, Fáber D.; Villegas Arias, Mónica Michelle (Universidad de MedellínFacultad de IngenieríasMedellín, 2019-06-28)