Contenido principal del artículo

Autores

La ingeniería inversa se realiza en múltiples contextos. Cada contexto está definido por un grupo de participantes, un conjunto de recursos y situaciones que se encuentran dentro de un ámbito específico. Existen múltiples propuestas para realizar ingeniería inversa, sin embargo, todas asumen que se hace en el contexto de la producción de software. El objetivo de este trabajo es proponer un referente para recuperar el diseño de productos software, que pueda ser utilizado en diferentes contextos. Se hizo un análisis comparativo de los enfoques de ingeniería inversa utilizando la técnica de coincidencia de patrones. Para validar los resultados obtenidos se realizó un estudio de caso en dos contextos diferentes, el primero en un contexto de educación para apoyar un proceso de enseñanza aprendizaje y el segundo en un contexto de producción para recuperar el diseño de un producto software. Se definió un marco de referencia conformado por un sistema conceptual descriptivo y un conjunto de elementos instrumentales de tipo operativo, que guía el proceso de recuperación del diseño de productos software, ajustándose a las características del contexto en el que se realiza esta actividad. Se concluye que el marco de referencia definido, ofrece un nuevo enfoque para la recuperación del diseño de productos software, porque involucra el contexto en el que se realiza el proceso y oculta su complejidad a los participantes que no son expertos en ingeniería inversa.

Martin E Monroy , Universidad de Cartagena, Programa de Ingeniería de Sistemas, Cartagena, Colombia

https://orcid.org/0000-0003-4135-3251

Martin Pinzger, Alpen-Adria-Universität, Software Engineering Research Group, Klagenfurt, Austria,

Alpen-Adria-Universität, Software Engineering Research Group, Klagenfurt, Austria

José L. Arciniegas, Universidad del Cauca, Departamento de Telemática, Popayán, Colombia.

https://orcid.org/0000-0002-1310-9123

1.
Monroy ME, Pinzger M, Arciniegas JL. Ingeniería inversa aplicada en función del contexto. inycomp [Internet]. 9 de abril de 2024 [citado 30 de abril de 2024];26(1):e-22112840. Disponible en: https://revistaingenieria.univalle.edu.co/index.php/ingenieria_y_competitividad/article/view/12840

B. Arasteh, R. Sadegi & K. Arasteh. Bölen: Software module clustering method using the combination of shuffled frog leaping and genetic algorithm. Data Technologies and Applications, vol. 55, no. 2,. pp. 251-279. 2021. https://doi.org/10.1108/DTA-08-2019-0138 DOI: https://doi.org/10.1108/DTA-08-2019-0138

A. Shatnawi, A.D. Seriai, H. Sahraoui et al. Reverse engineering reusable software components from object-oriented APIs, J. Syst. Softw., 131, pp. 442–460, 2017 DOI: https://doi.org/10.1016/j.jss.2016.06.101

F.A. Fontan, M.V. Mäntylä, M.Zanoni et al: Comparing and experimenting machine learning techniques for code smell detection, Empir. Softw. Eng., vol 21, no. 3, pp. 1143–1191 , 2016 DOI: https://doi.org/10.1007/s10664-015-9378-4

J. García, I. Ivkovic, N. Medvidovic. A comparative analysis of software architecture recovery techniques. 28th IEEE/ACM Int. Conf. on Automated Software Engineering (ASE’13), Clayton, Australia, pp. 486–496, 2014 DOI: https://doi.org/10.1109/ASE.2013.6693106

H. Bruneliere, J. Cabot, G. Dupé y F. Madiot, “Modisco: A model driven reverse engineering framework”, Information and Software Technology, vol. 56, no. 8, pp. 1012-1032, 2014. https://doi.org/10.1016/j.infsof.2014.04.007 DOI: https://doi.org/10.1016/j.infsof.2014.04.007

M. Moser and J. Pichler, “eknows: Platform for Multi-Language Reverse Engineering and Documentation Generation,” 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME), Luxembourg, 2021, pp. 559-568, doi: 10.1109/ICSME52107.2021.00057. DOI: https://doi.org/10.1109/ICSME52107.2021.00057

T. A. Ghaleb, K. Aljasser and M. A. Alturki, “Enhanced Visualization of Method Invocations by Extending Reverse-engineered Sequence Diagrams,” 2020 Working Conference on Software Visualization (VISSOFT), Adelaide, SA, Australia, 2020, pp. 49-60, doi: 10.1109/VISSOFT51673.2020.00010. DOI: https://doi.org/10.1109/VISSOFT51673.2020.00010

