【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战
.
作者?:萬(wàn)境絕塵?
轉(zhuǎn)載請(qǐng)注明出處?:?http://blog.csdn.net/shulianghan/article/details/18964835
.
一. 用例視圖概述
?
用例視圖表述哪些事物 :誰(shuí)是相關(guān)用戶,用戶希望從系統(tǒng)獲得的服務(wù),用戶需要為系統(tǒng)提供的服務(wù).
用例視圖的作用 : 使用戶容易理解 其中元素的用途 , 使碼農(nóng)更容易實(shí)現(xiàn)這些元素.
軟件產(chǎn)品外部特性 :軟件功能的合理性,使用方便程度,UI界面;
用例視圖角度 : 用例視圖是從用戶角度來(lái)描述軟件產(chǎn)品的需求, 可以準(zhǔn)確的描述軟件產(chǎn)品的外部特性.
用例視圖元素 :參與者,用例, 參與者 用例之間的關(guān)系(泛化, 包含, 擴(kuò)展); 用例圖還可以包含注解, 約束, 包.
二. 參與者
1. 參與者概念
定義 : 參與者是系統(tǒng)外部的實(shí)體, 參與了系統(tǒng)用例執(zhí)行過(guò)程.?
參與者與用例交互方式 : 參與者通過(guò)交換信息與用例發(fā)生交互.
參與者種類 :?
a. 用戶 : 真實(shí)的人, 這類參與者命名按照業(yè)務(wù)命名.
b. 其它系統(tǒng) : 程序邊界之外的系統(tǒng), 例如 銀行支付系統(tǒng)也是電商網(wǎng)站的參與者.
c. 進(jìn)程 : 一些可以運(yùn)行的進(jìn)程也可以做參與者, 例如到某個(gè)時(shí)間觸發(fā)某時(shí)間, 時(shí)間就是參與者.
2. 確定參與者
(1) 如何識(shí)別參與者
a. 系統(tǒng)使用者 : 使用系統(tǒng)的用戶或者系統(tǒng)是參與者;
b. 交互中角色 : 在交互中參與者扮演的角色;
c. 系統(tǒng)安裝者 : 安裝這個(gè)系統(tǒng)的人也可能是參與者;
d. 系統(tǒng)啟動(dòng)者 : 開(kāi)啟關(guān)閉系統(tǒng)的人可能是參與者;
e. 系統(tǒng)維護(hù)者 : 維護(hù)這個(gè)系統(tǒng)的人可能是參與者;
f. 交互的系統(tǒng) : 與該系統(tǒng)交互的系統(tǒng)可能是參與者;
g. 信息獲取者 : 從系統(tǒng)獲取信息的人可能是參與者;
h. 信息提供者 : 為系統(tǒng)提供信息的人可能是參與者;
i. 定時(shí)執(zhí)行者 : 在固定時(shí)間執(zhí)行某個(gè)用例.
(2) 參與者注意事項(xiàng)
a. 系統(tǒng)之外 : 參與者是系統(tǒng)外部的元素, 是不可控制的;
b. 系統(tǒng)邊界 : 參與者同系統(tǒng)交互, 可以定義系統(tǒng)的邊界;
c. 注重業(yè)務(wù) : 參與者是人活著事務(wù)與系統(tǒng)發(fā)生交互時(shí)所扮演的角色, 而不是人或者事務(wù), 例如 電商賣家登陸后臺(tái)就是賣家, 登陸前臺(tái)就是賣家, 注重業(yè)務(wù)而不是注重人.
d. 人多角色 : 一個(gè)人或事務(wù)可能扮演多個(gè)角色;
e. 業(yè)務(wù)命名 : 參與者命名是按照業(yè)務(wù)來(lái)命名的;
f. 業(yè)務(wù)描述 : 每個(gè)參與者必須有簡(jiǎn)短的描述, 從業(yè)務(wù)角度描述參與者是什么;
g. 屬性方法 : 參與者也可以有屬性和方法, 不常用;
3. 參與者之間關(guān)系
參與者之間有泛化關(guān)系, 就是接口與實(shí)現(xiàn)類之間的關(guān)系. 例如在OA系統(tǒng)中, 項(xiàng)目經(jīng)理 客戶經(jīng)理 都是員工, 項(xiàng)目經(jīng)理與員工之間的關(guān)系就是泛化關(guān)系.
三. 用例
1. 用例概述
用例概念 : 用例是對(duì)一個(gè)系統(tǒng)或一個(gè)應(yīng)用的一種單一的使用方式所做的描述, 是關(guān)于單個(gè)活動(dòng)者在與系統(tǒng)對(duì)話中所執(zhí)行的處理行為的陳述序列(用例不是單一的動(dòng)作, 是一系列的動(dòng)作).
用例描述的事物 : 用例表示參與者使用系統(tǒng)完成某個(gè)事件時(shí)事情發(fā)生的序列, 用例是系統(tǒng)的使用過(guò)程, 展示和體現(xiàn)了其描述的過(guò)程中的需求情況.
2. 用例圖表示
用例用橢圓表示, 名稱可以寫在橢圓的內(nèi)部或者下方. 用例的名字包括簡(jiǎn)單名(simple) 和 路徑名(path name), 簡(jiǎn)單明就是只寫用例名, 路徑名就是在用例名前加上其所屬的包名.
3. 識(shí)別用例
從分析系統(tǒng)參與者開(kāi)始, 考慮參與者怎樣使用系統(tǒng), 這樣既可以分析用例, 又可以找出一個(gè)新的參與者, 對(duì)完善系統(tǒng)建模很有幫助.
用例建模就是這樣迭代和逐步精華的過(guò)程, 這是屬于系統(tǒng)分析師的職責(zé).
識(shí)別用例的方法 :?
a. 根據(jù)參與者 : 特定參與者希望系統(tǒng)提供的功能;
b. 根據(jù)系統(tǒng)行為 : 系統(tǒng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作, 是哪個(gè)參與者通過(guò)什么用例觸發(fā);
c. 狀態(tài)改變 : 系統(tǒng)狀態(tài)改變的時(shí)候,是否通知參與者;
d. 外部事件 : 是否存在影響系統(tǒng)的外部事件;
e. 通知者 : 哪個(gè)參與者通知系統(tǒng)這些事件;
4. 用例與事件流
事件流產(chǎn)生原因 : 用于分析出息系統(tǒng)的需求分析階段, 在這個(gè)階段應(yīng)該避免考慮系統(tǒng)實(shí)現(xiàn)的細(xì)節(jié)問(wèn)題, 因此我們將用例的細(xì)節(jié)寫在事件流文件中,事件流是用來(lái)描述用例的詳細(xì)執(zhí)行過(guò)程的;
事件流概念 : 事件流用來(lái)說(shuō)明一個(gè)用例的具體的行為, 何時(shí)開(kāi)始, 何時(shí)結(jié)束, 與參與者有什么交互.
事件流分類 :基本流,可選流; 基本流就是主事件流, 一個(gè)用例的正規(guī)流程沒(méi)有任何意外就是主事件流, 如果中間出了一場(chǎng), 那么就是可選事件流, 又叫異常事件流.
舉例 : 用戶登錄
主事件流 : 參與者輸入賬號(hào)密碼, 登陸開(kāi)始,服務(wù)器判斷密碼是否正確, 密碼正確, 進(jìn)入系統(tǒng);
異常事件流1 : 密碼錯(cuò)誤, 重新登陸;
異常事件流2 : 密碼提交前用戶清除密碼, 重新填寫.
5. 參與者與用例之間的關(guān)系
參與者與用例之間的關(guān)系是關(guān)聯(lián)關(guān)系, 使用帶箭頭的實(shí)線表示關(guān)聯(lián)關(guān)系, 例如 : OA系統(tǒng)客戶登陸, 用戶簽到, 寫文件, 審批文件.
6. 用例與用例之間的關(guān)系
(1) 泛化關(guān)系
定義 : 一個(gè)用例可以被列舉為一個(gè)或多個(gè)子用例,父用例和子用例之間是泛化關(guān)系; 類似于類中的繼承關(guān)系, 子用例是父用例的特殊形式, 子用例從父用例中繼承行為和屬性, 還可以添加行為或覆蓋, 改變已繼承的行為.
泛化關(guān)系表示 : 用例之間的泛化用帶空心的箭頭表示, 箭頭方向指向父用例, 下圖中系統(tǒng)管理員與查詢用戶是關(guān)聯(lián)關(guān)系, 查詢用戶是父用例, 查詢經(jīng)理 查詢員工是子用例;
(2) 包含關(guān)系
用例之間的包含關(guān)系 : 一個(gè)用例的行為包含了另一個(gè)用例.基礎(chǔ)用例可以看到包含用例, 并依賴與包含用例的執(zhí)行結(jié)果, 但是二者不能訪問(wèn)對(duì)方的屬性.
包含關(guān)系表示 : UML中包含關(guān)系表示為虛線箭頭, 并且在虛線箭頭上有<<include>>字樣, 箭頭指向被包含的用例.
用例包含使用場(chǎng)景 :?
a. 公用用例 : 為了復(fù)用用例, 當(dāng)多個(gè)用例有重復(fù)的功能, 可以將重復(fù)的功能分解到另一個(gè)用例中, 將這個(gè)分解出來(lái)的用例與原來(lái)的多個(gè)用例建立包含關(guān)系.
b. 分解用例 : 為了簡(jiǎn)化用例, 當(dāng)一個(gè)用例包含的功能太多的時(shí)候, 需要將用例分解成一個(gè)個(gè)子用例, 用例之間建立包含關(guān)系.
例子 : 管理員 修改用戶, 刪除用戶 都要查詢用戶, 如果每次都編寫事件序列, 那么用例會(huì)很復(fù)雜, 可以使用包含關(guān)系使 修改用戶 刪除用戶用例 包含 查詢用戶;
(3) 擴(kuò)展關(guān)系
定義 : 一個(gè)用例可以被定義為基礎(chǔ)用例的增量擴(kuò)展, 稱作擴(kuò)展關(guān)系.
作用 : 擴(kuò)展關(guān)系可以把新行為插入到已有的用例的方法中.
擴(kuò)展點(diǎn) : 基礎(chǔ)用例提供了一組擴(kuò)展點(diǎn),不必了解擴(kuò)展用例, 這些擴(kuò)展點(diǎn)中可以添加新的行為, 擴(kuò)展用例提供了一組插入片段, 這些片段可以插入到基礎(chǔ)用例的擴(kuò)展點(diǎn)中;
擴(kuò)展關(guān)系表示 : 虛線箭頭指向基礎(chǔ)用例, 箭頭上加上<<extend>>;
基礎(chǔ)用例與擴(kuò)展用例關(guān)系 : 基礎(chǔ)用例沒(méi)有擴(kuò)展用例也是完整的, 這一點(diǎn)與包含用例不同, 一個(gè)用例可以由多個(gè)擴(kuò)展點(diǎn), 每個(gè)擴(kuò)展點(diǎn)可以出現(xiàn)多次.
擴(kuò)展用例執(zhí)行條件 : 一般情況下基礎(chǔ)用例執(zhí)行, 不會(huì)涉及到擴(kuò)展用例行為, 如果特定條件發(fā)生, 擴(kuò)展用例才會(huì)執(zhí)行, 擴(kuò)展關(guān)系為處理異常或構(gòu)建靈活系統(tǒng)框架提供一種有效方法,發(fā)生的特定條件就是擴(kuò)展點(diǎn).
案例介紹 : 學(xué)生可以 查詢圖書, 借閱圖書, 歸還圖書.?
引入擴(kuò)展關(guān)系 : 上面的用例圖模型已經(jīng)建好, 后來(lái)加上了如果借閱超期, 就要繳納罰金, 更改用例圖中的歸還圖書, 會(huì)使用例變得復(fù)雜, 因此可以在歸還圖書中簡(jiǎn)歷擴(kuò)展點(diǎn), 在 圖書超期 的特定條件下 , 將執(zhí)行繳納罰金 擴(kuò)展用例;
四. 用例建模技術(shù)
1. 對(duì)語(yǔ)境進(jìn)行建模
內(nèi)部事物與外部事物 : 一個(gè)系統(tǒng)中, 會(huì)有一些事物存在其內(nèi)部, 一些事物存在其外部.?
語(yǔ)境定義 : 存在于系統(tǒng)內(nèi)部的事物的任務(wù)時(shí)完成系統(tǒng)外部事物所期望的行為, 內(nèi)部事物與外部事物存在交互,系統(tǒng)外部事物與內(nèi)部事物構(gòu)成了系統(tǒng)的語(yǔ)境, 語(yǔ)境又是系統(tǒng)的環(huán)境.?
建模重心 : 用例視圖是對(duì)系統(tǒng)的語(yǔ)境進(jìn)行建模的,強(qiáng)調(diào)的是系統(tǒng)的外部事物, 即外部參與者;
對(duì)語(yǔ)境建模注意的方法 :?
a. 外部參與者分類 :?
從系統(tǒng)得到幫助以完成任務(wù)的組;?
執(zhí)行系統(tǒng)功能時(shí)所必須的組;?
與外部硬件或其他軟件系統(tǒng)進(jìn)行交互的組;?
為了管理維護(hù)系統(tǒng)而執(zhí)行某些輔助功能的組.
b. 層次 : 將參與者組織成泛化/特殊化的結(jié)構(gòu)層次;
c. 提供構(gòu)造性 : 在需要的地方, 為每個(gè)參與者提供構(gòu)造方法;
d. 通信路徑 : 將參與者放到用例圖中, 要說(shuō)明參與者與用例之間的通信路徑;
2. 對(duì)需求建模
需求 : 根據(jù)用戶對(duì)產(chǎn)品功能的期望, 提出產(chǎn)品外部功能的描述;
需求分析 : 獲取系統(tǒng)需求, 歸納系統(tǒng)索要實(shí)現(xiàn)的功能, 考慮系統(tǒng)做什么, 不去考慮怎么做;
對(duì)需求建模方法 :?
a. 語(yǔ)境建立 :識(shí)別參與者, 建立系統(tǒng)語(yǔ)境;
b. 系統(tǒng)行為 : 考慮每個(gè)參與者期望的行為或需要系統(tǒng)提供的行為;
c. 命名原則 : 將公共行為命名為用例;
d. 包含擴(kuò)展用例 : 確定供其他用例使用的用例和擴(kuò)展其他用例的用例;
e. 建模對(duì)象 : 在用例圖中對(duì) 用例 參與者 和 它們之間的關(guān)系建模;
f. 需求描述 : 注釋用例圖要描述非功能需求;
3. 用例粒度
學(xué)生去圖書館借書, 首先登陸系統(tǒng), 輸入賬號(hào), 輸入密碼, 提交. 但上面的幾部每個(gè)都可以算作一個(gè)用例, 但是綜合起來(lái)也可以將三部算作一個(gè)用例.
針對(duì)需求分析人員來(lái)說(shuō) : 用例粒度的粗細(xì)可以根據(jù)實(shí)際情況分析;
針對(duì)開(kāi)發(fā)人員來(lái)說(shuō) : 用例的粒度越細(xì)越好;
五. 圖書管理系統(tǒng)用例視圖建模實(shí)戰(zhàn)
1. 確定系統(tǒng)涉及的內(nèi)容
圖書管理系統(tǒng)是對(duì)書籍的借閱及讀者信息進(jìn)行統(tǒng)一管理的系統(tǒng), 由以下模塊組成 :?
讀者 : 借書, 還書, 預(yù)定書籍;
圖書管理員 : 書籍借出處理, 書籍歸還處理, 預(yù)定信息處理;
系統(tǒng)管理員 : 系統(tǒng)維護(hù), 書目的 增刪改, 書籍 增刪改, 讀者賬戶 增刪改, 書籍信息 讀者信息的查詢;
2. 分析系統(tǒng)參與者
確定參與者首先分析系統(tǒng)涉及的問(wèn)題領(lǐng)域 和 系統(tǒng)運(yùn)行的主要任務(wù) : 系統(tǒng)使用者, 系統(tǒng)維護(hù)者;
分析過(guò)程 :?
a. 首先該系統(tǒng)需要讀者參與, 讀者登陸系統(tǒng) 借書 還書 預(yù)定書籍;
b. 對(duì)應(yīng)讀者的請(qǐng)求, 需要有圖書管理員處理這些信息;
c. 系統(tǒng)的維護(hù)也是相當(dāng)重要, 需要對(duì)系統(tǒng)的 書 用戶 等方面進(jìn)行增刪查改等操作;
系統(tǒng)的參與者有三類 : 讀者, 圖書管理員, 系統(tǒng)維護(hù)者;
3. 分析系統(tǒng)用例
用例是系統(tǒng)參與者與系統(tǒng)交互過(guò)程中需要完成的事務(wù), 分析用例最好的方法是從分析參與者開(kāi)始.
(1) 讀者相關(guān)的用例
a. 登陸系統(tǒng)
b. 查詢自己的借閱信息;
c. 查詢書籍信息;
d. 預(yù)定書籍;
e. 借閱書籍;
f. 歸還書籍;
(2) 圖書管理員
a. 處理書籍借閱
b. 處理書籍歸還
c. 刪除預(yù)訂信息
(3) 系統(tǒng)管理員
a. 查詢借閱者信息
b. 查詢書籍信息
c. 書目 增刪 更新
d. 書籍 增刪
e. 借閱者賬戶 增刪改
4. UML 用例圖
借閱者用例圖 :?
圖書管理員用例圖 :?
系統(tǒng)管理員用例圖 :?
.
作者?:萬(wàn)境絕塵?
轉(zhuǎn)載請(qǐng)注明出處?:?http://blog.csdn.net/shulianghan/article/details/18964835
.
總結(jié)
以上是生活随笔為你收集整理的【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【UML 建模】UML建模语言入门-视图
- 下一篇: 【Linux 操作系统】阿里云服务器 操