使用 UML 创建查看注册表

Creating a viewing registry using UML

我想创建一个用户查看视听内容时间的注册表。我创建了下图,想知道这是否是实现它的好方法。
注意:AudiovisualContent 连接到 DateTimeStamp 只是作为一种记录何时添加到平台的方式。

图表是否正确,是否有意义?

该图在形式上似乎是正确的,并且具有非常清楚 DateTimeStamp.

的多重性和角色名称的优点

很难说这种方法对于“注册表”是否正确。但乍一看这是有道理的;我从图中了解到:

  • 一个Profile(用户?)可以做几个Viewing,每个Viewing大约是一个Audiovisual Content。反之,一个Audiovisual Content可以是多个Viewing的主题,每个Viewing由一个Profile
  • 执行
  • 每个 Viewing(给定用户的给定内容)都有一个 DateTimeStamp
  • 每个 Audiovisual Content 都有一个 DateTimeStamp 对应于添加内容的时刻。
  • 如果用户在不同时刻多次观看同一内容,则每次观看可能会有不同的评分,并且评分是可选的。

我可以从多重性进一步推断,时间戳对应于观看行为的开始(因为如果它是观看的结束,则观看开始时不会有时间戳,所以多重性应该是 0..1).

关注领域

根据您的图表,DateTimeStamp 是 class。在 Viewing 一侧和 Audiovisual Content 一侧具有 1 多重性这一事实意味着每个时间戳都必须与两者相关联。我怀疑这是正确的。

您可以考虑改用 0..1,这将使时间戳仅与两者之一或 none 相关联。但是时间戳仍然可能同时具有两者,并且它们之间存在不一致的风险。

就我个人而言,我想 * 澄清许多查看和上传可能同时发生。我可能会将其显示为 属性 -addedOn: DateTimeStamp-viewedOn:DateTimeStamp.

实际上,时间戳很可能是一个值对象。然后你可以考虑把它变成 «dataType»;将其显示为 属性 可能看起来更直观。

无关: 虽然您当前将 Viewing 建模为 class 的方式非常好,但您可能有兴趣展示是许多 Profile 和许多 Audiovisual Content

之间的关联 class