U. Sabir, F. Azam, S. U. Haq, M. W. Anwar, W. H. Butt and A. Amjad, “A Model Driven Reverse Engineering Framework for Generating High Level UML Models From Java Source Code,” in IEEE Access, vol. 7, pp. 158931-158950, 2019, doi:10.1109/ACCESS.2019.2950884. DOI: https://doi.org/10.1109/ACCESS.2019.2950884

Sparx Systems. Architect. User Guide Serieshttps://sparxsystems.com/resources/user-guides/15.2/model-domains/software-models.pdf. 2021

Imagix Corp. Imagix 4D. Disponible en https://www.imagix.com/

C. Stormer, “Software quality attribute analysis by architecture reconstruction (squa3re)”, 11th European Conference on Software Maintenance and Reengineering (CSMR’07), IEEE, 2007, pp. 361-364. https://doi.org/10.1109/csmr.2007.43 DOI: https://doi.org/10.1109/CSMR.2007.43

D. A. Tamburri y R. Kazman, “General methods for software architecture recovery: a potential approach and its evaluation”. Empirical Software Engineering, vol. 23, no. 3, pp. 1457-1489. 2018. https://doi.org/10.1007/s10664-017-9543-z DOI: https://doi.org/10.1007/s10664-017-9543-z

M. L. Kerdoudi, T. Ziadi, C. Tibermacine and S. Sadou, “Recovering Software Architecture Product Lines,” 2019 24th International Conference on Engineering of Complex Computer Systems (ICECCS), Guangzhou, China, 2019, pp. 226-235, doi: 10.1109/ICECCS.2019.00032. DOI: https://doi.org/10.1109/ICECCS.2019.00032

K. Ibrahim, H. Hassan, K.T. Wassif y S. Makady. Context-Aware Expert for Software Architecture Recovery (CAESAR): An automated approach for recovering software architectures. Journal of King Saud University-Computer and Information Sciences, vol. 35, no. 8, pp. 101-106, 2023. DOI: https://doi.org/10.1016/j.jksuci.2023.101706

M. Schmitt Laser, N. Medvidovic, D.M. Le, & J. Garcia. ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering pp. 1546-1550, 2020. DOI: https://doi.org/10.1145/3368089.3417941

D. Guamán, D., J. Pérez, J. Diaz & C.E. Cuesta. Towards a reference process for software architecture reconstruction. IET Software, vol. 14, no. 6, pp. 592-606, 2020 DOI: https://doi.org/10.1049/iet-sen.2019.0246

J. M. Favre, “Cacophony: Metamodel-driven software architecture reconstruction”, 11th Working Conference on Reverse Engineering, IEEE, 2004, pp. 204-213. https://doi.org/10.1109/wcre.2004.15 DOI: https://doi.org/10.1109/WCRE.2004.15

A. Van Deursen, C. Hofmeister, C, R. Koschke, L. Moonen y C. Riva, “Symphony: View-driven software architecture reconstruction”. Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture, IEEE, 2004, pp. 122-132. https://doi.org/10.1109/wicsa.2004.1310696 DOI: https://doi.org/10.1109/WICSA.2004.1310696

S. R. Tilley, P. Santanu y D. B. Smith, “Towards a framework for program understanding”, WPC’96. 4th Workshop on Program Comprehension, IEEE, 1996, pp. 19-28. https://doi.org/10.1109/wpc.1996.501117 DOI: https://doi.org/10.1109/WPC.1996.501117

G. Granchelli, M. Cardarelli, P. Di Francesco, I. Malavolta, L. Iovino y A. Di Salle, “Towards recovering the software architecture of microservice-based systems”. International Conference on Software Architecture Workshops (ICSAW), IEEE, 2017, pp. 46-53. https://doi.org/10.1109/icsaw.2017.48 DOI: https://doi.org/10.1109/ICSAW.2017.48

M. E. Monroy, J. L. Arciniegas y J. Rodríguez, “Recuperación de Arquitecturas de Software: Un Mapeo Sistemático de la Literatura”, Información Tecnológica, vol. 27, no. 5, pp. 201-220, 2016. https://doi.org/10.4067/s0718-07642016000500022 DOI: https://doi.org/10.4067/S0718-07642016000500022

H. Zhang and J. Liu, “Research Review of Design Pattern Mining,” 2020 IEEE 11th International Conference on Software Engineering and Service Science (ICSESS), Beijing, China, 2020, pp. 339-342, doi: 10.1109/ICSESS49938.2020.9237742. DOI: https://doi.org/10.1109/ICSESS49938.2020.9237742

M. E. Monroy, J. L. Arciniegas y J. Rodríguez, “Caracterización de contextos de uso de la ingeniería inversa”, Información Tecnológica, vol. 28, no. 4, pp. 75-84, 2017. https://doi.org/10.4067/s0718-07642017000400010 DOI: https://doi.org/10.4067/S0718-07642017000400010

