日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

UML综合实例

發(fā)布時(shí)間:2025/7/14 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML综合实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ATM(自動(dòng)取款機(jī))現(xiàn)在在城市的大街小巷隨處可見(jiàn)。我們?cè)谌粘I钪幸步?jīng)常和ATM打交道。本章我們將以簡(jiǎn)化的ATM系統(tǒng)為例將前面幾章中學(xué)到的用例圖、類(lèi)圖、順序圖、狀態(tài)圖、活動(dòng)圖及協(xié)作圖知識(shí)運(yùn)用到此例中。

1 用例圖

  參與者"銀行儲(chǔ)戶(hù)"和ATM機(jī)。簡(jiǎn)化后的ATM機(jī)僅有取款、存款及其余功能。其余功能不做詳細(xì)說(shuō)明。

?銀行儲(chǔ)戶(hù)在ATM機(jī)上完成取款、存款及其他業(yè)務(wù)。

?

2 類(lèi)圖

  圖2所示的銀行系統(tǒng)類(lèi)圖和圖5是類(lèi)似的,只是將工作人員換成了ATM。整個(gè)銀行系統(tǒng)包括了帳戶(hù)庫(kù)、銀行儲(chǔ)戶(hù)庫(kù)及ATM系統(tǒng)。

  許多單個(gè)的帳戶(hù)組成了帳戶(hù)庫(kù)。帳戶(hù)具有帳戶(hù)類(lèi)型、帳戶(hù)號(hào)、余額三個(gè)屬性,均為private,其類(lèi)型分別為char,int,double。六個(gè)操作分別為setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance為protected其余均為public。

   setType設(shè)置帳戶(hù)類(lèi)型,返回類(lèi)型為void,參數(shù)類(lèi)型為char,輸入帳戶(hù)類(lèi)型。

   getType獲取帳戶(hù)類(lèi)型,返回類(lèi)型為char,無(wú)參數(shù)。

   setAccountNumbe設(shè)置帳戶(hù)號(hào),返回類(lèi)型為void,參數(shù)類(lèi)型為int,輸入帳戶(hù)號(hào)。

   getAccountNumbe獲取帳戶(hù)號(hào),返回類(lèi)型為int,無(wú)參數(shù)。

   caculateBalance計(jì)算余額,返回類(lèi)型為void,參數(shù)為double,第一個(gè)參數(shù)為輸入存取款數(shù)額,第二個(gè)參數(shù)為存款余額,既為輸入也為輸出。

   getBalance獲取帳戶(hù)余額,返回類(lèi)型為double,無(wú)參數(shù)。

  許多銀行儲(chǔ)戶(hù)組成了儲(chǔ)戶(hù)庫(kù)。ATM系統(tǒng)包含了許多ATM機(jī)。銀行儲(chǔ)戶(hù)及ATM機(jī)兩個(gè)類(lèi)包含哪些屬性,哪些操作,它們的可見(jiàn)性及操作的返回類(lèi)型、參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型從類(lèi)圖上都一目了然。更多的屬性及操作都可以一一加上,使這個(gè)類(lèi)圖更詳細(xì)更完整,從而使參與項(xiàng)目的每個(gè)成員都能無(wú)歧義的明了整個(gè)設(shè)計(jì)的類(lèi)的結(jié)構(gòu)。同樣對(duì)于一個(gè)真正的銀行系統(tǒng),這個(gè)類(lèi)圖過(guò)于簡(jiǎn)單。比如帳戶(hù)類(lèi)型我們可以先定義一個(gè)abstract class,它包含一個(gè)帳戶(hù)最基本的屬性及操作。而有些操作先定義為abstract,如余額的計(jì)算。然后再繼承這個(gè)abstract class,我們可以有saving account 和checking account等等。不同的帳戶(hù)有不同的余額計(jì)算方法,我們可以加上具體的算法。對(duì)于不同的帳戶(hù)可能還有一些它特有的操作,我們也可以加上,比如saving account在存款達(dá)到多少時(shí)可以享受機(jī)票打折的優(yōu)惠。通過(guò)類(lèi)圖不僅可以使設(shè)計(jì)者明確的表達(dá)自己的設(shè)計(jì)意圖,也能幫組自己整理思路,充實(shí)及優(yōu)化自己的設(shè)計(jì)。

?

圖2 銀行系統(tǒng)類(lèi)圖

?

3 順序圖

  圖5.3描述了顧客在ATM機(jī)上取款時(shí)信息的流動(dòng)情況。以時(shí)間為順序。因?yàn)閮H是示例,所以整個(gè)過(guò)程是沒(méi)有出現(xiàn)任何故障時(shí)的流程,并且只畫(huà)到了取款結(jié)束。通過(guò)這個(gè)圖,我們可以看出消息是如何在系統(tǒng)中不同對(duì)象之間進(jìn)行交互。

  通過(guò)流程圖我們可以很清楚地看到系統(tǒng)是如何工作的,系統(tǒng)各部分之間的信息及控制是如何發(fā)送的,整個(gè)流程是否合理。流程圖對(duì)我們的設(shè)計(jì)起到了很好的幫助作用。注意在本圖沒(méi)有一個(gè)生命線終端有一個(gè)"X",這是因?yàn)檫@個(gè)流程中還未遇到有對(duì)象生命結(jié)束。當(dāng)有對(duì)象生命結(jié)束時(shí)需在對(duì)應(yīng)的生命線終端畫(huà)"X",表明這個(gè)對(duì)象在這時(shí)被銷(xiāo)毀。

  首先銀行儲(chǔ)戶(hù)將ATM卡插入讀卡機(jī),讀卡機(jī)將信息傳給客戶(hù)管理,客戶(hù)管理提出查詢(xún)密碼,顯示部分將輸入密碼請(qǐng)求顯示出來(lái)…..因?yàn)檫@個(gè)順序圖較長(zhǎng),且很清晰,即便是初學(xué)者也很容易讀懂,在此就不對(duì)本圖做過(guò)多的解釋。

