【问题标题】:class diagram without relationships after python reverse engineeringpython逆向工程后没有关系的类图
【发布时间】:2015-08-28 00:27:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: python reverse-engineering class-diagram enterprise-architect visual-paradigm


    【解决方案1】:

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

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

    【讨论】:

    • 是的,理解和扫描代码也是我想过的解决方案,只是我不习惯 python,因为我没有太多时间寻找另一个更快的解决方案。像一个专门用于那个或什么的工具..
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 是的,这正是我所想的。uml 是 OOP,python 也是,当我骗取类时,某些类之间肯定存在关系。但因为我不习惯 python,我不有足够的时间学习它,我无法自己扫描代码并尝试识别它们。
    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多