UML實例中ATM類圖和用例圖解析
在學習UML的過程中,經(jīng)常會遇到UML實例問題,這里就向大家介紹一個UML實例中ATM類圖和類圖,主要以ATM取款機為例向大家講解UML的使用,希望本文的介紹對你的學習有所幫助。
UML實例中ATM類圖和用例圖
"例,比也"(《說文》),本次連載將給出一個利用UML進行建模的完整實例,綜合應(yīng)用前面學到的知識,達到"舉此以例其余"(元劉壎《隱居通議·歐陽公》)的目的。
在我國十年前ATM(自動取款機)還是一個很新鮮的事物,現(xiàn)在在城市的大街小巷隨處可見。我們在日常生活中也經(jīng)常和ATM打交道。本章我們將以簡化的ATM系統(tǒng)為例將前面幾章中學到的用例圖、類圖、順序圖、狀態(tài)圖、活動圖及協(xié)作圖知識運用到此例中。
1.1UML實例中ATM用例圖
首先看一下UML實例中的用例圖,參與者"銀行儲戶"和ATM機。簡化后的ATM機僅有取款、存款及其余功能。其余功能不做詳細說明。
圖1.1自動取款機(ATM)系統(tǒng)用例圖
銀行儲戶在ATM機上完成取款、存款及其他業(yè)務(wù)。
1.2UML實例中ATM類圖
圖1.2銀行系統(tǒng)類圖
我們來看一下UML實例中ATM類圖,圖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機。銀行儲戶及ATM機兩個類包含哪些屬性,哪些操作,它們的可見性及操作的返回類型、參數(shù)個數(shù)、參數(shù)類型從類圖上都一目了然。更多的屬性及操作都可以一一加上,使這個類圖更詳細更完整,從而使參與項目的每個成員都能無歧義的明了整個設(shè)計的類的結(jié)構(gòu)。同樣對于一個真正的銀行系統(tǒng),這個類圖過于簡單。比如帳戶類型我們可以先定義一個abstractclass,它包含一個帳戶最基本的屬性及操作。而有些操作先定義為abstract,如余額的計算。然后再繼承這個abstractclass,我們可以有savingaccount和checkingaccount等等。不同的帳戶有不同的余額計算方法,我們可以加上具體的算法。對于不同的帳戶可能還有一些它特有的操作,我們也可以加上,比如savingaccount在存款達到多少時可以享受機票打折的優(yōu)惠。對于此UML實例中ATM類圖不僅可以使設(shè)計者明確的表達自己的設(shè)計意圖,也能幫組自己整理思路,充實及優(yōu)化自己的設(shè)計。
【編輯推薦】
- UML精粹 UML類圖全面剖析
- 專家指導 UML類圖關(guān)系表示方法
- 四種UML類圖關(guān)系簡明介紹
- UML類圖關(guān)系大全
- UML基礎(chǔ)與應(yīng)用--UML類圖解析