【问题标题】:Generating Python code from a diagram / UML / visual representation [closed]从图表/UML/视觉表示生成Python代码[关闭]
【发布时间】:2020-09-06 00:53:27
【问题描述】:

我有一些 Python 类,我假装使用某种可视化工具来管理它们。每个类都有一些可以执行操作的方法(同时也接受参数或返回值或其他类实例)。

假设类是“Person”、“Hat”和“Handwatch”。现在,假设“Person”具有getName()putOn(object) 方法。

从代码的角度来看,将“手表”或“帽子”附加到“人”(鉴于我刚才提到的类)将很简单:

person = Person()
if person.getName() == "Fred":
    handwatch = Handwatch()
    person.putOn(handwatch)
else:
    hat = Hat()
    person.putOn(hat)

但是,如果我希望能够“绘制”我的类实例之间的那种交互呢?

想象一个类似 UML 的可视化工具,它可以让我通过从“类”调色板中拖放这些类的“实例”来“表示”代码,然后生成行为与此完全相同的代码。

有没有我可以使用的库来乞求实现类似的东西?或者甚至是一些关于这个主题的文献?

【问题讨论】:

    标签: python uml code-generation


    【解决方案1】:

    您不能要求从 图表 生成代码(图表是标准化的图片 显示模型的一部分),您需要一个工具从活动(可以在图表中显示)。

    作为状态机,活动是一种行为,可以表示操作的定义,与例如交互相反(可能通过序列图显示)

    在您的代码中,获取新创建的 Person 的名称似乎是人为的,其名称在创建时未在参数中给出。假设该实例是通过输入参数 person 接收的,代表您的代码的活动可以是:

    其中绿色的动作是调用操作动作(有被调用的操作命名要清楚),蓝色的动作是创建对象动作(名字表示类要清楚)。

    另外,为了图表的清晰,pin 'name' 实际上有方向 return

    不反对从该活动生成 Python 代码,还要注意帮助定义一个操作可以是一种不透明的形式,您可以在其中直接放置 Python 代码。

    我知道有一个建模师这样做吗?不,抱歉,即使我想通过 plug-outBoUML 中进行操作,就像我制作状态机生成器(生成 C++ 代码)一样,但没有人要求。那么,就去做吧?

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2011-11-05
      • 2011-04-21
      • 1970-01-01
      • 2015-02-25
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多