亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 技術開發 > 正文

UML系列內容之四:用例圖

2023-06-17 18:00:47
字體:
來源:轉載
供稿:網友

這一季我們來了解一下UML中的用例圖。

1 什么是用例圖

在開發系統之前,最重要的工作是獲取用戶的需求,而在用戶需求中最重要的是關于用戶提出的系統功能性需求,我們可以借助用例圖來可視化的表達用戶的需求。

用例圖(Use Case Diagram)是由參與者(Actor)、用例(Use Case)以及它們之間的關系構成的用于描述系統功能的視圖,是被稱為參與者的外部用戶所能觀察到的系統功能的模型圖

用例圖常在需求分析階段使用。

2 用例圖的構成

用例圖中主要的元素包括參與者、用例以及各元素之間的關系。

除此之外,用例圖中還可以包含注解和約束。

3 參與者

3.1 參與者的概念

參與者(Actor)是與主體系統交互的外部實體。

參與者可以是系統外部的人、子系統、其它系統等。

每個參與者實際上是一個角色集。

在UML中,參與者使用使用人形的圖形表示,并給這個參與者賦予一個名字。

如下圖中的“讀者”即是圖書館借閱系統中的一個參與者。

UML用例圖01

參與者應位于系統邊界之外,而不是系統的一部分。

3.2 如何識別參與者

在進行用例建模時,確定參與者是用例圖建模的第一步。那么,如何確定系統的參與者呢?我們可以從以下思路進行考慮:

(1)系統的服務對象

如圖書館借閱系統中的讀者;

(2)為其提供支持以完成工作的人

如圖書館借閱系統中的圖書館工作人員,他需要借助系統幫助讀者完成借閱、還書、催還工作。

(3)系統的維護者:負責安裝、維護和管理系統的人員,這種情況下,需要系統確實提供了相關功能以幫助這類人員完成安裝、維護和管理工作。

(4)外部設備:需要向外部設備傳輸信息或從外部設備讀入信息,如讀卡器。

(5)其它系統或子系統:如借閱系統中的財務系統,財務系統并非借閱系統的功能,但借閱系統需要向其傳遞信息以完成超期罰款工作。

(6)時間:在預定的時刻,有特定事件自動發生,如自動備份、定時提醒等。

(7)特定事件:如外賣系統中自動接單,是由訂單產生事件推動的。

在識別參與者時,要注意以下幾點:

參與者位于系統的外部,而不是系統的一部分;

參與者通過系統邊界與系統進行交互;

參與者的圖標雖然使用人形圖標來表示,但參與者不一定是人,也可能是其它子系統、其它系統、時間、溫度等其它因素

3.3 參與者間的關系

參與者間的主要關系是泛化。泛化關系是一般和特殊(具體)之間的關系。

在泛化關系中一個參與者的抽象描述可以被一個或多個具體的參與者所共享。

下圖描述了圖書館借閱系統中參與者之間的泛化關系。

UML參與者的泛化

上圖中,讀者是一個“一般”參與者,下面的教職工、學生、教職工家屬等是“具體”的參與者。

泛化使用實線空心三角形箭頭來表示,箭頭指向更一般的參與者,箭尾端在“具體”參與者這端。

參與者泛化可以理解為:“具體”參與者是一種“一般”參與者,如教職工是一種讀者。

在參與者泛化中,表示“一般”參與者可執行的用例,作為“具體”(“特殊”)參與者也可以執行。

4 用例

4.1 用例的概念

用例是參與者可以感受到的系統服務或功能單元。它定義了系統要實現的一個目標。用例只定義系統的一個行為,而不顯示系統的內部結構。

用例最大的優點是站在用戶的角度描述系統功能。

在圖形上,用例使用實線橢圓來表示,并在橢圓內部或下部標注用例的名稱:

UML中用例的表示

4.2 識別用例

可以通過以下要點來識別用例:

(1)參與者需要系統提供哪些功能,以支持他的工作?

(2)參與者是否需要查詢系統中的某些信息?

(3)參與者是否需要改變系統中的某些信息,如創建、修改和刪除操作?

(4)系統發生的特定事件或狀態的改變是否需要通知參與者?

(5)系統哪些外部事件會促使系統執行相關功能以應對?

(6)系統是否提供相關功能以幫助維護人員來維護系統?

