銀行系統(tǒng)的分析與設計2.ppt_第1頁
銀行系統(tǒng)的分析與設計2.ppt_第2頁
銀行系統(tǒng)的分析與設計2.ppt_第3頁
銀行系統(tǒng)的分析與設計2.ppt_第4頁
銀行系統(tǒng)的分析與設計2.ppt_第5頁
免費預覽已結(jié)束,剩余55頁可下載查看

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、銀行系統(tǒng)的分析與設計-UML應用案例,Faculty of Software Engineering ,Chongqing University Wen Junhao E-mail: Tel: 86-23-65111964(O),一、系統(tǒng)需求,銀行是與生活緊密相關的一個機構(gòu),提供存款、取款、轉(zhuǎn)帳、信用卡、代理等多種業(yè)務。 在銀行設立帳戶的人或機構(gòu)通常被稱為銀行的客戶。 為了簡化,本次系統(tǒng)分析只考慮存款、取款、轉(zhuǎn)帳等基本功能。,根據(jù)上面對銀行系統(tǒng)的基本需求分析,可知這個簡化的銀行系統(tǒng)至少應該具有如下功能:,1、一個銀行可以有多個帳戶; 2、一個銀行可以有多個客戶; 3、一個客戶可以持有多個帳戶;

2、 4、一個賬戶可以有多個持有者; 5、可以開戶;6、可以注銷賬戶; 7、可以取錢;8、可以存錢; 9、在銀行內(nèi)帳戶轉(zhuǎn)帳; 10、不同銀行的賬戶之間轉(zhuǎn)帳,二、分析問題領域(一)、識別參與者(角色),參與者代表與系統(tǒng)交互的人、硬件設備或另一系統(tǒng)。它存在于系統(tǒng)的外部。 通過分析銀行系統(tǒng)的功能需求,可以識別出3個參與者: (1)Clerk(銀行職員):銀行的工作人員 (2)CustomerActor(客戶):任何在銀行中開戶的個人或組織 (3)BankActor(銀行):提供存、取等業(yè)務的銀行。客戶可在銀行中開戶或銷戶(關閉帳戶)。,(二)、識別用例,用例:規(guī)定系統(tǒng)或部分系統(tǒng)的行為,描述系統(tǒng)所執(zhí)行的動

3、作序列集,并為執(zhí)行者產(chǎn)生一個可供觀察的結(jié)果。 通過對需求的進一步分析,可確定系統(tǒng)中有如下用例存在: (1)Login(登錄):驗證用戶身份。 (2)Deposit fund(存款):存錢到帳戶。,(二)、識別用例,(3)Withdraw fund(取款):從帳戶中取錢。 (4)Maintain Account(管理帳戶):創(chuàng)建帳戶(開戶)、刪除帳戶(銷戶)及修改帳戶信息。 (5)Transfer fund(轉(zhuǎn)帳) (6)Transfer fund within a bank(在銀行內(nèi)轉(zhuǎn)帳) (7)Transfer fund between banks 其中用例(5)是(6)和(7)的父用例。,

4、系統(tǒng)用例圖,依賴,類屬,(三)、用例的事件流描述,用例的事件流是對完成用例行為所需的事件的描述。事件流描述了系統(tǒng)應該作什么,而不是描述系統(tǒng)應該怎樣做。 下面對前面識別出的用例逐個進行描述。,1、“登錄”活動圖,2、“存款”的活動圖,3、“取款”的活動圖,4、“轉(zhuǎn)帳”的活動圖,5、開戶(創(chuàng)建帳戶)的活動圖,輸入客戶基本信息,6、“刪除帳戶”的活動圖,前提是待刪除帳戶的余額為零,對于需結(jié)息的單位帳戶,還要讓該帳戶的余額積數(shù)為零時才可以刪除,否則影響軋帳平衡,系統(tǒng)將不能正常工作。實際應用中要根據(jù)是何種帳戶來作不同的處理。(P188圖有誤),7、“修改帳戶”的活動圖,三、靜態(tài)結(jié)構(gòu)模型,進一步分析系統(tǒng)需

5、求,識別出類及類之間的關系,確定它們的靜態(tài)結(jié)構(gòu)和動態(tài)行為,是面向?qū)ο蠓治龅幕救蝿铡?系統(tǒng)的靜態(tài)結(jié)構(gòu)模型主要用類圖或?qū)ο髨D描述。 靜態(tài)建模分三步:(1)定義類、(2)確定類的名字、屬性和操作(3)確定類與類之間的關系,建立類圖。,(一)、定義系統(tǒng)對象類,定義過系統(tǒng)需求,就可以根據(jù)系統(tǒng)需求來識別系統(tǒng)中所存在的對象。 系統(tǒng)對象的識別可以通過尋找系統(tǒng)域描述和需求描述中的名詞來進行,從系統(tǒng)需求描述中可以找到的名詞有銀行(Bank)、帳戶(Account)、客戶(Customer)、資金(Funds),這些是對象圖中的候選對象。 判斷是否應該為這些候選對象創(chuàng)建類的方法是:是否有與該對象相關的身份和行為。

