(下面參考了原部落客的内容,也加入自己的内容,為了自己腦補,也友善其他看到的人腦補)
使用StartUML繪制用例圖:
StartUML是支援UML的模組化平台軟體,是一款開發源碼的UML工具,是棒子國主導開發出來的,StartUML可以繪制9款UML圖,主要包括用例圖,類圖,序列圖,狀态圖,活動圖。
用例圖主要用來描述“使用者、需求、系統功能單元”之間的關系。它展示了一個外部使用者能夠觀察到的系統功能模型圖。
【用途】:幫助開發團隊以一種可視化的方式了解系統的功能需求。
用例圖所包含的元素如下:
1. 參與者(Actor)
表示與您的應用程式或系統進行互動的使用者、組織或外部系統。用一個小人表示。
2. 用例(Use Case)
用例就是外部可見的系統功能,對系統提供的服務進行描述。用橢圓表示。
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而言,子用例包含基礎用例的所有内容及其和其他用例或參與者之間的關系;
一個用例圖示例:
牢騷:
感覺用例圖還不成熟,并不能很好地表達系統的需求, 沒有UML背景的使用者幾乎不知道畫的是些什麼。
其次,包含關系、擴充關系的箭頭符号竟然是同樣的箭頭,僅靠上方寫個文字來加以差別,翻譯成其他語言的話,幾乎就不知道代表什麼意思。擴充關系的箭頭朝向也很難了解,為何要指向基用例,而不指向擴充用例。
VS2010添加的“項目”元素,是個很好的創新,能夠在用例圖中關聯word, excel這些文檔。但為什麼不把這些功能直接內建到用例裡面,輕按兩下用例就彈出一份文檔豈不更容易了解,非要畫蛇添足地加一個元件,僅僅為了提供個連結功能。
下面以一個簡單的案例說明如何使用StartUML工具畫用例圖
1:打開軟體選擇Empty Project然後點選ok即可,其他先不介紹。
2:然後在打開頁面的右上角找個這個右擊Add-->model;然後起名為model
3:操作完2如下圖所示。
4:然後右擊model(自己起的名字)點選Add diagram-->use case diagarm,點選完如下圖所示:
5:如果你不小心點選了StartUML的某個區的x,去通用工具區的view找即可
6:現在就可以開始畫用例圖了。(這裡簡單随便畫了一個,關鍵需要明白如何使用工具和工具的意思,勤加練習,自行腦補,熟練即可)