带有反向引用的UML类图

时间:2018-02-15 07:13:21

标签: python oop uml aggregation class-diagram

我为我的Python项目创建了一个UML类图,但我没有相关经验(我不是专业程序员)。

首先,这是类图:

Class Diagram

中心或根对象是Simulation对象,没有其他任何东西存在。许多对象具有对模拟对象的反向引用,例如Atoms或Cell。 xml_hanlder是xml-form中的inputdata。许多对象都直接反向引用这个原始的xml-inputdata,例如Atoms和Cell。当然,他们也可以通过Simulation对象访问xml_handler-object,因为他们有一个对它的引用。

所以我的问题是:

  1. 我是否在UML图中正确建模了反向引用?
  2. 由于不需要这样的反向引用,编码风格是不是很糟糕?它使UML图变得混乱。
  3. 实际上我的图表中有更多的对象也有xml_handler的后向引用,但我没有包含它以避免过多的混乱。是否可以将它们排除(图表仍然正确)?
  4. Constraints对象有一个对Simulation对象的反向引用,我是否正确地将其建模为聚合关系?
  5. 您还有其他建议或意见吗?

1 个答案:

答案 0 :(得分:2)

与往常一样,这取决于你究竟在做什么。

如果您对域建模,则应该完全排除数据处理程序。反向引用也无关紧要,可以忽略不计。

如果你要记录你的代码,那么显示数据处理程序和反向引用都很好,因为这些也是系统操纵的元素。

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

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

这同样适用于Constrain和Simulation之间的反向引用。