用例圖主要用來(lái)描述“用戶嚷量、需求孩革、系統(tǒng)功能單元”之間的關(guān)系掂摔。它展示了一個(gè)外部用戶能夠觀察到的系統(tǒng)功能模型圖说莫。#####
【用途】:幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求杨箭。
1. 參與者(Actor)
表示與您的應(yīng)用程序或系統(tǒng)進(jìn)行交互的用戶、組織或外部系統(tǒng)储狭。
**2. ** 用例(Use Case)
用例就是外部可見(jiàn)的系統(tǒng)功能互婿,對(duì)系統(tǒng)提供的服務(wù)進(jìn)行描述。用橢圓表示辽狈。
3. 子系統(tǒng)(Subsystem)
用來(lái)展示系統(tǒng)的一部分功能慈参,這部分功能聯(lián)系緊密。
**4. ** 關(guān)系
用例圖中涉及的關(guān)系有:關(guān)聯(lián)刮萌、泛化驮配、包含、擴(kuò)展。
a. 關(guān)聯(lián)(Association)
表示參與者與用例之間的通信壮锻,任何一方都可發(fā)送或接受消息琐旁。
【箭頭指向】:指向消息接收方
b. 泛化(Inheritance)
就是通常理解的繼承關(guān)系,子用例和父用例相似躯保,但表現(xiàn)出更特別的行為旋膳;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系途事。子用例可以使用父用例的一段行為验懊,也可以重載它。父用例通常是抽象的尸变。
【箭頭指向】:指向父用例
c. 包含(Include)
包含關(guān)系用來(lái)把一個(gè)較復(fù)雜用例所表示的功能分解成較小的步驟义图。
【箭頭指向】:指向分解出來(lái)的功能用例
d. 擴(kuò)展(Extend)
擴(kuò)展關(guān)系是指用例功能的延伸,相當(dāng)于為基礎(chǔ)用例提供一個(gè)附加功能召烂。
【箭頭指向】:指向基礎(chǔ)用例
e. 依賴(Dependency)
以上4種關(guān)系碱工,是UML定義的標(biāo)準(zhǔn)關(guān)系。但VS2010的用例模型圖中奏夫,添加了依賴關(guān)系怕篷,用帶箭頭的虛線表示,表示源用例依賴于目標(biāo)用例酗昼。
【箭頭指向】:指向被依賴項(xiàng)
5. 項(xiàng)目(Artifact)
用例圖雖然是用來(lái)幫助人們形象地理解功能需求廊谓,但卻沒(méi)多少人能夠通看懂它。很多時(shí)候跟用戶交流甚至用Excel都比用例圖強(qiáng)麻削,VS2010中引入了“項(xiàng)目”這樣一個(gè)元素蒸痹,以便讓開(kāi)發(fā)人員能夠在用例圖中鏈接一個(gè)普通文檔。
用依賴關(guān)系把某個(gè)用例依賴到項(xiàng)目上:
然后把項(xiàng)目-》屬性 的Hyperlink設(shè)置到你的文檔上呛哟;
這樣當(dāng)你在用例圖上雙擊項(xiàng)目時(shí)叠荠,就會(huì)打開(kāi)相關(guān)聯(lián)的文檔。
6. 注釋(Comment)
包含(include) 扫责、擴(kuò)展(extend) 榛鼎、泛化(Inheritance) 的區(qū)別:
條件性:泛化中的子用例和include中的被包含的用例會(huì)無(wú)條件發(fā)生,而extend中的延伸用例的發(fā)生是有條件的鳖孤;
直接性:泛化中的子用例和extend中的延伸用例為參與者提供直接服務(wù)借帘,而include中被包含的用例為參與者提供間接服務(wù)。
對(duì)extend而言淌铐,延伸用例并不包含基礎(chǔ)用例的內(nèi)容肺然,基礎(chǔ)用例也不包含延伸用例的內(nèi)容。
對(duì)Inheritance而言,子用例包含基礎(chǔ)用例的所有內(nèi)容及其和其他用例或參與者之間的關(guān)系;
例子
Paste_Image.png