La Comprensión de Programas (CP) es una disciplina de la Ingeniería del Software cuyo objetivo es facilitar el entendimiento de los sistemas. Esta disciplina está influenciada en gran medida por el tamaño de los mismos. Es decir, mientras más grande es el código del sistema, más complejo se hace su entendimiento.
Comprender un sistema de manera correcta y rápida disminuye claramente el costo de actividades tales como: mantenimiento, reingeniería, evolución; lo cual representa una de las características más importantes de esta disciplina.
Entre los principales desafíos en la CP se destaca lo siguiente: lograr reconstruir la relación entre el Dominio del Problema y el Dominio del Programa. El primero hace referencia a la salida del sistema y el segundo a las componentes utilizadas para producir dicha salida.
Para el caso particular del Dominio del Programa, uno de los lugares más significativos desde donde se puede extraer información es el código fuente. La información que se obtiene de esta extracción se clasifica en estática, si es obtenida sin ejecutar el programa y dinámica, si es obtenida en tiempo de ejecución.
En este artículo se describe una línea de investigación centrada en la extracción de información estática de los sistemas para facilitar el proceso de comprensión de los mismos.