2016-04-26 84 views
1

我試圖繪製一個簡單的博客系統,其被顯示爲用例圖的對應UML類圖繪圖UML類圖如下: enter image description here用於博客系統

要繪製的類圖,應該有兩個類:用戶和博客。但是我很難畫出它們之間的關聯,因爲這兩個類之間的關係可能有兩個不同的多重性。例如,當用戶創建博客,類圖是這樣的: enter image description here

但在用戶觀看博客而言,多樣性是不同的,因爲在一定的博客可以通過不僅1用戶觀看,因此類圖應該是這樣的: enter image description here

那麼我怎樣才能解決這個問題的解決方案領域?

回答

0

除了托馬斯的回答:

  • 一個肯定的是UserBlog之間的結構性1對多的關係。但是這比用例分析更隱含的知識:你的系統必須跟蹤一個BlogUser誰創建它的鏈接,以便他以後更新和刪除。
  • 但是,許多博客系統也跟蹤User確實諮詢過的Blogs(衡量觀衆,跟蹤歷史等...)。所以你的系統可以跟蹤查看(但它也可以沒有)。

enter image description here

您可以顯示導航箭頭。但在你的系統中,導航肯定是雙向的。


更系統的方法來使用的情況下分析是使用entity- control-boundary方法,並使用以下的類的設計:

  • 實體:持久數據:BlogUser如上
  • 邊界:用例與參與者之間的鏈接:CreateOwnBlogViewBlog
  • 控制:調解兩個世界之間的類:ViewingSubsystemAuthoringSubsystem
1

類之間的關聯不顯示採取的操作。它只是表明它們是相關的。

CreateViewUser採取的不同操作。 Create很可能是指具有create方法的服務器,也可能是retrieveBlog,因此可以顯示(視圖將管理哪個)。

使用序列圖來顯示行爲部分(就像我在你的其他問題的答案中所建議的那樣)。

+0

對不起,以後的答覆,因爲我最近很忙。我認爲類之間的關聯應該由它們的屬性決定。例如,如果'Blog'類有一個名爲Owner的屬性來存儲創建它的'User',那麼'Create'關聯應該在那裏。如果'Blog'具有另一個名爲Visitors的集合屬性來存儲'User'集合已經查看它,那麼'View'關聯也是有意義的。 – Ivan

+0

你沒有按照他們應該的方式使用關聯。他們不是關於行爲。我可以推薦閱讀關於關聯的Geerts博客:https://bellekens.com/2011/08/10/uml-best-practice-attribute-or-association/ –

+0

您給出的文章沒有向我明確,因爲我認爲它的可讀性差,但我們不需要討論太多,應該回到主題。根據我的理解,目前是否應該存在某種關聯關係實際上取決於系統需求。在我的情況下,如果系統需要通過諸如將'User'(訪問者)集合存儲在'Blog'中的方式跟蹤'User'視圖,那麼查看關聯是有意義的。否則它不應該存在。 – Ivan