UML實例:ATM中的用例圖 類圖和順序圖詳解
本節(jié)和大家一起學(xué)習(xí)一下UML實例,我們在日常生活中也經(jīng)常和ATM打交道,本節(jié)就以ATM系統(tǒng)為例將前面幾章中學(xué)到的用例圖、類圖、順序圖知識運用到此例中。下面讓我們一起來學(xué)習(xí)具體介紹吧。
統(tǒng)一建模語言UML實例
"例,比也"(《說文》),本次連載將給出一個利用UML進(jìn)行建模的完整實例,綜合應(yīng)用前面學(xué)到的知識,達(dá)到"舉此以例其余"(元劉壎《隱居通議·歐陽公》)的目的。
在我國十年前ATM(自動取款機(jī))還是一個很新鮮的事物,現(xiàn)在在城市的大街小巷隨處可見。我們在日常生活中也經(jīng)常和ATM打交道。本章我們將以簡化的ATM系統(tǒng)為例將前面幾章中學(xué)到的用例圖、類圖、順序圖、狀態(tài)圖、活動圖及協(xié)作圖知識運用到此例中。
1.1用例圖
首先看一下UML實例中的用例圖,參與者"銀行儲戶"和ATM機(jī)。簡化后的ATM機(jī)僅有取款、存款及其余功能。其余功能不做詳細(xì)說明。
圖1.1自動取款機(jī)(ATM)系統(tǒng)用例圖
銀行儲戶在ATM機(jī)上完成取款、存款及其他業(yè)務(wù)。
1.2類圖
我們來看一下UML實例中的類圖,圖1.2所示的銀行系統(tǒng)類圖和圖3.5是類似的,只是將工作人員換成了ATM。整個銀行系統(tǒng)包括了帳戶庫、銀行儲戶庫及ATM系統(tǒng)。
許多單個的帳戶組成了帳戶庫。帳戶具有帳戶類型、帳戶號、余額三個屬性,均為private,其類型分別為char,int,double。六個操作分別為setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance為protected其余均為public。
setType設(shè)置帳戶類型,返回類型為void,參數(shù)類型為char,輸入帳戶類型。
getType獲取帳戶類型,返回類型為char,無參數(shù)。
setAccountNumbe設(shè)置帳戶號,返回類型為void,參數(shù)類型為int,輸入帳戶號。
getAccountNumbe獲取帳戶號,返回類型為int,無參數(shù)。
caculateBalance計算余額,返回類型為void,參數(shù)為double,第一個參數(shù)為輸入存取款數(shù)額,第二個參數(shù)為存款余額,既為輸入也為輸出。
getBalance獲取帳戶余額,返回類型為double,無參數(shù)。
許多銀行儲戶組成了儲戶庫。ATM系統(tǒng)包含了許多ATM機(jī)。銀行儲戶及ATM機(jī)兩個類包含哪些屬性,哪些操作,它們的可見性及操作的返回類型、參數(shù)個數(shù)、參數(shù)類型從類圖上都一目了然。更多的屬性及操作都可以一一加上,使這個類圖更詳細(xì)更完整,從而使參與項目的每個成員都能無歧義的明了整個設(shè)計的類的結(jié)構(gòu)。同樣對于一個真正的銀行系統(tǒng),這個類圖過于簡單。比如帳戶類型我們可以先定義一個abstractclass,它包含一個帳戶最基本的屬性及操作。而有些操作先定義為abstract,如余額的計算。然后再繼承這個abstractclass,我們可以有savingaccount和checkingaccount等等。不同的帳戶有不同的余額計算方法,我們可以加上具體的算法。對于不同的帳戶可能還有一些它特有的操作,我們也可以加上,比如savingaccount在存款達(dá)到多少時可以享受機(jī)票打折的優(yōu)惠。對于此UML實例通過類圖不僅可以使設(shè)計者明確的表達(dá)自己的設(shè)計意圖,也能幫組自己整理思路,充實及優(yōu)化自己的設(shè)計。
圖1.2銀行系統(tǒng)類圖
1.3順序圖
再來看一下UML實例中的順序圖,圖1.3描述了顧客在ATM機(jī)上取款時信息的流動情況。以時間為順序。因為僅是示例,所以整個過程是沒有出現(xiàn)任何故障時的流程,并且只畫到了取款結(jié)束。通過這個圖,我們可以看出消息是如何在系統(tǒng)中不同對象之間進(jìn)行交互。
通過流程圖我們可以很清楚地看到系統(tǒng)是如何工作的,系統(tǒng)各部分之間的信息及控制是如何發(fā)送的,整個流程是否合理。流程圖對我們的設(shè)計起到了很好的幫助作用。注意在本圖沒有一個生命線終端有一個"X",這是因為這個流程中還未遇到有對象生命結(jié)束。當(dāng)有對象生命結(jié)束時需在對應(yīng)的生命線終端畫"X",表明這個對象在這時被銷毀。
首先銀行儲戶將ATM卡插入讀卡機(jī),讀卡機(jī)將信息傳給客戶管理,客戶管理提出查詢密碼,顯示部分將輸入密碼請求顯示出來…..因為這個順序圖較長,且很清晰,即便是初學(xué)者也很容易讀懂,在此就不對本圖做過多的解釋。
圖1.3ATM取款順序圖
【編輯推薦】