La Comprensión de Programas (CP) es un área de la Ingeniería de Software que tiene como objetivo facilitar el entendimiento de los sistemas, mediante el desarrollo de Métodos, Técnicas, Estrategias y Herramientas que permiten comprender las funcionalidades del sistema de estudio. Uno de los principales desafíos en CP es establecer una relación entre el Dominio del Problema y el Dominio del Programa. Es decir, poder relacionar el comportamiento del sistema de estudio con las componentes del mismo que producen dicho comportamiento.
Una forma de construir esta relación consiste en elaborar una representación para cada dominio y luego establecer un procedimiento de vinculación entre ambas representaciones. Pero para lograr esto, es necesario poder extraer información de ambos dominios (para poder crear las representaciones), para lo cual existen múltiples técnicas. Dentro de lo que a la extracción de información del programa se refiere, existen muchos métodos y herramientas desarrolladas, cada una de las cuales pueden ser clasificadas en base al tipo de información que extraen. Así, se tienen técnicas de extracción de información estática o dinámica. Las primeras extraen información desde el código fuente sin ejecutar el sistema. Las segundas están relacionadas con información de tiempo de ejecución. En este artículo se describe una línea de investigación que se centra en el Análisis Dinámico de Sistemas de Software para la creación de estrategias de Comprensión de Programas. El Análisis Dinámico de Sistemas abarca el estudio de las técnicas de extracción de información junto a las técnicas y estrategias para la observación, estudio e interpretación de la información extraída.