首先需要花大約20分鐘來思考解決這個問題,如果對問題不是很熟悉,也可以在完成題目之后,找相關的資料翻閱(例如看UML類圖的基本情況,UML狀態圖的基本情況,然后結合這些信息 做一個自我評價,看這個題目的相關知識是否掌握透徹),然后再看分析與講解。在看分析與講解的時候,需要注意分析的思路比這道提的答案更重要一些。
可以在圖上標注:
首先,繼承關系是很具有代表性的,因為在整個題干描述中,只有一個地方存在繼承關系:
藝術家分為樂隊和歌手,歌手樂隊都屬于藝術家,因此藝術家和歌手樂隊直接存在繼承關系。
藝術家是父類,樂隊和歌手是子類。
所以A是藝術家。
那么D和C必然有一個是樂隊一個是歌手。那么根據關系來判斷,C和D直接是聚合關系,多個歌手聚合為一個樂隊,那么根據空心菱形的方向,空心菱形指向的是整體部分,所以C是樂隊,D是歌手。無論編寫和演奏,都是由藝術家來做的,那么編寫演奏的是什么呢?所以B是歌曲,歌曲是放在哪里的呢?根據描述,所以唱片包含了音軌,音軌包含了歌曲。E是音軌,F是唱片。因為唱片是整體部分
問題2:
根據題目中的描述,給出圖13-1中的1~6的處的多重度。
首先看C和D的關系:
D是樂隊,是由2名或2名以上的歌手組成,那么(2)就是2..*, 反過來,一名歌手對應的樂隊是怎么樣的呢?是不是一名歌手就對應一個樂隊呢?
歌手和樂隊的關系: 一名歌手可以不屬于任何一個樂隊,也可以屬于一個或多個樂隊。
那么(1)就是0..*
我們判斷多重度的時候,站在C的緯度來看一個樂隊對應多少歌手,然后確定2處多重度是什么,然后站在D的角度來看一個歌手對應多少個樂隊來確認1的位置的多重度。是從2個角度來看待問題和分析問題。
繼續看B E F之 間的關系,看B和E之間的關系,也就是歌曲和音軌的關系,一條音軌包含一首歌曲或為空。那么3位置是0..1,一首歌曲可以分布在多條音軌上,那么4位置是1..*(注意如果包含0那么就沒有意義了,所以不包含0)
一張唱片可以有多條音軌,也就是1條或多條。一條音軌只能在一張唱片上出現。那么5位置是1..*, 6位置是1
問題3:
圖13-1中缺少了一條關聯,請住處這條關聯兩端所對應的類以及每一端的多重度。
分析: 缺了關聯,要從整個題干來分析,題干的1 2段落的內容都表現在圖里了,繼續往下看,發現 一條音軌和上一條音軌或者下一條音軌需要創建聯系,關系是0-1,因為音軌如果有上一條或者下一條,那么就對應了上一條或下一條音軌,如果沒有的話,就是0的情況。所以答案是0-1的多重度,兩端都是音軌。
問題4:
根據圖13-2所示的播放器行為UML狀態圖,給出從關閉狀態到播放狀態所經過的最短事件序列。(假設電池一開始就是有電的)
根據圖,標注起點“關閉”,終點“播放”,可以知道一條路徑是按任意鍵,打開,歌曲選擇,播放。
另一條路徑是連接電腦,充電或同步歌曲,進入完成狀態,斷開連接,打開,歌曲選擇,播放,可以知道按任意鍵是最短的路徑。
根據做案例題,發現UML類型的題難度不高,可能出現的圖有2種,少的時候需要1種,多的時候3種。所以要求大家對UML常見的類型圖有一個基本的認識否則不知道這個圖表達的是什么意思,也就無從解決問題,但是對圖有一個基本的概念的認知,要解答這種問題本身技術難度并不高。