Python 带反向引用的UML类图

Python 带反向引用的UML类图,python,oop,uml,aggregation,class-diagram,Python,Oop,Uml,Aggregation,Class Diagram,我已经为我的Python项目创建了一个UML类图,但我没有这方面的经验(而且我不是专业程序员) 首先,这里是类图: 中心对象或根对象是模拟对象,没有它就不存在其他对象。许多对象都有对模拟对象的反向引用,例如原子或细胞。xml\u handle是xml形式的输入数据。许多对象直接反向引用原始xml inputdata,例如Atoms和Cell。当然,他们也可以通过Simulation对象访问xml\u handler-object,因为他们有对它的引用 因此,我的问题是: 我是否在UML图中正确

我已经为我的Python项目创建了一个UML类图,但我没有这方面的经验(而且我不是专业程序员)

首先,这里是类图:

中心对象或根对象是模拟对象,没有它就不存在其他对象。许多对象都有对模拟对象的反向引用,例如原子或细胞。xml\u handle是xml形式的输入数据。许多对象直接反向引用原始xml inputdata,例如Atoms和Cell。当然,他们也可以通过Simulation对象访问xml\u handler-object,因为他们有对它的引用

因此,我的问题是:

  • 我是否在UML图中正确地建模了反向引用
  • 有这样的反向引用是不是很糟糕的编码风格,因为它们不是真正需要的?它扰乱了UML图
  • 实际上,在我的图表中还有更多的对象也有这样一个对xml_处理程序的反向引用,但为了避免太多的混乱,我没有包括它。把它们删掉(图表仍然正确)可以吗
  • 约束对象具有对模拟对象的反向引用,我是否正确地将其建模为聚合关系
  • 你还有其他建议或意见吗

  • 和往常一样,这取决于你到底在做什么

    如果要对域进行建模,可能应该完全排除数据处理程序。此外,反向引用是不相关的,可以忽略

    如果您正在编写代码文档,那么显示数据处理程序和反向引用是可以的,因为它们也是由系统操纵的元素

    如果您有直接关系,反向引用将是向后导航。因为它是间接的,所以您可能希望将xml中包含的所有元素显示为共享聚合,其中xml处理程序是主端(带菱形)。在两端将其标记为衍生(用斜线)。标记从对象到包含它的处理程序的可导航性

    如果您只想显示引用,而不想涉及被包含的实际情况,请使用简单的关联,而不是共享聚合。您还应该将其标记为派生


    这同样适用于约束和模拟之间的反向参考。

    通常,这取决于建模的具体内容

    如果要对域进行建模,可能应该完全排除数据处理程序。此外,反向引用是不相关的,可以忽略

    如果您正在编写代码文档,那么显示数据处理程序和反向引用是可以的,因为它们也是由系统操纵的元素

    如果您有直接关系,反向引用将是向后导航。因为它是间接的,所以您可能希望将xml中包含的所有元素显示为共享聚合,其中xml处理程序是主端(带菱形)。在两端将其标记为衍生(用斜线)。标记从对象到包含它的处理程序的可导航性

    如果您只想显示引用,而不想涉及被包含的实际情况,请使用简单的关联,而不是共享聚合。您还应该将其标记为派生


    这同样适用于约束和模拟之间的反向参考。

    非常感谢您的帮助性回答。非常感谢您的帮助性回答。