佛山職業技術學院 馮欣悅
基于UML的銀行管理系統的建模
佛山職業技術學院馮欣悅
本文簡單介紹了UML的基本建模方法,通過分析銀行管理系統,結合軟件工程面向對象的分析方法與開發技術,基于UML設計了系統的用例模型、靜態模型、動態模型以及部署模型,使得系統開發人員根據建立起來的模型進行編碼,降低了系統的開發成本,減小了系統的開發風險,從而為系統的順利開發與正確實施提供了保證。
UML;用例;模型;銀行管理系統
UML(Unified Modeling Language)的中文名稱翻譯為“統一建模語言”,它是一種標準語言,它的定義良好、易于表達并且功能強大。UML的目標之一就是為開發團隊提供標準通用的設計語言來開發和構建計算機應用。當模型建立之后,模型可以被UML工具轉化成指定的程序語言代碼。
UML主要有用例模型、靜態模型、動態模型與部署模型,使用這四種模型,開發者可以從各個角度來觀察和展示系統的建模。本文結合Rational Rose2003工具,通過UML來設計銀行管理系統,并詳細的闡述了UML的建模過程。
2.1系統總體需求分析
銀行是金融機構之一,它與我們的生活息息相關。在現實生活中,銀行的業務及其功能非常的復雜,為了便于學習,本文只簡單介紹了銀行這個龐大系統最基本的功能。本銀行系統的功能如下:
(1)客戶可以開戶。(2)客戶可以存錢。(3)客戶可以對已存入的錢進行管理,可以查看余額、取款以及轉賬等。
(4)客戶可以銷戶。
2.2建立系統用例模型
銀行職員用例圖(見圖1):
(1)登錄銀行系統。銀行職員只有順利通過系統的身份驗證才能登錄系統并進入銀行系統進行下一步的操作。
(2)管理客戶的賬戶,包括:創建賬戶、刪除賬戶以及修改賬戶信息。

圖1 銀行職員用例圖

圖2 客戶用例圖
客戶用例(見圖2)如下:
(1)存款。銀行職員幫助客戶將錢存入客戶賬戶中。
(2)取款。銀行職員幫助客戶將錢從自己賬戶中取出。
(3)轉賬。銀行職員可以幫助客戶轉賬,可以轉至同一銀行的其它賬戶,也可以轉至不同銀行的不同賬戶。轉賬又分為兩種:本行轉賬和跨行轉賬,轉賬與本行轉賬和跨行轉賬之間是繼承關系。
2.3建立系統靜態模型
根據系統需求,創建系統靜態模型。我們可以分析出系統中存在的主要實體類:Bank、Account以及Customer。
輔助類:Deposit、Withdraw以及 Transfer轉賬,這三個類又可以抽象出父類Transaction。
用戶界面類:MainForm、LoginFrame、QueryFormo、WithdrawForm、AccountForm、以及TransferForm。(見圖3)

圖3 銀行管理系統類圖
2.4建立系統動態模型
2.4.1 銀行職員登錄銀行系統的系列圖(見圖4)與交互圖(見圖5)
銀行職員登錄銀行系統用例的工作流程:
(1)銀行職員進入系統,打開LoginFrame,輸入自己的用戶名和密碼并提交。
(2)系統對銀行職員輸入的用戶名和密碼進行驗證,如果正確,則創建系統主界面。
(3)如果用戶名和密碼不正確,未通過驗證,則返回錯誤提示信息。2.4.2 銀行賬戶狀態圖(見圖5)

圖4 銀行職員登錄銀行系統的序列圖

圖5 銀行職員登錄銀行系統的交互圖
在銀行系統中,賬戶有明確的狀態轉換。賬戶包含以下三種狀態:被創建的新賬戶、被修改后賬戶、睡眠賬戶和被刪除的賬戶。
(1)當客戶開立賬戶時,將創建一個新的賬戶。
(2)客戶若要求修改原來賬戶的內容,則賬戶信息被修改。
(3)賬戶長期擱置未使用,銀行則認為賬戶進入了睡眠賬戶狀態。
(4)客戶不再使用該賬戶,可對賬戶進行注銷,賬戶被刪除。

圖5 銀行賬戶狀態圖

圖6 銀行職員登錄系統活動圖
2.4.3銀行職員登錄系統活動圖
銀行職員登錄系統的活動圖(見圖6)中,創建了Clerk和System兩個泳道,具體活動描述如下:
(1)系統要求用戶需輸入用戶名和密碼、并做出提示。
(2)銀行職員輸入用戶名和密碼并提交,系統收到用戶名和密碼并驗證是否正確。
(3)如用戶名和密碼正確,則進入主界面,否則,則顯示錯誤信息,并提示用戶需重新輸入。
2.5建立系統部署模型(見圖7)
在銀行管理系統中,系統包括In Client、 Out Client、Database Server以及Bank Server四個節點。

圖7 銀行管理系統部署圖
本文以銀行管理系統為例,描述了基于 UML 的建模過程,通過 Rational Rose 2003 工具對銀行管理系統進行了面向對象的建模設計,建立了系統的用例、靜態、動態以及部署四種模型。無論所要開發的系統所屬什么領域,無論所面對的工程項目多么復雜,設計者都可以借助UML來進行規劃和設計,并以此來對系統的機構進行描述,從而使得開發人員在編碼前有了參照,進而加快了開發的速度,提高了開發的質量。這一技術的深入與普及,促進了整個軟件產業的快速發展。