从图/ UML /可视化表示生成Python代码[关闭]

问题描述 投票:0回答:1

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

假设类是“人”,“帽子”和“手表”。现在,让我们说“ Person”具有方法getName()putOn(object)

[从代码的角度来看,将“手表”或“帽子”附加到“人”(考虑到我刚刚提到的类)将很容易:

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

但是,如果我希望能够“绘制”类实例之间的这种相互作用怎么办?

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

enter image description here

我是否可以使用任何库来乞求实现类似的东西?也许甚至还有一些有关该主题的文献?

python uml code-generation
1个回答
0
投票

您不需要从生成代码(图是模型的一部分的规范化图片),您需要一种工具从活动生成代码(可以在图)。

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

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

enter image description here

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

同样为了图的清晰起见,pin'名称'实际上具有方向[

没有从该活动生成Python代码的注意事项,也请注意,帮助定义一个动作可以是不透明的形式,您可以在其中直接放置Python代码。

我知道建模者会这样做吗?不,对不起,甚至我想象过要通过

plug-out

BoUML中进行操作,就像我制作状态机生成器(生成C ++代码)的方式一样,但是没有人要求。所以,就这样做吗?
© www.soinside.com 2019 - 2024. All rights reserved.