2

我正在尝试处理一个没有记录的 Python 项目。

我做了一个逆向工程,在 Windows 环境中获得了 2 次类图:使用 sparx EA 和视觉范式。

但是在这两种情况下,我都得到了一个类图,其中的类没有关系(即使我确实配置了生成它们的过程)。有可能还是有问题?

4

2 回答 2

2

几乎所有工具(就我自己而言,我在 EA 方面有专长,在 RSA 方面有过回溯)都难以显示类之间的关系。基本上它们是单个类的结构(文件/包)和操作/属性。在某些情况下,您也会获得关系,但如前所述:这是有限的。

无论如何,如果您要理解代码,最好完成/纠正类之间缺失的关系,从而添加注释。

于 2015-08-28T08:27:09.557 回答
1

这是可能的,当然。代码中可能没有任何东西被逆向工程过程识别为 UML 关系。确切地说,这取决于语言和工具,因为没有任何实现语言的标准化 UML 配置文件。

UML 基本上是面向对象的,但在 Python 中,面向对象是可选的。如果代码不使用类,那么 UML 就没有什么可使用的了。Python 的动态类型也使得从源代码中推断变量的类型变得很棘手,这意味着 UML 工具很难识别关联。

在 EA 中,您可以在工具 -- 选项 -- 源代码工程下使用一些选项。在该页面上有“为操作返回和参数类型创建依赖项”,我认为默认情况下它是关闭的。但由于 EA 将所有 Python 类型视为var我认为这不会有太大影响。

每种语言都有更多选项,但我认为 Python 部分中没有任何内容会影响关系。

于 2015-08-28T09:10:39.500 回答