6、如果有,則它是一個存在于模型中的對象,應該為之創(chuàng)建類。資金沒有對象,也沒有與資金相關的行為。,(一)、定義系統(tǒng)對象類,從上述分析可知,系統(tǒng)至少具有3個重要的類:Bank、Account、Customer。 在銀行中,對帳戶進行存錢、取錢、轉(zhuǎn)帳操作,要保留業(yè)務記錄。因此在系統(tǒng)中還應有代表這些業(yè)務記錄的對象存在:存(Deposit)、取(Withdraw)、轉(zhuǎn)帳(Transfer),這三個類都是一種業(yè)務記錄,故可抽象出父類:Transaction。 接著需確定這些對象的屬性和行為。,(1)類Bank的屬性和行為,bankCode: String name: String address: Stri

7、ng Phone:String Fax:String setBankCode(code: String) setName(name: String) setAddress(address: String) setPhone(phone: String) setFax(fax: String)(設置私有屬性),(1)類Bank的屬性和行為,getBankCode(code: String) getName(name: String) getAddress(address: String) getPhone(phone: String) getFax(fax: String)(訪問私有屬性),(2

8、)類Account的屬性和行為,bank: Bank holder: Customer accountNo: String createDate: Date balance: float (私有屬性) getHolders(): Customer newAccount(holder:Customer,balance:float):void remAccount(accountNo:String):void(銷戶) Withdraw(holderName:String,holderID:String,accountNo:String,money:float):float(返回取戶余額) Depo

9、sit(holderName:String,holderID:String,accountNo:String,money:float):float(返回存款戶余額),(2)類Account的屬性和行為,transferOut(accountNo: String, bankCode: String, money: float): float transferIn(accountNo:String, bankCode: String, money: float): float newBalance(): float(計算新的帳戶余額) update(): void(更新數(shù)據(jù)庫中的帳戶信息) sav

10、e(): void(將帳戶信息存儲到數(shù)據(jù)庫中) delete(): void(從數(shù)據(jù)庫中刪除帳戶),(2)類Account的屬性和行為,closeAccount(accountNo: String): void getAccount(accountNo:String): Account(返回指定貼的帳戶信息) query(holderName:String,holderID:String, accountNo:String, money:float, isSaving: Boolean):Boolean(查詢存取帳戶是否存在,若是取款,還要查詢帳戶余額是否足夠),(3)類Customer的屬性

11、和行為,Name: String customID: String address: String account: account getAccounts(): Account Query(name: String, id: String): Boolean newCustomer(name: String, id: String, address: String, account: Account ):void(創(chuàng)建客戶對象) save(): void(將客戶信息存儲到數(shù)據(jù)庫中) update(): void(更新DB中客戶信息) hasAccount():Boolean(判斷客戶是否還持

12、有帳戶) delete(): void(刪除DB中的客戶信息),(4)類Transaction的屬性和行為,私有屬性:account: Account createDate: Date fund: float(交易金額) newTransaction(account: Account, fund: float, date: Date): void save():void(將交易記錄存儲到數(shù)據(jù)庫中),(5)類Deposit的屬性和行為,繼承類Transaction,無私有屬性 newDeposit(account: Account, fund: float, date: Date):void(創(chuàng)

13、建存款交易記錄) save(): void(將存款交易記錄存儲到DB中),(6)類Withdraw的屬性和行為,繼承類Transaction(同樣有account,createDate及交易金額fund屬性)。 無私有屬性。 newWithdraw(account: Account, fund: float, date: Date): void(創(chuàng)建新的取款交易記錄) save(): void(將取款交易記錄存儲到DB中),(7)類Transfer的屬性和行為,繼承類Transaction transferAccountNo: String transferBank:Bank newTrans

14、fer(account: Account, transferAccountNo: String, transferBank: Bank, fund: float, date: Date): void(創(chuàng)建新的轉(zhuǎn)帳交易記錄,可是收帳戶或付帳戶) save(): void(將轉(zhuǎn)帳交易記錄存儲到DB中),(二)、定義用戶界面類,用戶與系統(tǒng)需要交互,一個用戶友好的系統(tǒng)通常都采用直觀的圖形化界面,因此需要定義系統(tǒng)的用戶界面類。 識別系統(tǒng)對象類和用戶界面類,對于后面建立相應的系統(tǒng)類圖和時序圖都具有關鍵性的作用。,1、類BankGUI(系統(tǒng)的主界面),是系統(tǒng)的主界面,含有存、取、轉(zhuǎn)、開、銷、改等相應操作按鈕

