Antecedentes: La ingeniería inversa es una técnica de mantenimiento que hace
posible la evolución de productos software legados, condición indispensable para las
organizaciones que soportan sus procesos en este tipo de tecnologías. Si bien
existen métodos y herramientas que permiten extraer la estructura y el
comportamiento del sistema, y mecanismos de consulta soportados en lenguajes
especializados para hacer análisis sobre productos software, la utilidad real de un
proceso de ingeniería inversa se evidencia en el uso que se le dé a los artefactos
recuperados.
Objetivos: Este proyecto de investigación definió un marco de referencia para la
recuperación y análisis de vistas arquitectónicas estructurales y de comportamiento
de sistemas software, por medio de la definición de un modelo conceptual para
abstraer artefactos de bajo nivel y reconstruir información de alto nivel sobre el
producto software; y el diseño de un mecanismo de consulta para realizar análisis a
nivel de arquitectura, a partir de la base de información obtenida en los artefactos
generados por los analizadores en el proceso de ingeniería inversa.
Background: Reverse engineering is a maintenance technique, that enables
evolution of legacy software products, a prerequisite for organizations that support
their processes in these technologies. While there are methods and tools to extract
the structure and behavior of the system, and query mechanisms supported in
specialized languages for analysis of software products, the usefulness of a reverse
engineering process becomes clear in the use that is given to the recovered artifacts.
Aims: In this research project was defined a framework for recovery and analysis of
structural and behavioral architectural views of software systems, through the
definition of a conceptual model for abstracting low-level artifacts and reconstruct
high-level information of a software product; and the design of a query mechanism for
analysis of the software systems at architectural level, from the information base
obtained in the artifacts generated by the analyzers in the process of reverse
engineering.