带反向引用的 UML class 图
UML class diagram with back-references
我已经为我的 Python 项目创建了一个 UML class 图,但我没有这方面的经验(而且我不是专业程序员)。
首先,这里是 class 图:
中心对象或根对象是 Simulation 对象,没有它其他任何东西都不存在。许多对象都有对模拟对象的反向引用,例如 Atoms 或 Cell。 xml_hanlder 是 xml 形式的输入数据。许多对象有一个直接向后引用到这个原始的 xml-inputdata,例如 Atoms 和 Cell。当然,他们也可以通过 Simulation 对象访问 xml_handler-object,因为他们有对它的引用。
所以我的问题是:
- 我是否在 UML 图表中正确地建模了反向引用?
- 拥有这样的反向引用是不是一种糟糕的编码风格,因为它们并不是真正需要的?它使 UML 图变得混乱。
- 实际上我的图表中还有更多对象也有对 xml_handler 的反向引用,但我没有包括它以避免太多混乱。可以将它们排除在外吗(图表仍然正确)?
- Constraints 对象具有对 Simulation 对象的反向引用,我是否已将其正确建模为聚合关系?
- 您还有其他建议或意见吗?
和往常一样,这取决于您的建模对象。
如果您正在为域建模,您可能应该完全排除数据处理程序。反向引用也无关紧要,可以忽略。
如果您正在记录您的代码,同时显示数据处理程序和反向引用就很好,因为它们也是由系统操纵的元素。
如果您有直接关系,反向引用将是向后导航。由于它是间接的,您可能希望将 xml 中包含的所有元素显示为共享聚合,其中 xml-handler 是主端(带有菱形)。在两端将其标记为派生(使用斜线)。标记从对象到包含它的处理程序的可导航性。
如果您只想显示引用而不考虑被包含的实际情况,请使用简单关联而不是共享聚合。您还应该将其标记为派生。
这同样适用于约束和模拟之间的反向引用。
我已经为我的 Python 项目创建了一个 UML class 图,但我没有这方面的经验(而且我不是专业程序员)。
首先,这里是 class 图:
中心对象或根对象是 Simulation 对象,没有它其他任何东西都不存在。许多对象都有对模拟对象的反向引用,例如 Atoms 或 Cell。 xml_hanlder 是 xml 形式的输入数据。许多对象有一个直接向后引用到这个原始的 xml-inputdata,例如 Atoms 和 Cell。当然,他们也可以通过 Simulation 对象访问 xml_handler-object,因为他们有对它的引用。
所以我的问题是:
- 我是否在 UML 图表中正确地建模了反向引用?
- 拥有这样的反向引用是不是一种糟糕的编码风格,因为它们并不是真正需要的?它使 UML 图变得混乱。
- 实际上我的图表中还有更多对象也有对 xml_handler 的反向引用,但我没有包括它以避免太多混乱。可以将它们排除在外吗(图表仍然正确)?
- Constraints 对象具有对 Simulation 对象的反向引用,我是否已将其正确建模为聚合关系?
- 您还有其他建议或意见吗?
和往常一样,这取决于您的建模对象。
如果您正在为域建模,您可能应该完全排除数据处理程序。反向引用也无关紧要,可以忽略。
如果您正在记录您的代码,同时显示数据处理程序和反向引用就很好,因为它们也是由系统操纵的元素。
如果您有直接关系,反向引用将是向后导航。由于它是间接的,您可能希望将 xml 中包含的所有元素显示为共享聚合,其中 xml-handler 是主端(带有菱形)。在两端将其标记为派生(使用斜线)。标记从对象到包含它的处理程序的可导航性。
如果您只想显示引用而不考虑被包含的实际情况,请使用简单关联而不是共享聚合。您还应该将其标记为派生。
这同样适用于约束和模拟之间的反向引用。