Muchas herramientas están disponibles para esto, dependiendo del tamaño de su sistema. El abuelo de todos ellos es Structure101, un producto comercial.
http://structure101.com
He utilizado este en algunos proyectos grandes - es complejo, pero sin duda el más exhaustivo de todas las herramientas que conozco. Puede graficar una gran arquitectura y te permite desentrañar algunas cosas complejas. Tiene un producto hermano llamado reStructure101 en el que puedes hacer escenarios hipotéticos.
Un buen competidor es Stan4j. No está tan completo como completo, pero mejora algunas cosas, mostrando particularmente el contexto de dependencia en el nivel de clase.
http://www.stan4j.com
(I poseer ambos productos, pero no tienen ninguna afiliación comercial con cualquiera)
Otra forma de ver las dependencias complejas, sobre todo a nivel de proyecto, es una matriz de estructura de dependencias (DSM).Aunque S101 puede hacer un DSM, Lattix tiene más apoyo - que puede manejar Spring e Hibernate dependencias: lattix
http://lattix.com/
(No he utilizado - que hacen que sea muy difícil de evaluar, lo cual es extraño porque yo trabajo en algunos sistemas muy grandes)
Si el software es bastante pequeño, y que están más interesados en el nivel de clase simple, entonces algo así como Architexa puede ayudar a entender mejor la estructura:
http://www.architexa.com/
Finalmente, si quiere hacer su propia versión, puede hacerlo fácilmente con ASM. Incluso incluye una herramienta de matriz de dependencias que realiza un seguimiento a nivel de paquete:
http://asm.ow2.org/doc/tutorial-asm-2.0.html (ver abajo de la página para la matriz de dependencias nify)
Aquí está la fuente para ello - es muy simple, pero inteligente. Funciona con bytecodes. http://cvs.forge.objectweb.org/cgi-bin/viewcvs.cgi/asm/asm/examples/dependencies/src/org/objectweb/asm/depend/
Muchos de los grandes respuestas! ¡Gracias por tu ayuda! – Ryan
Esto no está relacionado, pero la herramienta UML Umbrello generará diagramas UML de su código. Eso hubiera sido útil para mí en ese momento. – Ryan
Acabo de detectar esto debido a su comentario reciente, pero para futuras referencias puede consultar Structure101. –