我試圖繪製一個簡單的博客系統,其被顯示爲用例圖的對應UML類圖繪圖UML類圖如下: 用於博客系統
要繪製的類圖,應該有兩個類:用戶和博客。但是我很難畫出它們之間的關聯,因爲這兩個類之間的關係可能有兩個不同的多重性。例如,當用戶創建博客,類圖是這樣的:
但在用戶觀看博客而言,多樣性是不同的,因爲在一定的博客可以通過不僅1用戶觀看,因此類圖應該是這樣的:
那麼我怎樣才能解決這個問題的解決方案領域?
我試圖繪製一個簡單的博客系統,其被顯示爲用例圖的對應UML類圖繪圖UML類圖如下: 用於博客系統
要繪製的類圖,應該有兩個類:用戶和博客。但是我很難畫出它們之間的關聯,因爲這兩個類之間的關係可能有兩個不同的多重性。例如,當用戶創建博客,類圖是這樣的:
但在用戶觀看博客而言,多樣性是不同的,因爲在一定的博客可以通過不僅1用戶觀看,因此類圖應該是這樣的:
那麼我怎樣才能解決這個問題的解決方案領域?
除了托馬斯的回答:
User
和Blog
之間的結構性1對多的關係。但是這比用例分析更隱含的知識:你的系統必須跟蹤一個Blog
和User
誰創建它的鏈接,以便他以後更新和刪除。User
確實諮詢過的Blogs
(衡量觀衆,跟蹤歷史等...)。所以你的系統可以跟蹤查看(但它也可以沒有)。您可以顯示導航箭頭。但在你的系統中,導航肯定是雙向的。
更系統的方法來使用的情況下分析是使用entity- control-boundary方法,並使用以下的類的設計:
Blog
和User
如上CreateOwnBlog
和ViewBlog
ViewingSubsystem
和AuthoringSubsystem
類之間的關聯不顯示採取的操作。它只是表明它們是相關的。
Create
和View
是User
採取的不同操作。 Create
很可能是指具有create
方法的服務器,也可能是retrieveBlog
,因此可以顯示(視圖將管理哪個)。
使用序列圖來顯示行爲部分(就像我在你的其他問題的答案中所建議的那樣)。
對不起,以後的答覆,因爲我最近很忙。我認爲類之間的關聯應該由它們的屬性決定。例如,如果'Blog'類有一個名爲Owner的屬性來存儲創建它的'User',那麼'Create'關聯應該在那裏。如果'Blog'具有另一個名爲Visitors的集合屬性來存儲'User'集合已經查看它,那麼'View'關聯也是有意義的。 – Ivan
你沒有按照他們應該的方式使用關聯。他們不是關於行爲。我可以推薦閱讀關於關聯的Geerts博客:https://bellekens.com/2011/08/10/uml-best-practice-attribute-or-association/ –
您給出的文章沒有向我明確,因爲我認爲它的可讀性差,但我們不需要討論太多,應該回到主題。根據我的理解,目前是否應該存在某種關聯關係實際上取決於系統需求。在我的情況下,如果系統需要通過諸如將'User'(訪問者)集合存儲在'Blog'中的方式跟蹤'User'視圖,那麼查看關聯是有意義的。否則它不應該存在。 – Ivan