UML用例圖是非常有用的一種圖,在需求分析中,可以讓人們從繁重的文檔中解脫出來,并且促使人們在做需求時能夠更加準确、直覺的表現自己的意思。常用的語言文字往往是不能将一種事物表達得秀清晰,這時候就需要用其它的方式來進行表達,用例圖就是其中一種很好的方法,當然用例圖不僅僅隻是做為需求分析專用,他強大的應用性還可以用于其它很多地方,這裡就不詳細說明了。
1.首先簡單介紹一下UML.
UML(統一模組化語言,Unified Modeling Language)是一種定義良好、易于表達、功能強大且普遍适用的可視化模組化語言。它融入了軟體工程領域的新思想、新方法和新技術。它的作用域不限于支援面向對象的分析與設計,還支援從需求分析開始的軟體開發的全過程。在系統分析階段,我們一般用UML來畫很多圖,主要包括用例圖、狀态圖、類圖、活動圖、序列圖、協作圖、建構圖、配置圖等等,要畫哪些圖要根據具體情況而定。其實簡單的了解,也是個人的了解,UML的作用就是用很多圖從靜态和動态方面來全面描述我們将要開發的系統。
2.用例模組化
是UML模組化的一部分,它也是UML裡最基礎的部分。用例模組化的最主要功能就是用來表達系統的功能性需求或行為。
用例模組化可分為用例圖和用例描述。用例圖由參與者(Actor)、用例(Use Case)、系統邊界、箭頭組成,用畫圖的方法來完成。用例描述用來較長的描述用例圖中每個用例,用文本文檔來完成。
3.用例圖的說明
這裡得說明一下參與者.參與者不是特指人,是指系統以外的,在使用系統或與系統互動中所扮演的角色。是以參與者可以是人,可以是事物,也可以是時間或其他系統等等。還有一點要注意的是,參與者不是指人或事物本身,而是表示人或事物當時所扮演的角色。比如小明是圖書館的管理者,他參與圖書館管理系統的互動,這時他既可以作為管理者這個角色參與管理,也可以作為借書者向圖書館借書,在這裡小明扮演了兩個角色,是兩個不同的參與者。參與者在畫圖中用簡筆人物畫來表示,人物下面附上參與者的名稱。如下圖
接下來就是用例了,用例是對包括變量在内的一組動作序列的描述,系統執行這些動作,并産生傳遞特定參與者的價值的可觀察結果。這是 UML對用例的正式定義,初學者可能有點難懂。我們可以這樣去了解,用例是參與者想要系統做的事情。對于對用例的命名,我們可以給用例取一個簡單、描述性的名稱,一般為帶有動作性的詞。用例在畫圖中用橢圓來表示,橢圓下面附上用例的名稱。如下圖
系統邊界是用來表示正在模組化系統的邊界。邊界内表示系統的組成部分,邊界外表示系統外部。系統邊界在畫圖中方框來表示,同時附上系統的名稱,參與者畫在邊界的外面,用例畫在邊界裡面。因為系統邊界的作用有時候不是很明顯。(在畫圖時可省略)
箭頭用來表示參與者和系統通過互相發送信号或消息進行互動的關聯關系。箭頭尾部用來表示啟動互動的一方,箭頭頭部用來表示被啟動的一方,其中用例總是要由參與者來啟動。
4.接下來就是要說說用例描述了,可以說好的用例描述直接決定工程的品質。用例圖隻是簡單地用圖描述了一下系統,但對于每個用例,我們還需要有詳細的說明,這樣就可以讓别人對這個系統有一個更加詳細的了解,這時我們就需要寫用例描述。
對于用例描述的内容,一般沒有硬性規定的格式,但一些必須或者重要的内容還是必須要寫進用例描述裡面的。用例描述一般包括:簡要描述(說明)、前置(前提)條件、基本事件流、其他事件流、異常事件流、後置(事後)條件等等。下面說說各個部分的意思:
簡要描述:對用例的角色、目的的簡要描述;
前置條件:執行用例之前系統必須要處于的狀态,或者要滿足的條件;
基本事件流:描述該用例的基本流程,指每個流程都“正常”運作時所發生的事情,沒有任何備選流和異常流,而隻有最有可能發生的事件流;
其他事件流:表示這個行為或流程是可選的或備選的,并不是總要總要執行它們;
異常事件流:表示發生了某些非正常的事情所要執行的流程;
後置條件:用例一旦執行後系統所處的狀态;