Main Article Content

Authors

Reverse engineering is applied in multiple contexts. Each context is defined by a group of stakeholders, a set of resources and situations within a specific scope. There are diverse approaches for reverse engineering, however, all they assume that it is done in the context of software production. The aim of this work is to define an approach to recover the design of software products in different contexts. A comparative analysis of reverse engineering approaches was made using the pattern matching technique. To validate obtained results, a case study was carried out in two distinct contexts, the first in an education context to support a teaching-learning process and the second in a software production context to retrieve a software product design. A framework was defined, which includes a descriptive conceptual system and a set of instrumental elements of operational type, which serves to guide the software product design recovery process, based on the context in which this activity is carried out. It is concluded that the defined framework offers a new approach to software design recovery, because it involves the context where the process takes place and hides its complexity from non-expert stakeholders in reverse engineering.

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. Applied reverse engineering in context. inycomp [Internet]. 2024 Feb. 26 [cited 2024 Nov. 21];26(1):e-22112840. Available from: 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

Received 2023-03-02
Accepted 2024-01-31
Published 2024-02-26