1 前言
最近過年因為新冠病毒的肆虐各公司都開始放長假了角虫,初步估計都是要出了元宵才能回成都上班滞诺,雖然返崗之前要在家辦公(上班),但是還是得做點欠著的事情舍,其中比較重要的一個就是我的畢業(yè)設(shè)計嘞类少,一兩個月就要交初稿了,但是我還沒開始嘞
由于畢業(yè)設(shè)計需要用到各種UML圖吕座,所以就趁這個機會好好復習和總結(jié)一下軟件工程課程有關(guān)UML圖的相關(guān)內(nèi)容吧匣沼,畢竟這個在軟件設(shè)計和分析的流程中還是占據(jù)比較重要的地位,也是軟件分析的利器雷酪,能幫助我們快速分析我們要做的事情淑仆,也能使我們要做的東西一目了然,接下來就直接開始總結(jié)和復習吧哥力,就以我的畢業(yè)設(shè)計——一個簡單的在線考試系統(tǒng)為例開始我們的學習之旅
2 什么是用例圖
用例圖是指由參與者(Actor)蔗怠、用例(Use Case)墩弯,邊界以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的視圖。
用例圖(User Case)是外部用戶(被稱為參與者)所能觀察到的系統(tǒng)功能的模型圖寞射。用例圖是系統(tǒng)的藍圖渔工。用例圖呈現(xiàn)了一些參與者,一些用例桥温,以及它們之間的關(guān)系引矩,主要用于對系統(tǒng)、子系統(tǒng)或類的功能行為進行建模侵浸。
例如我們在線考試系統(tǒng)的業(yè)務(wù)用例圖:
3 用例圖的構(gòu)成要素
簡單來說就是:用例圖是由參與者(Actor)旺韭、用例(Use Case)、系統(tǒng)邊界掏觉、箭頭組成区端,用畫圖的方法來完成的一個表達系統(tǒng)功能的圖示。
接下來分別介紹其成分履腋。
3.1 參與者
參與者(Actor)是指存在于系統(tǒng)外部并直接與系統(tǒng)進行交互的人珊燎、系統(tǒng)、子系統(tǒng)或類的外部實體的抽象遵湖。
簡單來說就是:一個系統(tǒng)的使用者悔政,可能涉及的角色就是一個參與者
比如說我們在線考試系統(tǒng)中的老師和學生就分別是兩個參與者
每個參與者可以參與一個或多個用例,每個用例也可以有一個或多個參與者延旧。
在用例圖中使用一個人形圖標來表示參與者谋国,參與者的名字寫在人形圖標下面。
3.2 用例
簡單來說就是:用例是對包括變量在內(nèi)的一組動作序列的描述迁沫,系統(tǒng)執(zhí)行這些動作芦瘾,并產(chǎn)生傳遞特定參與者的價值的可觀察結(jié)果。
簡單打個比方集畅,比如說我們考試系統(tǒng)中一個老師可以登錄系統(tǒng)近弟,那么登錄系統(tǒng)這個動作就是一個用例,當然老師還可以做一些其他的事挺智,可以發(fā)布考試祷愉,創(chuàng)建試卷,那么發(fā)布考試和創(chuàng)建試卷這兩個行為也分別是老師的兩個用例
3.3 系統(tǒng)邊界
系統(tǒng)邊界是用來表示正在建模系統(tǒng)的邊界赦颇。邊界內(nèi)表示系統(tǒng)的組成部分二鳄,邊界外表示系統(tǒng)外部。系統(tǒng)邊界在畫圖中用方框來表示媒怯,同時附上系統(tǒng)的名稱订讼,參與者畫在邊界的外面,用例畫在邊界里面扇苞。因為系統(tǒng)邊界的作用有時候不是很明顯欺殿,所以我個人理解寄纵,在畫圖時可省略。
4 如何構(gòu)建較完整的用例圖
4.1 如何識別用例
要創(chuàng)建用例祈餐,我們需要分析哪些可以作為用例擂啥,如何識別,可以從以下幾點來確定用例:
- 通過參與者分析:
- 參與者希望系統(tǒng)能夠提供什么樣的功能帆阳?
- 參與者是否會讀取、創(chuàng)建屋吨、修改蜒谤、刪除、存儲系統(tǒng)的某種信息至扰?如何完成這些操作鳍徽?
- 參與者是否會將外部的某些事件通知給系統(tǒng)?
- 通過系統(tǒng)分析:
- 系統(tǒng)中發(fā)生的事件是否通知參與者敢课?
- 是否存在影響系統(tǒng)的外部事件阶祭?
4.2 用例的粒度
用例的粒度指的是用例所包含的系統(tǒng)服務(wù)或功能單元的多少。用例的粒度越大直秆,用例包含的功能越多濒募,反之則包含的功能越少。
簡單來說就是:如果用例的粒度很小圾结,得到的用例數(shù)就會太多瑰剃。反之,如果用例的粒度很大筝野,那么得到的用例數(shù)就會很少晌姚。
比如在我們的考試系統(tǒng)中:我們的老師可以對試卷進行管理,那么展示出來的粒度較大的用例可以是這樣:
如果我們按照具體的操作把它抽象成多個用例(粒度變行埂)挥唠,它也可以是這樣的:
它展示的系統(tǒng)需求和單個用例是完全一樣的。
4.3 用例之間的關(guān)系
用例之間的關(guān)系包括以下幾種:
- 包含
- 擴展
- 泛化
1.包含
包含關(guān)系指用例可以簡單地包含其他用例具有的行為焕议,并把它所包含的用例行為作為自身行為的一部分宝磨。在UML中,包含關(guān)系是通過帶箭頭的虛線段加<>字樣來表示号坡,箭頭由基礎(chǔ)用例(Base)指向被包含用例(Inclusion)懊烤。