Tuve que hacer esto recientemente con un proyecto de más de 100,000 LOC. Mi primera idea fue que es más fácil ver patrones de gráficos de 100 o incluso 1000 nodos que de 100,000 líneas de texto.
Así que pasé 45 minutos y escribí un programa corto de Python (<100LOC) para analizar lo que necesitaba de él y dibujar las relaciones de objeto. Me genera Graphviz fuente, que es un muy fácil de lenguaje para generar. (No hay nada especial sobre Python aquí: Ruby o C # o Common Lisp o lo que sea que pueda hacerlo igual de bien).
En otros proyectos, he visto a personas usar Graphviz para dependencias de módulos, gráficos de llamadas, historial de versiones, todo tipo de cosas. La mejor herramienta de visualización de programas jamás vista.
(Tal vez sea porque tomé compiladores , pero me parece extraño que cuando un programador se enfrenta a un problema, la respuesta parece ser siempre "¡escribir un programa!", Excepto cuando el problema involucra el código fuente de un programa.: - )