IEEE/ISO/IEC International Standard for Software, systems and enterprise--Architecture description, International Organization for Standardization, Ginebra, Suiza, 2022

A. Di Federico, P. Fezzardi and G. Agosta, “rev.ng: A Multi-Architecture Framework for Reverse Engineering and Vulnerability Discovery,” 2018 International Carnahan Conference on Security Technology (ICCST), Montreal, QC, Canada, 2018, pp. 1-5, doi: 10.1109/CCST.2018.8585654. DOI: https://doi.org/10.1109/CCST.2018.8585654

M. E. Monroy, G. E. Chanchí y M. A. Ospina, “Desarrollo de habilidades técnicas en ingeniería de software aplicando ingeniería inversa”, Revista Boletín Redipe, vol. 11, no. 1, pp. 534-550, 2022. https://doi.org/10.36260/rbr.v11i1.1661 DOI: https://doi.org/10.36260/rbr.v11i1.1661

E.J. López, M.A. Flores, G.L. Sandoval, B.L., Velázquez, J.J., Vázquez & L.A. Velásquez. Reverse engineering and straightforward design as tools to improve the teaching of mechanical engineering. Industry Integrated Engineering and Computing Education: Advances, Cases, Frameworks, and Toolkits for Implementation, pp. 93-118. 2019. DOI: https://doi.org/10.1007/978-3-030-19139-9_7

“I. Verner & M. Greenholts. Teacher education to analyze and design systems through reverse engineering. In Educational Robotics in the Makers Era 1. Springer International Publishing, pp. 122-132, 2017. DOI: https://doi.org/10.1007/978-3-319-55553-9_9

A. Sejfia, “A Pilot Study on Architecture and Vulnerabilities: Lessons Learned,” 2019 IEEE/ACM 2nd International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE), Montreal, QC, Canada, 2019, pp. 42-47, doi: 10.1109/ECASE.2019.00015. DOI: https://doi.org/10.1109/ECASE.2019.00015

A. P. David, Ghidra Software Reverse Engineering for Beginners: Analyze, identify, and avoid malicious code and potential threats in your networks and systems, Packt Publishing, 2021.

M. F. Ismael and K. H. Thanoon, “Investigation Malware Analysis Depend on Reverse Engineering Using IDAPro,” 2022 8th International Conference on Contemporary Information Technology and Mathematics (ICCITM), Mosul, Iraq, 2022, pp. 227-231, doi: 10.1109/ICCITM56309.2022.10031698. DOI: https://doi.org/10.1109/ICCITM56309.2022.10031698

K. Hausknecht and S. Gruičić, “Anti-computer forensics,” 2017 40th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), Opatija, Croatia, 2017, pp. 1233-1240, doi: 10.23919/MIPRO.2017.7973612. DOI: https://doi.org/10.23919/MIPRO.2017.7973612

M. D. Peters, C. Marnie, A.C. Tricco, D. Pollock, Z. Munn, L. Alexander, L., ... & H. Khalil, (2020). Updated methodological guidance for the conduct of scoping reviews. JBI evidence synthesis, vol. 18, no. 10, pp. 2119-2126. DOI: https://doi.org/10.11124/JBIES-20-00167

R. K. Yin, “Case study research: Design and methods”, Sage publications, 2013.

S. L. McGregor y J. A. Murnane, “Paradigm, methodology and method: Intellectual integrity in consumer scholarship”, International journal of consumer studies, vol. 34, no. 4, pp. 419-427, 2010. https://doi.org/10.1111/j.1470-6431.2010.00883.x DOI: https://doi.org/10.1111/j.1470-6431.2010.00883.x

M. E. Monroy, J. L. Arciniegas y J. C. Rodríguez, “Mecanismo de Consulta para el Análisis de Arquitecturas Recuperadas”. Información tecnológica, vol. 28, no. 5, pp. 87-100, 2017. http://dx.doi.org/10.4067/S0718-07642017000500011 DOI: https://doi.org/10.4067/S0718-07642017000500011

M. E. Monroy, J. C. Rodríguez y P. Puello, “QModel-XMI: un mecanismo de consulta para modelos XMI”, Revista Espacios, vol. 41, no. 5, pp. 218-228, 2020. https://doi.org/10.48082/espacios-a20v41n45p17 DOI: https://doi.org/10.48082/espacios-a20v41n45p17

A.T. Jebb, V. Ng, & L. Tay. A review of key Likert scale development advances: 1995–2019. Frontiers in psychology, Vol. 4, no. 12, pp. 637547. 2021.. DOI: https://doi.org/10.3389/fpsyg.2021.637547

Recibido 2023-03-02
Aceptado 2024-01-31
Publicado 2024-04-09