15、,當程序退出時,主界面窗口關閉。 newBankGUI(): void(創(chuàng)建系統(tǒng)主界面) deposit(): void(按下“存款”按鈕,調(diào)用該方法); withdraw(): void transfer(): void newAccount(): voiddelAccount():void modAccount(): void,類BankGUI系統(tǒng)主界面示例圖,2、類QueryDialog(帳戶查詢),界面類QueryDialog是用來根據(jù)帳戶的帳號查找?guī)粜畔⒌膶υ捒?。當按下主窗口BankGUI中的按鈕“刪除帳戶”和“修改帳戶信息”時,應先顯示該帳戶的基本信息(彈出對話框QueryDia

16、log),然后才能進入刪改操作。 newQDialog(): void(創(chuàng)建查詢窗口) query(): void 執(zhí)行帳戶查詢操作,類QueryDialog帳戶查詢對話示例圖,3、類DWDialog(存取界面框),此對話框提示輸入客戶姓名、ID號、帳號、密碼等相關信息。 含有兩個操作按鈕:存款(或取款)、取消 newDWDialog(): void創(chuàng)建存(?。┛顚υ?deposit(): void(按“存款”按鈕調(diào)用此方法) withdraw(): void(按“取款”按鈕調(diào)用此方法),DWDialog界面(存款)示例圖,DWDialog界面(取款)示例圖,4、類AccountDialog(

17、帳戶信息對話框),界面類AccountDialog用來填寫(開戶時)或顯示(刪改時)帳戶信息(客戶姓名、ID號、客戶地址、帳號、金額、存款各類等)的對話框。 含有“創(chuàng)建”(或“刪除”或“修改”)和“取消”兩個操作按鈕。 newADialog():void(創(chuàng)建填寫信息窗口) newADialog(account:Account): void(顯示) newAccount(): void(按下“創(chuàng)建”按鈕調(diào)用此方法) delAccount(): void modAccount(): void(類似),界面類AccountDialog示例圖1,界面類AccountDialog示例圖2,當按下主窗口

18、的“注銷帳戶”或“修改帳戶信息”按鈕時,對話框QueryDialog彈出,操作員填寫帳號并確定提交后,系統(tǒng)彈出對話框AccountDialog,顯示帳戶的詳細信息。,界面類AccountDialog示例圖3,5、類TransferDialog(轉(zhuǎn)帳信息填寫對話框),當按下主窗口BankGUI中的按鈕“轉(zhuǎn)帳”時,彈出此轉(zhuǎn)帳對話框,銀行職員填寫轉(zhuǎn)出、轉(zhuǎn)入帳戶信息及轉(zhuǎn)帳金額等,然后OK。 newTDialog(): void Transfer(): void(提交轉(zhuǎn)帳對話框內(nèi)容后,該方法被調(diào)用),類TransferDialog示例圖,6、類LoginDialog(登錄對話框),界面類LoginDia

19、log是用來輸入用戶名和密碼的對話框。在系統(tǒng)啟動時彈出提示用戶輸入驗證信息。 newLDialog(): void(創(chuàng)建用于輸入用戶名和密碼的對話框) submit(): void(提交對話框內(nèi)容) validate(name: String, pass: String):Boolean (驗證用戶名和密碼是否正確),類LoginDialog示例圖,(三)、建立類圖,識別出系統(tǒng)中的類后,還要識別出類間的關系(關聯(lián)、聚合、組合、類屬、依賴、實現(xiàn)關系,前面已講過),然后就可以建立類圖了。 在處理復雜問題時,通常使用分類的方法來有效地降低問題的復雜性。在面向?qū)ο蠼<夹g(shù)中,也可以采用同樣的方法將客觀

20、世界的實體映射為對象,并歸納成類。類、對象及它們之間的關系是面向?qū)ο蠹夹g(shù)中最基本的元素。類圖是面向?qū)ο笙到y(tǒng)最常用的圖,類圖描述了類集、接口集、協(xié)作及它們之間的關系。 類間的關系如下圖所示。,銀行簡化系統(tǒng)類圖,(四)、建立數(shù)據(jù)庫模型,在分析和設計系統(tǒng)的靜態(tài)結(jié)構(gòu)模型時需要進行數(shù)據(jù)分析和數(shù)據(jù)庫設計。 從上述系統(tǒng)類圖可知,本系統(tǒng)有6個實體類:Account、Customer、Bank、Deposit、Transfer、Withdraw,其中類Deposit、Transfer、Withdraw是抽象類Transaction的子類,類Customer和類Account之間存在“多對多”的關聯(lián)關系,類Bank和類Account之間具有“一對多”的組合關系,類Account和類Transaction之間存在“一對多”的關聯(lián)關系。 根據(jù)ER模型轉(zhuǎn)換為關系模型的原理可得如下圖:,銀行系統(tǒng)數(shù)據(jù)庫邏輯模型,四、動態(tài)行為模型,系統(tǒng)的動態(tài)行為模型可以用交互作用圖(時序圖和協(xié)作圖統(tǒng)稱交互作用圖)、狀態(tài)圖和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論