UML静态建模之用例图
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
? 用例圖(use case diagram)主要用來(lái)描述“用戶(hù)、需求、系統(tǒng)功能單元”之間的關(guān)系。它展示了一個(gè)外部用戶(hù)能夠觀察到的系統(tǒng)功能模型圖。它主要用來(lái)圖示化系統(tǒng)的主事件流程,從而描述客戶(hù)的需求。設(shè)計(jì)人員根據(jù)客戶(hù)的需求來(lái)創(chuàng)建和解釋用例圖,并用來(lái)描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系,用例圖包含了用例和參與者,用例之間用關(guān)聯(lián)來(lái)連接以求把系統(tǒng)的整個(gè)結(jié)構(gòu)和功能反映給非技術(shù)人員(通常是軟件的用戶(hù)),對(duì)應(yīng)的是軟件的結(jié)構(gòu)和功能分解,因此,設(shè)計(jì)用例圖也是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn)。
?
? 用例圖(use case diagram)所包含的元素如下:
1.?參與者(Actor)
表示與您的應(yīng)用程序或系統(tǒng)進(jìn)行交互的用戶(hù)、組織或外部系統(tǒng)。用一個(gè)小人表示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ??
? ? ? ?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. 依賴(lài)(Dependency)
以上4種關(guān)系,是UML定義的標(biāo)準(zhǔn)關(guān)系。但VS2010的用例模型圖中,添加了依賴(lài)關(guān)系,用帶箭頭的虛線表示,表示源用例依賴(lài)于目標(biāo)用例。
箭頭指向:指向被依賴(lài)項(xiàng)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
??5. 項(xiàng)目(Artifact)
用例圖雖然是用來(lái)幫助人們形象地理解功能需求,但卻沒(méi)多少人能夠通看懂它。很多時(shí)候跟用戶(hù)交流甚至用Excel都比用例圖強(qiáng),VS2010中引入了“項(xiàng)目”這樣一個(gè)元素,以便讓開(kāi)發(fā)人員能夠在用例圖中鏈接一個(gè)普通文檔。
?用依賴(lài)關(guān)系把某個(gè)用例依賴(lài)到項(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)系;
一個(gè)用例圖示例:
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?
? ?
?
?
?
?
?
轉(zhuǎn)載于:https://my.oschina.net/xiaoleei/blog/757109
總結(jié)
以上是生活随笔為你收集整理的UML静态建模之用例图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 端口聚合配置
- 下一篇: python_day9线程、进程和协程