【问题标题】:How to show the hierarchy of a Modelica library?如何显示 Modelica 库的层次结构?
【发布时间】:2020-05-31 15:43:29
【问题描述】:

假设我有一个别人构建的 Modelica 库,我想知道细节并重写这个库吗?我怎么知道这个库中组件的继承层次?

下图是一个例子,但我不知道如何生成这种层次图。

【问题讨论】:

  • 看来您感兴趣的是实例层次结构与类继承层次结构相结合。据我所知,没有工具可以生成继承层次结构(类的,而不是你上面说的组件,因为那是实例层次结构)。希望其他人知道这样的工具。
  • 不久前我们有类似 ModelicaML 的东西,它可以遍历 Modelica 库并使用继承层次结构从中构建一些 UML 图。不幸的是,由于不再支持基于旧的 Eclipse,我们还没有找到更新它的资源。
  • @matth,我用过 Wolfram System Modeler,很好用,但是很多库只支持 Dymola。真可惜。

标签: hierarchy modelica


【解决方案1】:

我已经尝试过绘制这样的图表,但我必须承认成功有限。对于非平凡的示例,图表变得非常大,尤其是当您结合继承和组件视图时。您知道您的图像是由工具制作的还是手动改进的?

这里以 Modelica.Mechanics.Rotational.Examples.CoupledClutches 为例。图表是用 GraphViz 制作的。

【讨论】:

  • PS:一些Modelica模型确实使用了多重继承...
  • 上图是手工制作的。它是关于一个商业图书馆。 GraphViz 可以自动生成层次图吗?
  • GraphViz 可用于生成具有此类内容的图表,并且能够以良好的性能处理非常大的图表。它还支持某些类型的分组,如上所示。但是,您仍然需要使用 DOT“编程语言”生成数据文件。
  • 但是,基本问题没有得到解答:这样的图表真的有用吗?我的感觉是信息或多或少会在你的脸上爆炸。你会用它做什么?
  • 我最初的想法是层次图有助于理解新库的结构,所以你不需要检查每个组件中的每一行代码。关于信息爆炸,我认为在层次结构有限的情况下可能会更简洁。尽管这可能不可行,但它仍然有助于 Modelica 的新手理解面向对象建模的思想。可以分享一些 Graphviz 和 Modelica 的例子吗?
猜你喜欢
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 2011-01-07
  • 2017-07-15
  • 2018-08-21
  • 1970-01-01
相关资源
最近更新 更多