【问题标题】:Drawing UML class diagram for a blogging system为博客系统绘制 UML 类图
【发布时间】:2016-04-26 13:48:17
【问题描述】:

我正在尝试绘制一个简单博客系统用例图对应的UML类图,显示如下:

要绘制类图,应该有两个类:User 和Blog。但是我很难画出它们之间的关联,因为这两个类之间的关系可能有两种不同的多样性。例如,当用户创建博客时,类图如下所示:

但是对于查看博客的用户而言,多样性是不同的,因为某个博客不仅可以被 1 个用户查看,因此类图如下所示:

那么我该如何在解决方案域中解决这个问题呢?

【问题讨论】:

    标签: class uml class-diagram


    【解决方案1】:

    类之间的关联不显示所采取的操作。它只是表明它们是相关的。

    CreateViewUser 采取的不同操作。 Create 很可能是指具有create 方法和retrieveBlog 的服务器,因此可以显示(视图将管理它)。

    使用序列图显示行为部分(就像我在回答您的其他问题时建议的那样)。

    【讨论】:

    • 最近很忙,抱歉稍后回复。我认为类之间的关联应该由它们的属性决定。例如,如果Blog 类有一个名为 Owner 的属性来存储创建它的User,那么'Create' 关联应该在那里。并且如果Blog 有另一个名为“访客”的集合属性来存储User 已查看的集合,那么View 关联也有意义。
    • 您没有按照应有的方式使用关联。它们与行为无关。我可以推荐阅读 Geerts 关于关联的博客:bellekens.com/2011/08/10/…
    • 你给的那篇文章我觉得可读性差,我看不清楚,但我们不需要过多讨论,应该回到正题。在我目前的理解中,是否应该有一定的关联实际上取决于系统要求。如果在我的情况下,系统需要通过将User(访问者)的集合存储在Blog 中等方式来跟踪BlogUser 视图,那么查看关联是有意义的。否则它不应该存在。
    • 看看 Christophe 的回答。
    【解决方案2】:

    除了托马斯的回答:

    • 可以肯定的是UserBlog 之间的结构性一对多关系。但这是比用例分析更隐含的知识:您的系统必须跟踪Blog 和创建它的User 的链接,以便他以后也可以更新和删除。
    • 然而,许多博客系统也会跟踪User 咨询过的Blogs(用于衡量受众、跟踪历史等...)。因此,您的系统也可以跟踪查看(但它也可以在没有的情况下工作)。

    您可以显示导航箭头。但是在您的系统中,导航肯定是双向的。


    用例分析更系统的方法是使用entity- control-boundary 方法,并使用以下类进行设计:

    • 实体:持久数据:BlogUser 同上
    • 边界:用例和参与者之间的链接:CreateOwnBlogViewBlog
    • 控制:两个世界之间的中介类:ViewingSubsystemAuthoringSubsystem

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多