La mayoría de las veces solo he tenido que leer mi propio código. Como tal, no he tenido necesidad de visualizar el código, ya que sé cómo se comunican entre sí cada clase y cada módulo.
Pero las pocas veces que he tenido que leer el código de otra persona, supongamos ahora que estamos hablando de al menos un módulo más grande que contiene varias clases internas, casi siempre me encontré deseando "Esto haría ¡He sido mucho más fácil de entender si pudiera visualizarlo! "
Entonces, ¿cuáles son los métodos o herramientas comunes para habilitar esto? ¿Cuál usas y por qué los prefieres a los demás? He escuchado cosas como UML, módulos y diagramas de clase, pero imagino que hay más. Además, cualquiera de estos es probablemente mejor que cualquier otra cosa que pueda diseñar por mi cuenta.
EDITAR: para aquellos que responden con "Usa lápiz y papel y simplemente dibújalos": Esto no es muy útil a menos que expliques más. ¿Qué exactamente debo dibujar? ¿Una caja para cada clase? ¿Debo incluir los métodos públicos? ¿Qué pasa con sus campos? ¿Cómo debo dibujar conexiones que expliquen cómo una clase usa otra? ¿Qué pasa con los módulos? ¿Qué sucede si el lenguaje no está orientado a objetos, sino funcional o lógico, o incluso imperativo (C, por ejemplo)? ¿Qué pasa con las variables y funciones globales? ¿Hay una forma ya estandarizada de dibujar esto, o tengo que pensar en un método propio? Obtienes la deriva.