系統(tǒng)架構(gòu)師-UML相關(guān)
原文合集地址如下,有需要的朋友可以關(guān)注
[本文地址](https://mp.weixin.qq.com/s/rXzQ7EqlK42AOs836xfa7A)
[合集地址](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI5MjY4OTQ2Nw==&action=getalbum&album_id=2969297821654843397&scene=173&from_msgid=2247484209&from_itemidx=1&count=3&nolastread=1#wechat_redirect)
# 介紹
>UML(Unified Modeling Language)用例圖的縮寫(xiě)為UCD,其中UCD代表Use Case Diagram。用例圖是軟件系統(tǒng)設(shè)計(jì)中的一種圖形化表示工具,用于描述系統(tǒng)的功能需求和用戶與系統(tǒng)之間的交互。用例圖主要用于捕捉系統(tǒng)的行為視圖,展示系統(tǒng)中的參與者(actors)和用例(use cases)之間的關(guān)系。
## 用例圖中的元素
在UML(Unified Modeling Language)用例圖中,常見(jiàn)的元素包括:
1. 參與者(Actors):參與者是與系統(tǒng)進(jìn)行交互的外部實(shí)體,可以是人、其他軟件系統(tǒng)、硬件設(shè)備等。參與者可以觸發(fā)用例的執(zhí)行,也可以從系統(tǒng)中接收結(jié)果。參與者通常以圖標(biāo)形式表示,如人的圖標(biāo)或系統(tǒng)圖標(biāo)。
2. 用例(Use Cases):用例代表系統(tǒng)中的一個(gè)功能或一個(gè)用戶場(chǎng)景,描述了系統(tǒng)提供的服務(wù)。用例通常以橢圓形狀表示,并使用有意義的名稱(chēng)來(lái)描述其功能。每個(gè)用例描述了一個(gè)或多個(gè)參與者與系統(tǒng)之間的交互流程。
這些元素一起構(gòu)成了用例圖,通過(guò)用例圖可以清晰地描述系統(tǒng)的功能需求和用戶與系統(tǒng)之間的交互關(guān)系,幫助開(kāi)發(fā)團(tuán)隊(duì)和利益相關(guān)者更好地理解和溝通系統(tǒng)的設(shè)計(jì)。
## 用例圖中的關(guān)系有哪些
在UML(Unified Modeling Language)用例圖中,常見(jiàn)的關(guān)系有以下幾種:
### 1. 關(guān)聯(lián)關(guān)系(Association)
>關(guān)聯(lián)關(guān)系表示參與者(Actor)與用例(Use Case)之間的連接。它們表示參與者與用例之間的通信和交互關(guān)系。關(guān)聯(lián)關(guān)系通常使用直線連接參與者和用例。
假設(shè)我們正在設(shè)計(jì)一個(gè)客戶管理系統(tǒng),其中包含以下幾個(gè)用例:
1. 創(chuàng)建客戶檔案(Create Customer Profile)
2. 更新客戶信息(Update Customer Information)
3. 查看客戶詳情(View Customer Details)
4. 刪除客戶檔案(Delete Customer Profile)
在這個(gè)客戶管理系統(tǒng)中,我們還有兩個(gè)參與者:
1. 管理員(Administrator):負(fù)責(zé)管理系統(tǒng)和客戶檔案的管理員。
2. 客戶(Customer):使用系統(tǒng)的客戶。
現(xiàn)在我們來(lái)看一下哪些場(chǎng)景是關(guān)聯(lián)關(guān)系:
關(guān)聯(lián)關(guān)系示例 1:
? ?- 參與者:管理員
? ?- 用例:創(chuàng)建客戶檔案
? ?- 關(guān)聯(lián)關(guān)系:管理員與創(chuàng)建客戶檔案之間建立關(guān)聯(lián)關(guān)系,表示管理員可以觸發(fā)創(chuàng)建客戶檔案的操作。
關(guān)聯(lián)關(guān)系示例 2:
? ?- 參與者:客戶
? ?- 用例:更新客戶信息
? ?- 關(guān)聯(lián)關(guān)系:客戶與更新客戶信息之間建立關(guān)聯(lián)關(guān)系,表示客戶可以觸發(fā)更新自己信息的操作。
關(guān)聯(lián)關(guān)系示例 3:
? ?- 參與者:管理員
? ?- 用例:查看客戶詳情
? ?- 關(guān)聯(lián)關(guān)系:管理員與查看客戶詳情之間建立關(guān)聯(lián)關(guān)系,表示管理員可以觸發(fā)查看客戶詳情的操作。
關(guān)聯(lián)關(guān)系示例 4:
? ?- 參與者:管理員
? ?- 用例:刪除客戶檔案
? ?- 關(guān)聯(lián)關(guān)系:管理員與刪除客戶檔案之間建立關(guān)聯(lián)關(guān)系,表示管理員可以觸發(fā)刪除客戶檔案的操作。
在這些關(guān)聯(lián)關(guān)系中,參與者與各個(gè)用例之間建立了連接,表示**參與者可以觸發(fā)或執(zhí)行相應(yīng)的用例**。這些關(guān)聯(lián)關(guān)系在用例圖中通過(guò)直線連接參與者和用例來(lái)表示。
### 2. 包含關(guān)系(Include)
>包含關(guān)系表示一個(gè)用例(包含者)包含另一個(gè)用例(被包含者)的行為。當(dāng)一個(gè)用例需要調(diào)用另一個(gè)用例以完成其功能時(shí),可以使用包含關(guān)系來(lái)表示這種關(guān)系。包含關(guān)系通常使用帶箭頭的虛線表示。
假設(shè)我們正在設(shè)計(jì)一個(gè)客戶管理系統(tǒng),其中包含以下幾個(gè)用例:
1. 創(chuàng)建客戶檔案(Create Customer Profile)
2. 更新客戶信息(Update Customer Information)
3. 查看客戶詳情(View Customer Details)
4. 刪除客戶檔案(Delete Customer Profile)
在這個(gè)客戶管理系統(tǒng)中,我們可以看到一些用例之間存在包含關(guān)系:
包含關(guān)系示例 1:
? ?- 用例:更新客戶信息
? ?- 包含關(guān)系:更新客戶信息包含了創(chuàng)建客戶檔案
? ?- 描述:在執(zhí)行更新客戶信息的過(guò)程中,如果客戶檔案不存在,則需要先執(zhí)行創(chuàng)建客戶檔案的操作,因此創(chuàng)建客戶檔案是更新客戶信息的一個(gè)子功能。這種關(guān)系可以使用包含關(guān)系來(lái)表示。
包含關(guān)系示例 2:
? ?- 用例:刪除客戶檔案
? ?- 包含關(guān)系:刪除客戶檔案包含了查看客戶詳情
? ?- 描述:在執(zhí)行刪除客戶檔案的過(guò)程中,需要先查看客戶詳情來(lái)確認(rèn)要?jiǎng)h除的客戶信息。因此,查看客戶詳情是刪除客戶檔案的一個(gè)子功能。這種關(guān)系可以使用包含關(guān)系來(lái)表示。
在這些包含關(guān)系的示例中,**一個(gè)用例包含了另一個(gè)用例的行為,也就是說(shuō),一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成**。這種關(guān)系在用例圖中可以用帶箭頭的虛線來(lái)表示。
### 3. 擴(kuò)展關(guān)系(Extend)
>擴(kuò)展關(guān)系表示一個(gè)用例(擴(kuò)展者)可以在特定條件下擴(kuò)展另一個(gè)用例(被擴(kuò)展者)的功能。當(dāng)一個(gè)用例的某個(gè)功能是可選的,并且僅在滿足一定條件時(shí)才會(huì)發(fā)生時(shí),可以使用擴(kuò)展關(guān)系來(lái)表示這種關(guān)系。擴(kuò)展關(guān)系通常使用帶箭頭的虛線表示。
假設(shè)我們正在設(shè)計(jì)一個(gè)客戶管理系統(tǒng),其中包含以下幾個(gè)用例:
1. 創(chuàng)建客戶檔案(Create Customer Profile)
2. 更新客戶信息(Update Customer Information)
3. 查看客戶詳情(View Customer Details)
4. 刪除客戶檔案(Delete Customer Profile)
在這個(gè)客戶管理系統(tǒng)中,我們可以找到一些使用擴(kuò)展關(guān)系的場(chǎng)景:
擴(kuò)展關(guān)系示例 1:
? ?- 基礎(chǔ)用例:創(chuàng)建客戶檔案
? ?- 擴(kuò)展用例:驗(yàn)證客戶信息
? ?- 描述:當(dāng)執(zhí)行創(chuàng)建客戶檔案的操作時(shí),可以選擇進(jìn)行驗(yàn)證客戶信息的擴(kuò)展。驗(yàn)證客戶信息是一個(gè)可選的擴(kuò)展功能,僅在需要驗(yàn)證客戶信息時(shí)才會(huì)發(fā)生。通過(guò)擴(kuò)展關(guān)系,我們可以將驗(yàn)證客戶信息擴(kuò)展與創(chuàng)建客戶檔案基礎(chǔ)用例關(guān)聯(lián)起來(lái)。
擴(kuò)展關(guān)系示例 2:
? ?- 基礎(chǔ)用例:更新客戶信息
? ?- 擴(kuò)展用例:記錄修改日志
? ?- 描述:當(dāng)執(zhí)行更新客戶信息的操作時(shí),可以選擇記錄修改日志的擴(kuò)展。記錄修改日志是一個(gè)可選的擴(kuò)展功能,用于記錄更新客戶信息的操作歷史。通過(guò)擴(kuò)展關(guān)系,我們可以將記錄修改日志擴(kuò)展與更新客戶信息基礎(chǔ)用例關(guān)聯(lián)起來(lái)。
在這些擴(kuò)展關(guān)系的示例中,**一個(gè)用例可以在特定條件下擴(kuò)展另一個(gè)用例的功能**。擴(kuò)展關(guān)系通過(guò)帶箭頭的虛線表示,并指示擴(kuò)展發(fā)生的條件。通過(guò)擴(kuò)展關(guān)系,我們可以描述系統(tǒng)中的可選功能,并以清晰的方式表示這些功能與基礎(chǔ)用例之間的關(guān)系。
### 4. 泛化關(guān)系(Generalization)
>泛化關(guān)系表示一個(gè)用例或參與者是另一個(gè)用例或參與者的特殊情況。泛化關(guān)系用于描述繼承關(guān)系,其中子用例或子參與者繼承了父用例或父參與者的行為和屬性。泛化關(guān)系通常使用帶空心三角形的實(shí)線表示。
假設(shè)我們正在設(shè)計(jì)一個(gè)客戶管理系統(tǒng),其中有兩種類(lèi)型的客戶:普通客戶(Regular Customer)和VIP客戶(VIP Customer)。在這個(gè)系統(tǒng)中,我們可以使用泛化關(guān)系來(lái)表示這兩種客戶之間的關(guān)系。
泛化關(guān)系示例:
泛化關(guān)系示例 1:
? ?- 父用例:創(chuàng)建客戶檔案
? ?- 子用例:創(chuàng)建普通客戶檔案、創(chuàng)建VIP客戶檔案
? ?- 描述:創(chuàng)建普通客戶檔案和創(chuàng)建VIP客戶檔案都是創(chuàng)建客戶檔案的特殊情況。這里的泛化關(guān)系可以表示為父用例“創(chuàng)建客戶檔案”和子用例“創(chuàng)建普通客戶檔案”以及“創(chuàng)建VIP客戶檔案”之間的繼承關(guān)系。
泛化關(guān)系示例 2:
? ?- 父用例:查看客戶詳情
? ?- 子用例:查看普通客戶詳情、查看VIP客戶詳情
? ?- 描述:查看普通客戶詳情和查看VIP客戶詳情都是查看客戶詳情的特殊情況。這里的泛化關(guān)系可以表示為父用例“查看客戶詳情”和子用例“查看普通客戶詳情”以及“查看VIP客戶詳情”之間的繼承關(guān)系。
在這些泛化關(guān)系的示例中,**子用例繼承了父用例的行為和屬性,子用例是父用例的特殊情況**。通過(guò)泛化關(guān)系,我們可以使用父用例來(lái)定義通用的行為和屬性,并通過(guò)子用例來(lái)表示不同情況下的特殊行為和屬性。在用例圖中,泛化關(guān)系通常使用帶空心三角形的實(shí)線來(lái)表示。
### 5. 依賴(lài)關(guān)系(Dependency)
>依賴(lài)關(guān)系表示一個(gè)元素(依賴(lài)者)依賴(lài)于另一個(gè)元素(被依賴(lài)者)。當(dāng)一個(gè)元素的變化可能影響到另一個(gè)元素時(shí),可以使用依賴(lài)關(guān)系來(lái)表示這種關(guān)系。依賴(lài)關(guān)系通常使用帶箭頭的虛線表示。
假設(shè)我們正在設(shè)計(jì)一個(gè)客戶管理系統(tǒng),其中包含以下幾個(gè)用例:
1. 創(chuàng)建客戶檔案(Create Customer Profile)
2. 更新客戶信息(Update Customer Information)
3. 發(fā)送郵件通知(Send Email Notification)
在這個(gè)客戶管理系統(tǒng)中,我們可以找到一些使用依賴(lài)關(guān)系的場(chǎng)景:
依賴(lài)關(guān)系示例 1:
? ?- 用例:發(fā)送郵件通知
? ?- 依賴(lài)關(guān)系:發(fā)送郵件通知依賴(lài)于更新客戶信息
? ?- 描述:當(dāng)執(zhí)行發(fā)送郵件通知的操作時(shí),需要獲取最新的客戶信息來(lái)構(gòu)建郵件內(nèi)容。發(fā)送郵件通知的操作依賴(lài)于更新客戶信息的結(jié)果。因此,發(fā)送郵件通知用例依賴(lài)于更新客戶信息用例。
依賴(lài)關(guān)系示例 2:
? ?- 用例:創(chuàng)建客戶檔案
? ?- 依賴(lài)關(guān)系:創(chuàng)建客戶檔案依賴(lài)于發(fā)送郵件通知
? ?- 描述:在執(zhí)行創(chuàng)建客戶檔案的操作時(shí),需要發(fā)送郵件通知給相關(guān)人員。創(chuàng)建客戶檔案的操作依賴(lài)于發(fā)送郵件通知的結(jié)果。因此,創(chuàng)建客戶檔案用例依賴(lài)于發(fā)送郵件通知用例。
在這些依賴(lài)關(guān)系的示例中,**一個(gè)用例的執(zhí)行依賴(lài)于另一個(gè)用例的結(jié)果或輸出**。依賴(lài)關(guān)系可以幫助我們描述用例之間的依賴(lài)關(guān)系,以確保正確的順序和流程。在用例圖中,依賴(lài)關(guān)系通常使用帶箭頭的虛線來(lái)表示。
## 對(duì)比記憶
### 包含關(guān)系和擴(kuò)展關(guān)系的區(qū)別
包含關(guān)系和擴(kuò)展關(guān)系是用例圖中兩種不同的關(guān)系,用于描述用例之間的關(guān)聯(lián)和擴(kuò)展。
包含關(guān)系(Inclusion Relationship)是一種用于描述一個(gè)用例包含另一個(gè)用例的關(guān)系。在包含關(guān)系中,一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成。被包含的用例是包含用例的一部分,也就是說(shuō),包含用例將使用被包含用例的功能來(lái)完成自身的行為。包含關(guān)系通常用于表示一種可重用的行為或功能,以便將其用于多個(gè)用例中。
擴(kuò)展關(guān)系(Extension Relationship)是一種用于描述一個(gè)用例在特定條件下擴(kuò)展另一個(gè)用例的功能的關(guān)系。在擴(kuò)展關(guān)系中,一個(gè)用例可以在特定條件下擴(kuò)展另一個(gè)用例的功能,以增加額外的行為或功能。擴(kuò)展關(guān)系通常用于表示一種可選的或條件性的功能,只有在特定條件下才會(huì)觸發(fā)擴(kuò)展用例的執(zhí)行。
區(qū)別如下:
- 包含關(guān)系強(qiáng)調(diào)一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成,被包含的用例是包含用例的一部分。
- 擴(kuò)展關(guān)系強(qiáng)調(diào)一個(gè)用例可以在特定條件下擴(kuò)展另一個(gè)用例的功能,擴(kuò)展用例是基礎(chǔ)用例的可選或條件性擴(kuò)展。
### 泛化關(guān)系和擴(kuò)展關(guān)系的區(qū)別
泛化關(guān)系(Generalization Relationship)和擴(kuò)展關(guān)系(Extension Relationship)是用例圖中兩種不同的關(guān)系,用于描述用例之間的關(guān)聯(lián)和繼承。
1. 泛化關(guān)系:
? ?- 泛化關(guān)系用于描述用例之間的繼承關(guān)系,表示一個(gè)用例是另一個(gè)用例的特殊情況或子類(lèi)。
? ?- 通過(guò)泛化關(guān)系,一個(gè)用例可以繼承另一個(gè)用例的行為和屬性。
? ?- 泛化關(guān)系適用于表示用例之間的一般與特殊關(guān)系,其中子用例繼承了父用例的通用行為。
? ?- 在用例圖中,泛化關(guān)系通常使用帶空心三角形的實(shí)線來(lái)表示。
2. 擴(kuò)展關(guān)系:
? ?- 擴(kuò)展關(guān)系用于描述一個(gè)用例在特定條件下擴(kuò)展另一個(gè)用例的功能。
? ?- 通過(guò)擴(kuò)展關(guān)系,一個(gè)用例可以在特定條件下增加額外的行為或功能,擴(kuò)展用例是基礎(chǔ)用例的可選或條件性擴(kuò)展。
? ?- 擴(kuò)展關(guān)系適用于表示用例之間的可選或條件性功能擴(kuò)展,其中擴(kuò)展用例依賴(lài)于基礎(chǔ)用例的執(zhí)行,并在滿足特定條件時(shí)才會(huì)觸發(fā)執(zhí)行。
? ?- 在用例圖中,擴(kuò)展關(guān)系通常使用帶箭頭的虛線來(lái)表示。
總結(jié)來(lái)說(shuō),泛化關(guān)系用于表示用例之間的繼承關(guān)系,子用例是父用例的特殊情況;而擴(kuò)展關(guān)系用于表示一個(gè)用例在特定條件下擴(kuò)展另一個(gè)用例的功能。它們描述了不同類(lèi)型的關(guān)聯(lián)和行為,用于表示不同的用例之間的關(guān)系。
### 泛化關(guān)系和包含關(guān)系的區(qū)別
泛化關(guān)系(Generalization Relationship)和包含關(guān)系(Inclusion Relationship)是用例圖中兩種不同的關(guān)系,用于描述用例之間的關(guān)聯(lián)和組織結(jié)構(gòu)。
1. 泛化關(guān)系:
? ?- 泛化關(guān)系用于描述用例之間的繼承關(guān)系,表示一個(gè)用例是另一個(gè)用例的特殊情況或子類(lèi)。
? ?- 通過(guò)泛化關(guān)系,一個(gè)用例可以繼承另一個(gè)用例的行為和屬性,子用例是父用例的擴(kuò)展。
? ?- 泛化關(guān)系適用于表示用例之間的一般與特殊關(guān)系,其中子用例繼承了父用例的通用行為。
? ?- 在用例圖中,泛化關(guān)系通常使用帶空心三角形的實(shí)線來(lái)表示。
2. 包含關(guān)系:
? ?- 包含關(guān)系用于描述一個(gè)用例包含另一個(gè)用例的關(guān)系,表示一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成。
? ?- 被包含的用例是包含用例的一部分,它提供了一種可重用的行為或功能。
? ?- 包含關(guān)系適用于表示用例之間的組織結(jié)構(gòu)和模塊化,其中一個(gè)用例的功能包含了另一個(gè)用例的功能。
? ?- 在用例圖中,包含關(guān)系通常使用帶箭頭的虛線來(lái)表示。
區(qū)別如下:
- 泛化關(guān)系描述了用例之間的繼承關(guān)系,其中子用例是父用例的特殊情況,子用例繼承了父用例的行為和屬性。
- 包含關(guān)系描述了一個(gè)用例包含另一個(gè)用例的關(guān)系,其中一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成,被包含的用例提供了可重用的行為或功能。
- 泛化關(guān)系強(qiáng)調(diào)繼承和擴(kuò)展的關(guān)系,子用例是父用例的特殊情況,繼承了父用例的通用行為。
- 包含關(guān)系強(qiáng)調(diào)模塊化和組織結(jié)構(gòu),一個(gè)用例的功能包含了另一個(gè)用例的功能,被包含的用例提供了一種可重用的行為。
雖然泛化關(guān)系和包含關(guān)系在某些方面可能有一些相似之處,但它們描述的是不同的概念和關(guān)系。泛化關(guān)系用于描述繼承關(guān)系,而包含關(guān)系用于描述組織和模塊化關(guān)系。
## 縮寫(xiě)記憶方式
### 基礎(chǔ)概念
簡(jiǎn)單來(lái)說(shuō),一共有五個(gè)關(guān)系。他們分別的關(guān)鍵點(diǎn)在如下:
1、依賴(lài)關(guān)系:一個(gè)用例的執(zhí)行依賴(lài)于另一個(gè)用例的結(jié)果或輸出
2、關(guān)聯(lián)關(guān)系:參與者可以觸發(fā)或執(zhí)行相應(yīng)的用例
3、泛化關(guān)系:子用例繼承了父用例的行為和屬性,子用例是父用例的特殊情況
4、包含關(guān)系:一個(gè)用例的功能需要調(diào)用另一個(gè)用例來(lái)完成
5、擴(kuò)展關(guān)系:一個(gè)用例可以在特定條件下擴(kuò)展另一個(gè)用例的功能
### 區(qū)別
包含關(guān)系中有**重用**的概念
擴(kuò)展關(guān)系中有**額外**的概念
泛化關(guān)系中有**繼承**的概念
依賴(lài)關(guān)系中有**先后串聯(lián)**的概念
### 順口溜
包含重用:箭頭虛線
擴(kuò)展額外:箭頭虛線
泛化繼承:空心三角形實(shí)線
依賴(lài)串聯(lián):箭頭虛線
關(guān)聯(lián)參與:直線