Within my company we have numerous distributed systems, which are maintained by different developer teams. It becomes increasingly difficult to track the dependencies and communication between these systems:
- Drawing a single diagram is impossible as the level of complexity is too high.
- Static diagrams produced in tools like Gliffy or Visio quickly become out of date.
The ideal would be some kind of hierarchical diagram software, whereby I can click on a "system" (that could in fact correspond to an entire dev. team) and "zoom in" to other diagrams representing the components in that system. Also, ideally this would be a "live" diagram with processes providing topology information on-the-fly.
Does anyone know of any applications / libraries (preferably in Java) that fulfill one or both of these requirements?
I guess you would like to have a system like shown in the movie with the ability to give an overview of the overall system architecture and drill-down to the individual components. This seems to be a commercial solution, however you can gain some ideas from them.
I assume you already know/use the following tools:
As far as data visualization is concerned:
In order to have diagrams, which are updated automatically you could add custom java annotations to your code. With these annotations you would mark some of the important components and communication interfaces along with some metadata. Then you can write a simple parser, which will produce output for GraphViz or d3.js and you'd have the desired documentation.