4.3 用例識別的要點

(1)識別出的用例應該反應出系統的目標,即“要做什么”,而非“怎么做”,就是說用例不是系統實現的細節;

(2)從參與者(用戶)的角度出發定義用例,而非系統的角度。

(3)用例應為參與者提供有價值的結果,而非動作的集合;

(4)避免陷入功能分解,步驟分解;

(5)每個參與者都應該有可執行的用例,每個用例都應關聯至少一個參與者

4.4 命名用例

在確定好系統的用例后,需要給各個用例進行命名。

用例的命名需要站在用戶的角度描述參與者達到的目標??梢允褂孟率雒绞剑?/p>

(狀語)動詞+(定語)賓語


也就是說,用例的名稱應該是動賓短語的格式。

如選課、借閱圖書、訂購貨物、使用信用卡支付。

4.5 用例的粒度

用例粒度是指用例細化或綜合系統功能的程度。也可以說用例所包含的系統服務或功能單元的多少。用例粒度過粗或過大,則用例包含的系統功能就越多,反之越少。

用例粒度過粗,不便于理解系統,粒度過細會使用例模型過于龐大,給設計帶來困難。

用例粒度過細,可能會陷入功能分解,如:

用例粒度過細

實際上,系統中很多業務都包含這種增、刪、改、查的操作,這樣做并不能為用戶提供任何有意義的目標,反而會忽略了用戶的真正目的。

上面這種“增刪改查”無非就是用戶管理,這才是參與者的真實目的。使用下面這種方式處理上面的用例也許會更好一些:

用例粒度過細時的處理

管理用戶這種用例體現了系統管理員的一個目標或任務。如果非要添加上增刪改查,可以使用下面的方式來表達會更好一些。

用例過細時的一個處理

在用例建模中常犯的另外一個錯誤是把步驟當用例。

如下面這個,似乎挺完美,但是很明顯是把操作步驟當用例了。

把步驟當用例

上面這些步驟,無非就是完成用戶這個參與者的目標:注冊。因此,應該改成下面這個樣子:

合理的用例

在用例建模中,常犯的第3個錯誤是把系統活動當用例。

把系統活動當用例

上面這個用例圖中,建立連接對象、建立命令對象和執行SQL語句是系統內的活動,是用戶無法感知的,不是用戶的目的,用戶也不關心。所以這種用例圖是不準確的。

用例建模中常犯的第4個錯誤是使用系統觀點來命名用例。

用例應從用戶的角度去考慮

上面左右這兩個用例圖,哪個畫得更好呢?

很明顯,右邊的比左邊的要好,因為右邊的是從用戶的角度命名的用例,而左側的用例是從系統的角度對用例進行命名,用戶看到后會感到莫名其妙的。

4.6 用例規約

用例圖在總體上描述了用戶的功能需求(系統提供的功能或服務),但對于每個用例還要進行詳細的描述,以便讓人知道這個用例具體要做什么,這就是用例規約。也就是說,用例模型實質上是由用例圖和對每一個用例的詳細描述(用例規約)組成的。

一個用例規約(use case specification)應該包含以下內容:

(1)用例的標識與名稱;

(2)用例涉及到的參與者;

(3)用例的簡要說明;

(4)相關的其它用例;

(5)用例執行的前置條件

(6)基本事件流;

(7)備選事件流;

(8)用例執行的后置條件;

(9)其它信息,如非功能性需求、設計約束、用例審核狀態、編制者、修改記錄等。

下面是一個用例文檔中對借閱圖書用例的一個描述情況。

用例規約

5 用例之間的關系

用例之間的關系主要包括泛化、包含和擴展三種。

5.1 泛化關系

當多個用例擁有相似的屬性或行為時,我們可以將它們的共性抽象為父用例,而其它用例作為泛化關系的子用例。子用例繼承父用例中的屬性和行為。

用例的泛化關系可以理解為同一業務目的的不同實現路徑。

泛化(Generalization)關系在圖形上使用帶空心三角形箭頭的實現表示,箭頭由子用例指向父用例。

用例的泛化

上面這個例子中,“使用微信支付”和“使用支付寶支付”是“支付”的子用例。在父用例“支付”中并不提供具體的支付方式,只提供支付必須的屬性和接口,而在其子用例中實現具體的支付功能。

