開始學習UML建模語言,從用例圖入手。建模工具選擇visio算法
用例圖描述的是參與者所理解的系統功能,主要元素是用例和參與者,是幫助開發團隊以一種可視化的方式理解系統的功能需求。這時處於項目初始,分析用戶需求的階段,不用管怎麼實現具體的功能,只要能向客戶形象化的表述項目的功能就行。工具
用例圖有四個部分:用例(Use Case), 參與者(Actor),系統邊界,關係。學習
1)參與者(Actor)spa
參與者是與系統交互的人或物。首先固然包括咱們的開發系統用戶,除此以外,與咱們開發的系統有關聯的其餘系統也算是參與者。設計
在UML圖中咱們用一個小人表示。blog
2)用例(Use Case)繼承
用例是參與者能夠感覺到的系統服務或功能單元。我理解的就是用戶可使用咱們開發的項目去作的任何事情資源
任何用例都不能在缺乏參與者的狀況下獨立存在,一樣,任何參與者也必需要有與之關聯的用例。在UML圖中咱們用橢圓表示:開發
3)系統邊界io
指系統與系統之間的界限。把系統邊界之外的同系統相關聯的其餘部分稱爲系統環境。
在UML圖中咱們用一個矩形表示。
4)關係
用例圖中的關係有4種:關聯,泛化,包含和擴展。
關聯:表示參與者和用例之間的交互。爲通訊途徑,任何一方均可發送或可接收消息。
箭頭指向:指向消息接收方。在UML中用直線表示
包含:包含關係用來把一個較複雜的用例所表示的功能分解成較小的步驟。包含用例是必須的,若是缺乏包含用例,基用例就是不完整的。
包含關係最典型的應用就是複用。這種狀況相似與在過程設計語言中,將程序的某一段算法封裝成一個子過程,而後在從主程序中調用這一子過程(這麼說好像懂了點)
在UML中,包含關係用帶箭頭的虛線段加《include》表示,箭頭指向被包含的用例。
在VISIO中沒有找到include包含關係,解決辦法:
1)選擇菜單欄中的'UML'-》單擊’構造型‘-》新建-》構造型那裏輸入include-》基類那裏選擇概括,點擊肯定
2)將UML用例下的「擴展」拖到繪圖頁上-》雙擊或右鍵屬性-》構造下拉列表中選擇include-》肯定
擴展:擴展關係是指用例功能的延伸。與包含關係不一樣的是,擴展用例是可選的,若是缺乏擴展用例。不會影響到基用例的完整性。
在UML中,擴展關係用帶箭頭的虛線段加《extend》表示,要注意的是箭頭指向基用例。
泛化:用例的泛化指的是一個父用例能夠被特化造成多個子用例,用咱們熟悉的語言來講就是繼承關係。
在UML中,泛化關係用空心箭頭表示,箭頭指向的是父用例。
把書上的用例圖用VISIO操做一遍:
1)肯定參與者:這裏的參與者有業務員和儲戶。
2)功能:包括存款和取款兩大基本功能,這兩個基本功能又包含一些子功能。
步驟:1)打開visio,新建-》軟件-》UML模型圖。
2)在模型資源管理器中右鍵頂層包,新建用例圖。
3)按照上文的方法先把include包含關係建立出來。
4)添加兩個參與者,爲業務員和儲戶,這些都是能夠從UML用例中直接拖過去。雙擊或右鍵均可以改變屬性。
5)添加系統邊界。
6)根據系統功能添加實例和各個實例之間的關係。(搞不明白的是擴展和包含用例之間拖過來都是空心實現箭頭,和書上說的虛線箭頭不一樣,因此就右鍵改了下線段格式爲虛線,不知道這樣作行不行⊙﹏⊙)