Raúl Antonio Aguilar Vera | Bio
Universidad Autónoma de Yucatán
José de la Rosa Baeza Pérez | Bio
Autonomous University of Yucatan
Julio Cesar Díaz Mendoza | Bio
Autonomous University of Yucatan
Antonio Armando Aguileta Güemez | Bio
Autonomous University of Yucatan


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 techni ques 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.


  1. P. Bourque & R. Dupuis (2004). Swebok. IEEE Computer society.
  2. P. Bourque & R. Fairley (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK V3.0). IEEE Computer Society.
  3. M. 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.
  4. Lehman, M. M., & Ramil, J. F. (2003). Software evolution—Background, theory, practice. Information Processing Letters, 88(1-2), 33-44.
  5. Lehman, 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.
  6. E. Chikofsky & J. Cross (1990). Reverse engineering and design recovery: A taxonomy. IEEE software, 7(1), 13-17.
  7. M. Genero, J. Cruz-Lemus y M. Piattini (2014) Métodos de Investigación en Ingeniería de Software, Ed. Ra-Ma.
  8. B. Kitchenham & S. Charters (2007). Guidelines for performing systematic literature reviews in software engineering.
  9. C. Wohlin (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. Proceedings of the 18th ICE & A in SE.
  10. C. Raibulet, F. Fontana & M. Zanoni (2017) Model-driven reverse engineering approaches: A systematic literature review. Ieee Access, 5, 14516-14542.
  11. M. 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.
  12. T. Dybå & T. Dingsøyr (2008). Empirical studies of agile software development: A systematic review. Information and software technology, 50(9-10), 833-859.
  13. J. 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
How to Cite
Aguilar Vera, R. A., Baeza Pérez, J. de la R., Díaz Mendoza, J. C., & Aguileta Güemez, A. A. (2024). INGENIERÍA INVERSA PARA EL MANTENIMIENTO DEL SOFTWARE: UNA REVISIÓN SISTEMÁTICA DE LITERATURA. Revista Ingenierías Universidad De Medellín, 23(44).


Download data is not yet available.

Send mail to Author

Send Cancel

We are indexed in