La Comprensión de Programas es una disciplina de la Ingeniería de Software cuyo principal objetivo es elaborar métodos, técnicas y herramientas que ayuden al programador a entender programas.
Uno de los principales desafíos en esta disciplina consiste en relacionar dos dominios muy importantes como lo son: el dominio del problema y el dominio del programa. El primero hace referencia a la salida del sistema el segundo está relacionado con las componentes del programa utilizadas para producir esa salida.
La construcción de estrategias de interrelación de dominios implica el análisis y elaboración de técnicas de extracción de la información desde los sistemas. Dichas técnicas se clasifican de acuerdo a la clase de información que se extrae, en dinámicas y estáticas. Las primeras extraen información de tiempo de ejecución. Las segundas analizan el código fuente del sistema y muestran información relacionada con variables, constantes, etc.
El objetivo de la l nea de investigación es desarrollar estrategias de extracción de información estática innovadoras que posibiliten: i) Navegar el código y ii) Ayuden a interconectar el dominio del problema con el dominio del programa.