?

?圖3 ATM取款順序圖

?

4 狀態(tài)圖

  圖4描述了顧客在ATM機(jī)上進(jìn)行操作會(huì)經(jīng)歷的幾種狀態(tài),及各種狀態(tài)之間轉(zhuǎn)換的條件。因?yàn)槭呛?jiǎn)化了的例子,所以除了等待顧客插入磁卡的起始狀態(tài)和結(jié)束服務(wù)的終止?fàn)顟B(tài),顧客會(huì)處于輸入密碼、選擇服務(wù)類(lèi)型、存款及取款四種狀態(tài)。

圖4 ATM狀態(tài)圖

?

插入磁卡后進(jìn)入輸密碼狀態(tài),當(dāng)密碼輸入正確時(shí)進(jìn)入選擇服務(wù)類(lèi)型狀態(tài),當(dāng)輸入密碼不正確時(shí),停留在原狀態(tài),但如果三次不正確,服務(wù)結(jié)束。進(jìn)入選擇服務(wù)類(lèi)型后根據(jù)選擇的不同,顧客可進(jìn)入存款和取款狀態(tài)。存、取款結(jié)束后,顧客既可以選擇結(jié)束服務(wù)到最終狀態(tài),也可以選擇繼續(xù)服務(wù)回到選擇服務(wù)類(lèi)型狀態(tài)。

  通過(guò)狀態(tài)圖我們可以無(wú)歧義的了解各個(gè)活動(dòng)角色是如何在不同狀況下轉(zhuǎn)換的,轉(zhuǎn)換的條件是什么,是否會(huì)出現(xiàn)死鎖現(xiàn)象,是否有條件沒(méi)考慮周全,是否有狀態(tài)無(wú)法達(dá)到。狀態(tài)圖可以幫助我們發(fā)現(xiàn)問(wèn)題,并及時(shí)改正。

  

5 活動(dòng)圖

  圖5參考了Randy Miller的《A Hands-On Introduction for Developers》一文,3圖中的客戶(hù)管理和事物管理對(duì)應(yīng)于5圖中的Bank,圖3中的讀卡機(jī)、顯示、輸入設(shè)備及點(diǎn)鈔機(jī)對(duì)應(yīng)于5圖中的ATM Machina,銀行儲(chǔ)戶(hù)就是Customer。初看活動(dòng)圖和順序圖表達(dá)的意義很接近。但我們可以注意到順序圖著重時(shí)間的順序,而活動(dòng)圖側(cè)重于各部分之間的相互制約,對(duì)于一些并行的活動(dòng)能夠有效的表示出來(lái)。例如5圖中fork和join處,我們可以很清楚的看到一些并行活動(dòng)的存在。

  這個(gè)活動(dòng)圖以顧客插入卡為開(kāi)始,以顧客取卡結(jié)束。我們可以看到活動(dòng)圖的重點(diǎn)雖然不在時(shí)間順序,但我們同樣可以得到時(shí)間的信息。


??????

?

圖5 ATM銀行系統(tǒng)活動(dòng)圖

?

6 協(xié)作圖

  在第四章中我們知道協(xié)作圖和順序圖是可以無(wú)信息損失的相互轉(zhuǎn)換,只是它們的側(cè)重點(diǎn)是不一樣的。順序圖著重于對(duì)象間消息傳遞的時(shí)間順序,協(xié)作圖著重于表達(dá)對(duì)象之間的靜態(tài)連接關(guān)系。圖6將3圖轉(zhuǎn)換為協(xié)作圖。

  1.插入ATM卡

  2.接受ATM卡

  3.查詢(xún)密碼

  4.顯示輸入密碼請(qǐng)求

  5.輸入密碼

  6.密碼傳遞

  7.請(qǐng)求確認(rèn)密碼合法性

  8.確認(rèn)密碼合法性

  9.詢(xún)問(wèn)服務(wù)類(lèi)別

  10.顯示輸入服務(wù)服務(wù)類(lèi)別請(qǐng)求

  11.輸入取款請(qǐng)求

  12.取款請(qǐng)求

  13.詢(xún)問(wèn)取款數(shù)額

  14.顯示輸入數(shù)額請(qǐng)求

  15.輸入取款數(shù)額

  16.傳遞取款數(shù)額

  17.詢(xún)問(wèn)取款數(shù)額確認(rèn)

  18.顯示確認(rèn)數(shù)額請(qǐng)求

  19.輸入確認(rèn)

  20.傳遞確認(rèn)信息

  21.數(shù)額合法性確認(rèn)請(qǐng)求

  22.確認(rèn)數(shù)額和法性

  23.出鈔請(qǐng)求

  24.計(jì)算帳戶(hù)余額

  25.出鈔

  26.取鈔

  27.傳遞余額并詢(xún)問(wèn)是否還需要其他服務(wù)

  28.顯示帳戶(hù)余額并提示選擇下面的服務(wù)

?

?

圖6 ATM系統(tǒng)協(xié)作圖

  從圖上我們可以看出協(xié)作圖的角色和順序圖的對(duì)象是一一對(duì)應(yīng)的,而協(xié)作圖上的各對(duì)象上的協(xié)作關(guān)系和順序圖上的消息傳遞是一一對(duì)應(yīng)的。

總結(jié)

以上是生活随笔為你收集整理的UML综合实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。