5.2 包含關系

在系統建模過程中,有些功能在不同業務情境中需要反復使用。這些反復使用的功能可以單獨剝離出來形成一個單獨的用例,而在執行相關功能時,可以把剝離出來的公共功能再包含到主流程中去。用例的包含關系就可以描述這種情形。另外,如果一個基本用例的功能過多時,也可以把其拆解成多個小的用例。

被包含的用例稱作提供者用例,包含其它用例的用例稱作客戶用例

在UML中,包含(include)關系使用帶<<include>>構造型的虛線箭頭表示,箭頭由基本用例(包含用例/客戶用例)指向被包含的用例(提供者用例)。

用例的包含關系

下面是一個具體的例子:

用例包含關系案例

在這個例子中,讀者要預借圖書,他需要執行查詢圖書用例,才能執行預借圖書,所以查詢圖書用例將被包含到預借圖書用例中來,同時,讀者要執行預借圖書時,前提他必須已經登錄到系統中,系統已經保存了他的登錄狀態才能執行預借操作,所以驗證身份用例也將被包含到預借圖書用例中來。查詢圖書即是一個讀者要求具有的一個基本功能,又是其它功能的一個必要操作過程。驗證身份不僅在預借圖書時要用到,還要在執行如查詢借閱記錄、繳納罰款時等用到的一個功能,把驗證身份單獨提出來形成一個用例比較合適。

5.3 擴展關系

基本用例提供擴展點,在擴展點中可以添加新的行為,擴展用例提供了一組插入片段,這些片段能插入到基本用例的擴展點上。

基本用例僅提供擴展點,而不必知道擴展用例的任何細節。

基本用例即使沒有擴展用例也是完整的,這與包含關系不同。

一個用例可以提供多個擴展點,每個擴展點也可出現多次。

一般情況下,基本用例的執行不會涉及到擴展用例,只有在特定條件或事件發生時,才會執行擴展用例的功能。

在UML中,擴展關系使用帶構造型<<extend>>的虛線箭頭表示。箭頭由擴展用例指向基本用例。

用例的擴展關系

下面這個例子是圖書館借閱系統中,一個用例圖片段:

用例擴展關系案例

在這個例子中,繳納罰款即是讀者的一個基本用例,也是歸還圖書的一個擴展用例。

繳納罰款”作為“歸還圖書”的擴展用例,只有在以下條件時,才會被執行:

(1)讀者圖書有超期或其它原因產生有罰款記錄,且未繳清;

(2)讀者選擇了在歸還圖書后,同時繳清罰款。

擴展關系與包含關系有什么不同呢?

擴展關系中,基本用例是完整的,執行基本用例不一定執行擴展用例;但包含關系中的基本用例不完整,執行基本用例必須執行包含用例。

