新手指南 UML用例圖初探
本文和大家重點討論一下UMLUML用例圖,UML建模工具有很多值得學習的地方,你對UMLUML用例圖是否熟悉,這里就和大家分享一下,相信通過本文的學習你對UMLUML用例圖的概念一定會有深刻的理解。
UML用例圖
在實際工作中,大部分程序員很少接觸到需求分析,即使有需求分析,也是草草了事,沒有用正規的方式來表達,所以一般程序員使用UML用例圖的機會是不多的。但是卻又常常在各種媒體上看見UML用例圖,于是對一種常常出現,自己又不太熟悉的技術,會產生恐懼。如果說對MDA或者CORBA這樣的技術產生恐懼還是值得的話,對UML用例圖產生恐懼是非常不值的。因為MDA和CORBA這樣的技術也許要花上半年的時間才能夠初步了解,而克服UML用例圖恐懼癥,則只要不到一天的時間。
UML用例圖初感
UML是一組圖示符號的標準。所謂圖示符號,就是一組定義好的圖示,它們可以表達定義好的各種意思。用UML進行軟件建模,就是用規定好的符號畫圖,這些圖表達了開發人員腦中的軟件系統。用UML進行軟件建模,其難度并不比我們小時候上的美術課更難。在美術課上,一個圓形加上四根線條表示太陽,一個三角形加上一個矩形表示房子;同理,在UML的用例圖中,一個橢圓表示用例,一個小人表示參與者。我并不認為它們之間有質的區別,想到我對這種小學生畫圖課恐懼了幾年,不由得感到羞愧。
用例圖是UML的九個圖中較為重要和常用的一種圖。常常用于軟件開發的需求分析階段,也能用于軟件的系統測試階段。簡單的來說,用例圖是描述系統的外部視圖。
在開始設計一個軟件系統時(更廣義的情況下,可以用來設計任何系統),需要一種手段來發現系統的功能,用例圖雖然是圖示,但是這些圖示隱含了一種啟發系統功能的手段。其實所有的UML圖都只包含圖示和標準,并不包含方法,但是它們往往隱含了某種方法。UML和軟件開發方法的關系,很類似于漢字和語文的關系。
用例圖包含了三種基本的概念:用例、角色和系統。它們可以組合起來表達系統的外部視圖。而且這種表達方式是如此直觀和簡單。
第一張UML用例圖
畫用例圖是一件很簡單的事情,而且感覺還很舒適,因為用例圖簡潔、直觀。雖然用例圖不能像HelloWorld一樣運行,也不能生成代碼,不過畫一張清晰的用例圖還是很有成就感的。
我使用的工具是Eclipse+EclipseUML插件,功能不如Rose,但是是開源而且免費的(EclipseUML有free版也有企業版),而且效果也不錯。第一張用例圖如下:
色(客戶和保險銷售員)以及三個用例(簽訂保險單、銷售統計資料、客戶數據資料),另外還有四個連接線以及一個注釋。如果在紙上或者合適的工具中,畫這樣一張用例大概只需要五分鐘吧。不過僅僅畫出來是沒有意義的,需要弄清楚其背后真正的含義才行。
理解UML用例圖
可以這樣簡單的理解用例圖中的一些概念,系統(System)指的是軟件系統,它可以包含一些用例,并界定系統的邊界,邊界之內的屬于系統的功能和行為,邊界之外的則不是系統所關心的內容。系統規定了一個具有某些功能的黑盒子,在系統之外看到的僅僅是這個系統的功能,而不能看到系統的內部細節。這一點也是用例圖經常被用來做系統測試的原因。當然這些測試一般是黑盒測試。
◆角色(Actor)是與系統中的用例交互的一些實體,在實際情況中,角色可以是人,也可以是其他系統或者硬件設備。在畫用例圖的過程中,角色往往是第一個被確定的,因為系統或者用例在開始時是模糊的,但是參與系統的角色是最容易明晰的。有了角色之后,根據角色與系統的交互,以及角色要求的功能,可以進一步確定系統和用例。
◆用例(Usecase)指的是系統的功能,它是系統某個功能的所有執行動作的集合。在UML圖示中它是一個橢圓,但是具體分析用例的時候需要給出這個用例的所有執行動作的步驟。例如上圖中的“簽訂保險單”用例,就可以分為幾個步驟:第一,客戶發出保險單請求;第二,系統給出保險單樣式表;第三,用戶填寫保險單樣式表;第四,系統檢查用戶提交的保險單格式是否規范;第五,如果不規范則返回第二步,如果規范則給保險單銷售員發出消息;第六,保險單銷售員填寫保險單;第七,保險單銷售員將填寫好的保險單加入數據庫,并將客戶資料輸入客戶數據庫。當然,以上步驟僅僅是我想象的,我還從來沒有見過什么“保險單”,這次過了一把癮。
◆連接(Assocation)是角色與用例的連接,表達此角色可以初始化此用例。
◆注釋(Note)可以添加到任何地方,對用例圖的不同部分加以說明。
【編輯推薦】