在我的公司内,我们有许多分布式系统,由不同的开发团队维护。跟踪这些系统之间的依赖关系和通信变得越来越困难:
- 由于复杂程度太高,无法绘制单个图表。
- 在 Gliffy 或 Visio 等工具中生成的静态图表很快就会过时。
理想的情况是某种层次图软件,通过它我可以单击“系统”(实际上可以对应于整个开发团队)并“放大”到表示该系统中组件的其他图表。此外,理想情况下,这将是一个“实时”图表,其中包含动态提供拓扑信息的进程。
有谁知道满足其中一项或两项要求的任何应用程序/库(最好是Java)?
我想您希望拥有一个像电影中所示的系统,能够概述整个系统架构并深入了解各个组件。这似乎是一个商业解决方案,但是您可以从中获得一些想法。
我假设您已经知道/使用以下工具:
就数据可视化而言:
为了获得自动更新的图表,您可以将自定义 java 注释添加到您的代码中。使用这些注释,您可以标记一些重要的组件和通信接口以及一些元数据。然后您可以编写一个简单的解析器,它将为 GraphViz 或 d3.js 生成输出,并且您将拥有所需的文档。
我们使用yFiles库来可视化网络拓扑和 UML 图。使用它创建交互式“向下钻取”图表非常容易。复杂的系统可以通过文件夹节点隐藏,可以随时打开/关闭。基于某些节点生成新的图形/图表听起来也很合理。它带有详细的文档和大量的演示代码。
不过有一个缺点。除非您是学术研究人员,否则它带有商业许可证(您必须付费)。
免责声明:我不是 yFiles 的开发人员,也不隶属于他们。