我有一些Python类,我假装用某种可视化工具来管理。每个类都有一些可以执行操作的方法(同时也可以接受参数或返回值或其他类实例)。
假设类是“人”,“帽子”和“手表”。现在,让我们说“ Person”具有方法getName()
和putOn(object)
。
[从代码的角度来看,将“手表”或“帽子”附加到“人”(考虑到我刚刚提到的类)将很容易:
person = Person()
if person.getName() == "Fred":
handwatch = Handwatch()
person.putOn(handwatch)
else:
hat = Hat()
person.putOn(hat)
但是,如果我希望能够“绘制”类实例之间的这种相互作用怎么办?
想象一个类似于UML的可视化工具,该工具可以让我通过从“类”的面板中拖放这些类的“实例”来“表示”代码,然后将生成行为完全相同的代码。
我是否可以使用任何库来乞求实现类似的东西?也许甚至还有一些有关该主题的文献?
您不需要从图生成代码(图是模型的一部分的规范化图片),您需要一种工具从活动生成代码(可以在图)。
作为状态机,活动是一种行为,可以表示操作的定义,例如,与交互相反(可以通过序列图显示)
在您的代码中,获取新创建的Person的名称似乎是人为的,该名称在创建时未在参数中给出。假设实例是通过输入参数person接收的,则表示您的代码的活动可以是:
其中绿色的动作是调用操作动作(由要清除的被调用操作命名),蓝色的是创建对象动作(其名称表示要清除的类)。
同样为了图的清晰起见,pin'名称'实际上具有方向[
我知道建模者会这样做吗?不,对不起,甚至我想象过要通过
plug-out
在BoUML中进行操作,就像我制作状态机生成器(生成C ++代码)的方式一样,但是没有人要求。所以,就这样做吗?