¿Cuáles son algunas de las mejores maneras de aprender grandes bases de códigos heredados?

Esta es una pregunta demasiado general. A menos que tenga una idea general de lo que se supone que debe hacer el código base, no puede continuar. También las formas pueden diferir de un idioma a otro. La pregunta más grande es: ¿por qué quieres aprenderlo? ¿Qué beneficio tiene que no tenga una base de código mejor y más nueva?

Suponiendo que necesita hacer esto para un trabajo, aplique los siguientes trucos estándar de ingeniería inversa:
1. Depurar algunos pequeños testcases con la herramienta.
2. Cualquiera que sea la parte del código base que desee comprender, imprima un error fatal y salga, o haga cualquier otra cosa que garantice que los testcases para los que fue escrito fallan. entonces puede ejecutar todos los testcases a los que tiene acceso y depurar los que fallan
3. coloque puntos de interrupción en funciones del sistema estándar como malloc para conocer las rutinas de administración de memoria. puede hacer lo mismo para averiguar el subsistema de administración de subprocesos, si corresponde.
4. Siempre que comprenda incluso una pequeña parte del código heredado, intente mejorarlo: este esfuerzo en sí mismo llevará a una comprensión más amplia del código base.
Estos fueron algunos ejemplos que suponen un programa de escritorio en sistemas * nix. Usa tu imaginación para encontrar trucos adecuados para el tipo de software que tienes.