UML Class 图:3 类 之间的不一致

UML Class diagram: inconsitency between 3 classes

我似乎对简单的时间跟踪器有疑问。它的设置方式是用户可以跟踪与项目相关的点击时间或自由输入内容。这意味着 timetrack 对象总是有一个用户,但并不总是有一个项目。当我在连接到用户的数据库中创建时间跟踪对象,然后将与用户没有关联的项目连接到同一时间跟踪对象时,可能会发生不一致。

解决此问题的最佳方法是什么。我听说过定向关联,但我不知道它是如何解决问题的

class图:

我不明白你对TimeTrack的解释,但我认为你的建模问题只能通过添加完整性约束(在UML中称为"invariant")来解决,需要时间跟踪用户是时间跟踪项目用户集的成员。

这可以正式表示为附加到您的 TimeTrack class 的约束框中的 OCL 不变量,表达式如下:

self.project.users->includes( self.user)

除了 OCL,您还可以简单地附加一个包含以下内容的约束(注意附加到相关连接器):

{association can only exist if there is a connection between project and user}