UML(Unified Modeling Language),統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言,是為軟件系統(tǒng)建立可視化模型。主要包括用例圖、時序圖、協(xié)作圖、活動圖、部署圖、構(gòu)件圖、類圖、狀態(tài)圖等等。
之前有寫過UML時序圖:產(chǎn)品經(jīng)理必備之UML時序圖
一、用例圖定義
用例圖(Use Case Diagrame)是UML的一種,主要用來描述用戶、需求、系統(tǒng)功能之間的關(guān)系,能夠充分展示一個外部用戶能夠觀察的系統(tǒng)功能模型圖,以一種可視化的直觀方式理解系統(tǒng)的功能需求,以便使系統(tǒng)用戶更容易理解這些元素的用途,也便于開發(fā)人員最終實現(xiàn)這些元素。
二、用例圖繪制目的
用例圖是跳出當(dāng)前系統(tǒng),站在用戶的角度去看系統(tǒng),思考系統(tǒng)功能,這樣我們能更加理解業(yè)務(wù),表達(dá)清楚需求。從用戶的視角,我們不會使用專業(yè)術(shù)語去進(jìn)行業(yè)務(wù)的溝通,可以做到真正以用戶為中心去獲取需求,轉(zhuǎn)化為產(chǎn)品服務(wù)。
用例圖可以幫助我們更全面的考慮系統(tǒng)內(nèi)事物之間的互相影響,關(guān)注整體的運行規(guī)律,而不是只考慮個別事物的情況。
三、用例圖的組成元素


1、參與者:是系統(tǒng)外部的一個實體,它以某種方式參與了用例的執(zhí)行過程。參與者不一定是人,也可以是部門,也可以是外部系統(tǒng),也可以是其他事物。通常用人形圖標(biāo)表示。
2、用例:是對系統(tǒng)的用戶需求(主要是功能需求)的描述,用例表達(dá)了系統(tǒng)的功能和所提供的服務(wù),說明了系統(tǒng)是如何與最終用戶或其它系統(tǒng)互動,也就是誰可以用系統(tǒng)做什么,從而獲得一個明確的業(yè)務(wù)目標(biāo)。通常用橢圓表示。
用例注意事項:
? ??用例粒度的確定,沒有標(biāo)準(zhǔn),只能根據(jù)實際情況分析。一個大型系統(tǒng),可能會有上百個用例,一個小產(chǎn)品,也許只有幾個用例。
? ??一個用例是一個完整的使用場景,不是零散的動作步驟。比如,拿起手機打電話是個完整的場景,拿起手機只是一個步驟。
? ??一個用例有一個明確、獨立的目標(biāo),如果一個用例包括多個目標(biāo),則可再逐層細(xì)化出子用例。
3、系統(tǒng)邊界:將系統(tǒng)內(nèi)外分開,參與者在外面,用例在里面。邊界內(nèi)的用例,就是系統(tǒng)要實現(xiàn)的事情。通常用矩形框表示。
4、關(guān)系:
(1)關(guān)聯(lián)關(guān)系:用一條實線表示,這條實線一般有三種形式:無箭頭、有指向用例的箭頭、有指向執(zhí)行者的箭頭。箭頭的方向代表了數(shù)據(jù)流向或誰啟動誰。
(2)歸納(泛化)關(guān)系:表示參與者與參與者之間、用例與用例之間的關(guān)系。一個用例可以被特別列舉為一個或多個子用例,這被稱為用例泛化。
? ? ? ? 用帶空心箭頭的實線表示,箭頭指向被泛化的用例,即子用例指向父用例,泛化是從下到上的過程。(子用例繼承父用例所有的結(jié)構(gòu)、行為和關(guān)系,是父用例的一種特殊形式。)
(3)包含關(guān)系:表示用例與用例之間的關(guān)系,其中一個用例(父用例)的行為包含了另一個用例(子用例)的行為。
? ? ?用虛線箭頭+<>表示,箭頭指向被包含的用例。一般是父用例包含很大的范圍,專門抽出子用例來著重表達(dá),又或者是復(fù)用用例。
(4)擴展關(guān)系:表示用例與用例之間的關(guān)系,是在特定條件下,由擴展用例指向被擴展用例。
? ? ? 用虛線箭頭+<<extend>>字樣,箭頭指向被擴展的用例。拓展用例是在特定條件出現(xiàn)時,才會被執(zhí)行的用例。
四、注意
1、不是每個需求都要畫用例圖,要視情況而定,簡單的需求完全可以不用畫。
2、畫圖是為了表達(dá)、傳遞信息,當(dāng)我們畫用例圖時,不管畫的多么酷炫,本質(zhì)都是在分析業(yè)務(wù)場景、系統(tǒng)功能性需求,并描述出來。
對產(chǎn)品經(jīng)理感興趣的朋友,可以移步“需求管理”,期待共同交流。