在下一篇文章中將給出一個具體的用例圖案例,敬請關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本亚洲欧洲色α| 国产精品久久中文| 欧美性黄网官网| 亚洲石原莉奈一区二区在线观看| 欧美有码在线视频| 欧美极品欧美精品欧美视频| 欧美性感美女h网站在线观看免费| 日韩大陆毛片av| 久久精品国产亚洲一区二区| 成人av.网址在线网站| 亚洲国产精品va| 亚洲韩国青草视频| 91超碰中文字幕久久精品| 在线观看成人黄色| 国产一区二区黄| 成人精品在线视频| 欲色天天网综合久久| 国内精品久久久久伊人av| 日韩中文在线中文网在线观看| 亚洲一区二区三区xxx视频| 欧美激情精品久久久久久大尺度| 色中色综合影院手机版在线观看| 欧美成在线观看| 日韩毛片在线看| 国产97在线亚洲| 日本电影亚洲天堂| 精品偷拍一区二区三区在线看| 欧美在线激情网| 黑人巨大精品欧美一区二区三区| 国产美女久久精品香蕉69| 日韩电影网在线| 久久在线精品视频| 久久精品视频在线| 国产亚洲视频在线观看| 欧美激情区在线播放| 欧美天堂在线观看| 中文字幕视频一区二区在线有码| 欧洲亚洲妇女av| 日本精品久久中文字幕佐佐木| 欧美一级淫片丝袜脚交| 77777亚洲午夜久久多人| 91免费看片在线| 国产视频久久久久久久| 奇米四色中文综合久久| 亚洲精品成人久久电影| 亚洲bt天天射| 最近2019年中文视频免费在线观看| 色综合导航网站| 在线视频精品一| 亚洲天堂av综合网| 91av在线影院| 一区二区三区四区视频| 成人免费看黄网站| 亚洲图中文字幕| 成人深夜直播免费观看| 欧美精品久久久久久久| 色久欧美在线视频观看| 91黑丝在线观看| 色爱精品视频一区| 亚洲aⅴ日韩av电影在线观看| 国产欧亚日韩视频| 在线观看视频99| 狠狠躁夜夜躁人人爽天天天天97| 午夜精品久久久久久久男人的天堂| 91精品国产91久久| 最近2019中文免费高清视频观看www99| 色与欲影视天天看综合网| 国产美女久久精品香蕉69| 国产福利精品在线| 欧美成人免费视频| 日韩福利视频在线观看| 97国产真实伦对白精彩视频8| 欧美精品国产精品日韩精品| 久久精品国产视频| 午夜精品久久久久久久白皮肤| 日韩久久精品电影| 高清日韩电视剧大全免费播放在线观看| 欧美一区二区三区艳史| 色婷婷亚洲mv天堂mv在影片| 成人精品一区二区三区电影黑人| 亚洲性日韩精品一区二区| 2018日韩中文字幕| 日韩成人在线网站| 成人黄色片网站| 成人精品aaaa网站| 日韩午夜在线视频| 亚洲国产私拍精品国模在线观看| 欧美激情综合色| 欧美激情在线视频二区| 欧美午夜电影在线| 亚洲日本欧美中文幕| 欧美国产日韩中文字幕在线| 欧美不卡视频一区发布| 国产日韩欧美日韩| 欧美视频在线观看 亚洲欧| 久久99视频免费| 中文字幕亚洲一区二区三区五十路| 欧美精品一本久久男人的天堂| 精品久久久999| 中文字幕亚洲一区在线观看| 国产成人一区二区三区小说| 国产精品午夜国产小视频| 亚洲精品美女久久| 久久国产加勒比精品无码| 国产日韩在线看片| 亚洲午夜精品久久久久久久久久久久| 综合136福利视频在线| 2019国产精品自在线拍国产不卡| 欧美色xxxx| 成人免费大片黄在线播放| 黑人精品xxx一区| 色综合老司机第九色激情| 奇门遁甲1982国语版免费观看高清| 久久久久久97| 国产偷国产偷亚洲清高网站| 亚洲999一在线观看www| 久久九九有精品国产23| 最近中文字幕日韩精品| 菠萝蜜影院一区二区免费| 欧美另类极品videosbest最新版本| 国产日韩欧美中文在线播放| 日本成人精品在线| 色yeye香蕉凹凸一区二区av| 欧美精品成人91久久久久久久| 欧美日韩免费区域视频在线观看| 8050国产精品久久久久久| 国产精品wwww| 国产精品成人在线| 最近2019中文字幕第三页视频| 久久影院在线观看| 欧美理论电影在线播放| 亚洲aⅴ日韩av电影在线观看| 精品久久久久国产| 一区二区三区在线播放欧美| 国内精品视频久久| 国产精品白丝av嫩草影院| 北条麻妃一区二区在线观看| 粗暴蹂躏中文一区二区三区| 亚洲精品国产福利| 亚洲第一天堂无码专区| 亚洲曰本av电影| 精品久久久久久中文字幕一区奶水| 成人黄色免费在线观看| 国产日韩欧美日韩| 国模吧一区二区| 亚洲欧美成人一区二区在线电影| 国产美女精品视频| 91精品国产综合久久香蕉| 2019中文在线观看| 美乳少妇欧美精品| 91精品国产乱码久久久久久久久| 国产精品一久久香蕉国产线看观看| 亚洲精品久久久久久久久久久| 亚洲欧美变态国产另类| 中文字幕精品在线| 欧美一级视频一区二区| 最近更新的2019中文字幕| 欧美一区二区三区艳史| 自拍偷拍亚洲欧美| 亚洲欧美国产日韩天堂区| 久久精品99久久香蕉国产色戒| 91久久久久久久久久| 久久精品99久久久香蕉| 色中色综合影院手机版在线观看|