UML-Unified Model Language 統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。3d
在UML系統開發中有三個主要的模型:對象
功能模型: 從用戶的角度展現系統的功能,包括用例圖。
對象模型: 採用對象,屬性,操做,關聯等概念展現系統的結構和基礎,包括類圖、對象圖、包圖。
動態模型: 展示系統的內部行爲。 包括序列圖,活動圖,狀態圖。blog
用例圖:從用戶角度描述系統功能,並指各功能的操做者。用例圖從外部用戶的角度捕獲系統的行爲。他將系統功能劃分爲對活動者具備意義的事務。繼承
用例圖主要用來描述「用戶、需求、系統功能單元」之間的關係。它展現了一個外部用戶可以觀察到的系統功能模型圖。事務
【用途】:幫助開發團隊以一種可視化的方式理解系統的功能需求。ci
用例圖所包含的元素:開發
1. 參與者(Actor)文檔
表示與你的應用程序或系統進行交互的用戶、組織或外部系統。用一個小人表示。it
2. 用例(Use Case)io
用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示。
3. 子系統(Subsystem)
用來展現系統的一部分功能,這部分功能聯繫緊密。
4. 關係
用例圖中涉及的關係有:關聯、泛化、包含、擴展。
以下表所示:
a. 關聯(Association)
表示參與者與用例之間的通訊,任何一方均可發送或接受消息。
【箭頭指向】:指向消息接收方
b. 泛化(Inheritance)
就是一般理解的繼承關係,子用例和父用例類似,但表現出更特別的行爲;子用例將繼承父用例的全部結構、行爲和關係。子用例可使用父用例的一段行爲,也能夠重載它。父用例一般是抽象的。
【箭頭指向】:指向父用例
c. 包含(Include)
包含關係用來把一個較複雜用例所表示的功能分解成較小的步驟。
【箭頭指向】:指向分解出來的功能用例
d. 擴展(Extend)
擴展關係是指用例功能的延伸,至關於爲基礎用例提供一個附加功能。
【箭頭指向】:指向基礎用例
e. 依賴(Dependency)
以上4種關係,是UML定義的標準關係。但VS2010的用例模型圖中,添加了依賴關係,用帶箭頭的虛線表示,表示源用例依賴於目標用例。
【箭頭指向】:指向被依賴項
5. 項目(Artifact)
用例圖雖然是用來幫助人們形象地理解功能需求,但卻沒多少人可以通看懂它。不少時候跟用戶交流甚至用Excel都比用例圖強,VS2010中引入了「項目」這樣一個元素,以便讓開發人員可以在用例圖中連接一個普通文檔。
用依賴關係把某個用例依賴到項目上:
而後把項目-》屬性 的Hyperlink設置到你的文檔上;
這樣當你在用例圖上雙擊項目時,就會打開相關聯的文檔。
6. 註釋(Comment)
包含(include)、擴展(extend)、泛化(Inheritance) 的區別:
條件性:泛化中的子用例和include中的被包含的用例會無條件發生,而extend中的延伸用例的發生是有條件的;
直接性:泛化中的子用例和extend中的延伸用例爲參與者提供直接服務,而include中被包含的用例爲參與者提供間接服務。
對extend而言,延伸用例並不包含基礎用例的內容,基礎用例也不包含延伸用例的內容。
對Inheritance而言,子用例包含基礎用例的全部內容及其和其餘用例或參與者之間的關係;
一個用例圖示例: