銀行賬戶管理系統詳細設計說明書
目錄

銀行賬戶管理系統詳細設計說明書

第一部分  引言

1.1  編寫目的

本說明對會議室管理系統專案的各模組、頁面、指令碼分別進行了實現層面上的要求和說明。

軟體開發小組的產品實現成員應該閱讀和參考本說明進行程式碼的編寫、測試。

1.2  背景

說明:

A、 軟體系統的名稱:銀行賬戶管理系統

B、 任務提出者:內蒙古大學計算機學院

開發者:魏曉蕾、宋健、付雨蛟、許楊、高宇、道如那、任海芬、趙家祥

本專案將實現基於伺服器端Java Web網站的銀行賬戶管理系統的原型部分,並且在該原型的基礎上進行功能的擴充套件和需求的界定,最終完成的版本將在全國範圍內推廣使用。提供銀行賬戶管理功能。

C、 本系統將作為銀行櫃員辦理事務和銀行賬戶管理的網站。本系統首先在三個異地銀行站點推廣使用,分別為呼和浩特分行、北京市分行、哈爾濱分行,並在三個站點設定分散式資料庫,利用分散式資料庫的讀取儲存優勢實現在三個異地銀行站點的存取款及轉賬等服務。

1.3  定義

IPO圖 —— 輸入/處理/輸出圖,一般用來描述一個程式的功能和機制;

1.4  參考資料

A、《JSP程式設計(第二版)》,範立鋒等著,人民郵電出版社

B、《21天學通Oracle(第三版)》,張朝明等著,電子工業出版社

C、《精通Oracle核心技術與專案實戰》,劉麗霞著,電子工業出版社

D、《分散式資料庫系統及其應用(第三版)》,徐俊剛、邵佩英著,科學出版社

第二部分  程式系統的結構

2.1  系統實現場景

系統實現場景如圖2-1所示。

圖2-1  系統實現場景

 

本系統實現銀行櫃員處理銀行事務的帳戶管理功能,為櫃員所使用的基於Java Web平臺的網站系統。

2.2  系統功能模組設計

系統功能模組劃分如圖2-2所示。

圖2-2  系統功能模組劃分

2.3  系統開發及執行環境

開發環境:

        A、Windows 7作業系統

        B、Eclipse-Jee-Mars-2-win32

        C、Oracle 10g 10.2.0

執行環境:

         A、Internet Explorer瀏覽器

2.4  系統專案簡介

2.4.1  專案概況

         A、工程型別:Java Web專案

         B、所用架構:MVC模式

         C、所用技術:JavaBean JSP Servlet技術

                                  連線Oracle分散式資料庫

         D、工程名稱:BankManagementSystem

2.4.2  專案原始碼檔案

2.4.2.1  JSP頁面

         o       Login.jsp                                       櫃員登入頁面

         o       LoginCheck.jsp                                  櫃員登入檢查頁面

         o       LoginFailure.html                                櫃員登入失敗頁面

         o       ClientLogin.jsp                                  客戶登入頁面

         o       ClientLoginOperation.jsp                          客戶登入成功頁面

         o       MainPage.jsp                                   櫃員事務主頁面

         o       CreateCard.jsp                                  辦卡資訊顯示頁面

         o       CreateCardPassword.jsp                          辦卡錄入密碼頁面

         o       CreateCardOperation.jsp                          辦卡操作頁面

         o       ChangePassword.jsp                             修改密碼資訊顯示頁面

         o       ChangePasswordForm.jsp                         修改密碼錶單頁面

         o       ChangePasswordOperation.jsp                     修改密碼操作頁面

         o       LostCard.jsp                                    掛失/解掛資訊顯示頁面

         o       LostCardOperation.jsp                            掛失/解掛操作頁面

         o       ReCreateCard.jsp                                補卡資訊顯示頁面

         o       ReCreateCardOperation.jsp                        補卡操作頁面

         o       RemoveCard.jsp                                 銷卡資訊顯示頁面

         o       RemoveCardOperation.jsp                         銷卡操作頁面

         o       SaveInMoney.jsp                                存款資訊顯示頁面

         o       SaveInMoneyForm.jsp                            存款表單頁面

         o       SaveInMoneyOperation.jsp                       存款操作頁面

         o       TakeOutMoney.jsp                              取款資訊顯示頁面

         o       TakeOutMoneyForm.jsp                          取款表單頁面

         o       TakeOutMoneyOperation.jsp                      取款操作頁面

         o       ShowBalance.jsp                                查詢餘額頁面

         o       ShowHistory.jsp                               查詢歷史記錄資訊顯示頁面

         o       ShowHistoryOperation.jsp                        查詢歷史資訊操作頁面

         o       ForwardMoney.jsp                              轉賬資訊顯示頁面

         o       ForwardMoneyConfirm.jsp                       轉賬資訊確認頁面

         o       ForwardMoneyOperation.jsp                      轉賬操作頁面

2.4.2.2  JavaBean檔案

         o       Connbean/ConnectionOracle.java                  連線Oracle資料庫程式碼

2.4.2.3  圖片檔案

         o       images/1.gif                                   櫃員登入介面圖片

         o       images/2.jpg                                  客戶登入介面圖片

         o       images/3.jpg                                  系統主頁面介面圖片

         o       images/4.jpg                                  資訊顯示頁面介面圖片

         o       images/5.jpg                                  操作頁面介面圖片

第三部分  系統設計圖表

3.1  用例圖

3.1.1  用例表

參與者

銀行櫃員

客戶

事件序列1

錄入客戶資訊

 

 

事件序列2

辦卡

錄入密碼

 

事件序列3

修改密碼

 

 

事件序列4

掛失/解掛

掛失

解掛

事件序列5

補卡

銷卡

辦卡

事件序列6

銷卡

返回餘額

 

事件序列7

存款

計算手續費

 

事件序列8

取款

計算手續費

 

事件序列9

轉賬

轉賬資訊核對

計算手續費

事件序列10

查詢餘額

 

 

事件序列11

查詢交易歷史

選擇時間段

 

3.1.2  用例圖

3.2  序列圖

3.2.1  序列表

事件序列編號

事件序列名

發出事件人

接收事件人

事件序列1

櫃員登入

銀行櫃員

資料庫

事件序列2

客戶資訊錄入

客戶

銀行櫃員

事件序列3

查詢插入客戶資訊

銀行櫃員

資料庫

事件序列4

辦卡

客戶

銀行櫃員

事件序列5

銀行卡資訊與客戶資訊繫結

銀行櫃員

資料庫

事件序列6

修改密碼

客戶

銀行櫃員

事件序列7

更新資料庫密碼欄位

銀行櫃員

資料庫

事件序列8

掛失

客戶

銀行櫃員

事件序列9

更新資料庫銀行卡狀態欄位

銀行櫃員

資料庫

事件序列10

解掛

客戶

銀行櫃員

事件序列11

更新資料庫銀行卡狀態欄位

銀行櫃員

資料庫

事件序列12

補卡

客戶

銀行櫃員

事件序列13

刪除舊銀行卡記錄,新增新銀行卡記錄

銀行櫃員

資料庫

事件序列14

銷卡

客戶

銀行櫃員

事件序列15

刪除銀行卡記錄

銀行櫃員

資料庫

事件序列16

存款

客戶

銀行櫃員

事件序列17

更新銀行卡餘額欄位

銀行櫃員

資料庫

事件序列18

取款

客戶

銀行櫃員

事件序列19

更新銀行卡餘額欄位

銀行櫃員

資料庫

事件序列20

轉賬

客戶

銀行櫃員

事件序列21

更新新舊銀行卡餘額欄位

銀行櫃員

資料庫

事件序列22

查詢餘額

客戶

銀行櫃員

事件序列23

查詢餘額欄位

銀行櫃員

資料庫

事件序列24

查詢歷史交易

客戶

銀行櫃員

事件序列25

查詢交易表某時間段全部資訊

銀行櫃員

資料庫

3.2.2  序列圖

3.3  狀態圖

3.3.1  狀態表

狀態變遷編號

開始狀態

到達狀態

觸發事件

狀態變遷1

INIIT

UNUSED

初始化

狀態變遷1

UNUSED

OPEN

辦卡

狀態變遷1

OPEN

UNUSED

銷卡

狀態變遷1

OPEN

LOST

掛失

狀態變遷1

LOST

OPEN

解掛

狀態變遷1

LOST

TERMINATE

卡丟失

3.3.2  狀態圖

第四部分  資料庫設計

4.1  全域性ER圖

4.1.1  各實體集及其屬性圖集及其屬性圖實體集及其屬性圖實體集及其屬性圖

4.1.1.1  銀行櫃員實體集

4.1.1.2  客戶實體集

4.1.1.3  銀行卡實體集

4.1.1.4  分行實體集

4.1.2  實體集之間聯絡圖

4.2  全域性表結構

說明:

英文名:30個字元以內,符合一般識別符號命名規範,不用關鍵字或保留字及特殊符號。

中文名:30個漢字以內,不要用空格。

主鍵:組成主鍵欄位英文名列表,如果有多個欄位,用半形逗號隔開。

型別:char,varchar2,date,number取其一。

寬度:char最大2000,varchar2最大4000,date不填,number最大38(有效數字個數),寬度以夠用為好。

空否:如果不能為空,填N,可以為空,不填。

預設值:字元型用單引號包圍,其它型別不必。

唯一:如果所有記錄在此欄位上分量沒有重複值,填Y,無此限制,不填。

參照:如果此欄位資訊必須參照其它表(包括自己)的某欄位,則其上應該定義外來鍵,

填參照表英文名(參照欄位英文名),如果不是,不填。

備註:需要特別說明的資訊,比如取值範圍,特殊要求等,如沒有,不填。

表4‑1表名列表

編號

表中文名

表英文名

備註

1

客戶表

Client

儲存客戶的資訊

2

銀行卡總表

TotalCard

儲存所有分行銀行卡資訊

3

銀行卡表

Card

儲存某客戶銀行卡的資訊

4

櫃員表

Teller

儲存櫃員的資訊

5

分行表

SubBank

儲存各個分行的資訊

6

交易表

Trade

儲存各種交易資訊

以下列出每個表的明細資訊

表4‑2 Client(客戶表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

身份證號

CLIENTID

Char(18)

N

 

Y

 

 

2

姓名

CLIENTNAME

Varchar2(10)

N

 

 

 

 

3

手機號

CLIENTTELNO

Char(11)

N

 

 

 

 

表4‑3 TotalCard(銀行卡總表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

銀行卡號

CARDID

Char (19)

N

 

Y

 

 

2

狀態

CARDSTATUS

Char (1)

N

UNUSED

 

 

 

3

分行編號

SUBBANKID

Char (4)

N

 

 

Y

 

表4‑4 Card(銀行卡表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

銀行卡號

CARDID

Char(19)

N

 

Y

 

 

2

狀態

CARDSTATUS

Char(1)

N

OPEN

 

 

 

3

銀行卡密碼

CARDPS

Char(6)

N

 

 

 

 

4

餘額

CARDBALANCE

Float(10)

N

 

 

 

 

5

開戶時間

CARDCREATETIME

Date

N

 

 

 

 

6

身份證號

CLIENTID

Char(18)

N

 

 

Y

 

7

身份證號

TELLERID

Char(18)

N

 

 

Y

 

8

分行編號

SUBBANKID

Char(4)

N

 

 

Y

 

表4‑5 Teller(櫃員表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

身份證號

TELLERID

Char(18)

N

 

Y

 

 

2

櫃員姓名

TELLERNAME

Varchar2(10)

N

 

 

 

 

3

櫃員密碼

TELLERPS

Char(6)

N

 

 

 

 

4

分行編號

SUBBANKID

Char(4)

N

 

 

Y

 

表4‑6 SubBank(分行表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

分行編號

SUBBANKID

Char(4)

N

 

Y

 

 

2

分行名稱

SUBBANKNAME

Varchar2(12)

N

 

 

 

 

3

分行地址

SUBBANKADDR

Varchar2(20)

N

 

 

 

 

表4‑7 Trade(交易表)

編號

中文名

英文名

型別(寬度)

空否

預設值

唯一

參照

備註

1

交易編號

TRADEID

Char(6)

N

 

Y

 

 

2

源銀行卡號

FROMCARDID

Char(19)

N

 

Y

Y

 

3

目標銀行卡號

TOCARDID

Char(19)

N

 

 

Y

 

4

交易時間

TRADETIME

Date

N

 

 

 

 

5

交易金額

TRADEMONEY

Float(10)

N

 

 

 

 

6

手續費

TRADEFACTORAGE

Float(10)

N

 

 

 

無手續費以0.00計入

7

摘要

TRADEDIGEST

Varchar2(20)

 

 

 

 

 

第五部分  程式介面詳細設計與說明

5.1  櫃員登入元件

5.1.1  櫃員登入介面

5.1.1.1  呼和浩特分行櫃員登入

圖5-1  呼和浩特分行櫃員登入介面
5.1.1.2  北京分行櫃員登入

圖5-2  北京分行櫃員登入介面
5.1.1.3  哈爾濱分行櫃員登入

圖5-3  哈爾濱分行櫃員登入介面

5.1.2  元件描述

5.1.2.1  目的和意義

本元件用於櫃員登入,系統設定呼和浩特分行、北京分行、哈爾濱分行三地,每個分行有對應銀行櫃員。櫃員通過本人身份證號和登入密碼進行登入。

5.1.2.2  特色說明

本元件不需要選擇分行登入地點,直接通過櫃員身份證號確定櫃員所在分行、客戶辦理業務分行。

5.1.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

圖5-4  櫃員登入元件IPO圖

5.1.4  執行結果

    點選登入後,通過櫃員身份證號查詢資料庫,登入成功進入錄入客戶資訊介面,登入失敗顯示登入失敗介面。

5.1.4.1  櫃員登入成功

5.1.4.2  櫃員登入失敗

5.2  客戶資訊錄入元件

5.2.1  元件介面

5.2.2  元件描述

5.2.2.1  目的和意義

本元件作為客戶錄入資訊使用。

5.2.2.2  特色說明

當櫃員登入成功後,跳轉到客戶資訊錄入介面。點選提交,查詢資料庫中是否存在此客戶資訊,如果存在,提取出客戶資訊,如果不存在,插入客戶資訊,並將插入的客戶資訊提取出來。

5.2.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.2.4  執行結果

5.3  主頁面元件

5.3.1  元件介面

5.3.2  元件描述

5.3.2.1  目的和意義

本元件作為銀行賬戶管理系統的主介面。

5.3.2.2  特色說明

主介面功能包括:辦卡、修改密碼、掛失/解掛、補卡、銷卡、存款、取款、查詢餘額、查詢交易歷史、轉賬。

5.3.3  執行結果

進入各功能頁面。

5.4  辦卡元件

5.4.1  元件介面

5.4.2  元件描述

5.4.2.1  目的和意義

    本元件用於銀行櫃員為客戶辦卡使用。

5.4.2.2  特色說明

    銀行櫃員的身份證號與銀行分行編號在資料庫中已繫結,櫃員用身份證號登入,意味著客戶在某地分行辦理業務。當櫃員點選辦卡後,出現該分行所有的銀行卡列表,銀行卡狀態為USED為已經辦理的卡,狀態為UNUSED的為未辦理的卡。如果點選狀態為USED的卡的“錄入密碼”,錄入密碼後出現“此卡已使用,不能選擇!返回辦卡頁面”。如果點選狀態為UNUSED的卡的“錄入密碼”,錄入密碼後出現“客戶資訊與銀行卡資訊繫結頁面”。

5.4.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.4.4  執行結果

5.4.4.1  點選銀行卡狀態為“USED”的銀行卡的“錄入密碼”:

點選“確認”:

5.4.4.2  點選銀行卡狀態為“UNUSED”的銀行卡的“錄入密碼”:

點選“確認”:

5.5  修改密碼元件

5.5.1  元件介面

點選“修改密碼”:

5.5.2  元件描述

5.5.2.1  目的和意義

    本元件用於客戶修改銀行卡密碼。

5.5.2.2  特色說明

此元件介面會列出該客戶所有的銀行卡,點選需要修改密碼的銀行卡資訊所在條目的“修改密碼”,輸入該銀行卡的原密碼、新密碼及確認密碼,點選“確認”,提示“該銀行卡密碼修改成功”。如果輸入的新密碼和確認密碼不同,點選“確認”,提示“該銀行卡新密碼與確認密碼不一致”。如果輸入的原密碼與資料庫中的密碼不同,提示“原密碼輸入錯誤”。

5.5.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.5.4  執行結果

5.5.4.1  銀行卡密碼修改成功

5.5.4.2  新密碼與確認密碼不一致

5.5.4.3  原密碼輸入錯誤

5.6  掛失/解掛元件

5.6.1  元件介面

5.6.2  元件描述

5.6.2.1  目的和意義

    本元件用於客戶對銀行卡掛失或者解掛。

5.6.2.2  特色說明

當銀行卡狀態為“OPEN”,點選“掛失/解掛”,此時使用掛失功能,提示“該銀行卡掛失成功”。當銀行卡狀態為“LOST”,點選“掛失/解掛”,此時使用解掛功能,提示“該銀行卡解掛成功”。

5.6.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.6.4  執行結果

5.6.4.1  掛失成功:

5.6.4.2  解掛成功:

5.7  補卡元件

5.7.1  元件介面

5.7.2  元件描述

5.7.2.1  目的和意義

    本元件用於客戶原卡不能使用,來銀行櫃員處補卡所用。

5.7.2.2  特色說明

    元件介面顯示使用者所有銀行卡資訊,在需要補卡的銀行卡資訊條目上點選“補卡”,提示“該銀行卡銷卡成功,請重新辦卡”,點選“辦卡”,跳轉到辦卡介面,如前所述。

5.7.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.7.4  執行結果

銷戶成功:

重新辦卡:

5.8  銷卡元件

5.8.1  元件介面

5.8.2  元件描述

5.8.2.1  目的和意義

    本元件用於客戶在銀行櫃員處辦理銷卡所用。

5.8.2.2  特色說明

在銷卡介面顯示銀行卡資訊,包括銀行卡餘額,點選“銷卡”,提示已向使用者返回餘額,銷戶成功。

5.8.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.8.4  執行結果

5.9  存款元件

5.9.1  元件介面

點選“選擇”:

5.9.2  元件描述

5.9.2.1  目的和意義

    本元件為客戶到櫃檯存款所用。

5.9.2.2  特色說明

    在銀行卡存款頁面,顯示使用者所有銀行卡資訊,在需要存款的銀行卡條目上點選“選擇”,進入存款金額填寫頁面,輸入存款金額,點選“存款”,顯示存款成功,並顯示餘額。如果是異地存款(即銀行卡所屬分行編號與為客戶辦理業務的櫃員所屬分行編號不同),則顯示餘額和手續費。

5.9.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.9.4  執行結果

本地存款:

異地存款:

5.10  取款元件

5.10.1  元件介面

5.10.2  元件描述

5.10.2.1  目的和意義

    本元件為客戶在櫃檯取款所用。

5.10.2.2  特色說明

    取款介面顯示客戶所有銀行卡資訊,在需要取款的銀行卡資訊條目上點選“選擇”,進入“取款金額填寫”介面,輸入取款金額,點選“取款”,提示取款成功,並顯示餘額。

如果是異地取款(即銀行卡所屬分行編號與為客戶辦理業務的櫃員所屬分行編號不同),則顯示餘額和手續費。

5.10.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.10.4  執行結果

本地取款:

異地取款:

5.11  查詢餘額元件

5.11.1  元件介面

5.11.2  元件描述

5.11.2.1  目的和意義

    本元件為客戶查詢餘額所用。

5.11.2.2  特色說明

    點選“查詢餘額”,會顯示出使用者所有的銀行卡餘額資訊。

5.11.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.12  查詢歷史交易元件

5.12.1  元件介面

5.12.2  元件描述

5.12.2.1  目的和意義

    本元件用於客戶在櫃檯查詢歷史交易資訊。

5.12.2.2  特色說明

    查詢歷史交易資訊頁面顯示客戶所有的銀行卡資訊。可以查詢指定銀行卡的“近一週”、“近一月”、“近三月”、“近半年”、“近一年”的資訊。還可以查詢指定銀行卡、指定起始日期和結束日期的歷史交易資訊。

5.12.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.12.4  執行結果

近一週查詢結果:

近一月查詢結果:

近三月查詢結果:

近半年查詢結果:

近一年查詢結果:

指定轉賬銀行卡、轉賬起始日期、結束日期查詢歷史交易資訊:

查詢結果:

5.13  轉賬元件

5.13.1  元件介面

5.13.2  元件描述

5.13.2.1  目的和意義

    本元件為客戶轉賬所用。

5.13.2.2  特色說明

    點選“轉賬”,核對轉賬資訊。如本次轉賬為本地轉賬,轉賬手續費為0元;如本次轉賬為異地轉賬,轉賬手續費為轉賬金額的0.1%;如轉賬手續費小於1元,按1元計;如轉賬手續費大於50元,按50元計。點選“確認轉賬”,顯示轉賬成功介面。

5.13.3  功能描述

輸入-處理-輸出採用IPO圖表示如下:

5.13.4  執行結果

本地轉賬資訊確認介面:

異地轉賬資訊確認介面:

轉賬成功介面:

第六部分  系統後續工作說明

本專案存在以下不足:

1、並未實現分散式資料庫,連線的仍是本地集中式資料庫。原因如下:

(1)分散式資料庫原理理解,但SQL指令碼程式碼部分看不懂。

(2)連線老師伺服器上的分散式資料庫連線方式不清楚,存在以下問題:

<1>連線集中式Oracle需要額外安裝驅動,分散式需要嗎?

<2>連線分散式Oracle程式碼與連線集中式Oracle程式碼相同嗎?

(3)連線分散式Oracle資料庫後,需要對程式進行整體改造及除錯,還不清楚做法。

2、在辦卡、轉賬時,應向資料庫中存入包括日期、時間在內的具體時間,而不是僅包含日期,這樣在資料庫中存的時間就是日期 00:00:00的時間,不合理。

3、銀行卡餘額、存取款金額、手續費應為浮點數保留兩位小數,我沒有保留。要保留需要修改資料庫相應欄位,如float(10,2),意為最多儲存10位有效數字,小數點後保留兩位。

4、Oracle和JSP頁面之間使用Form表單提交中文內容已經解決,資料庫中存的是中文,但JSP頁面之間通過超連結傳遞中文引數仍是亂碼??????,這個問題到現在也沒有解決。

5、個人電腦上安裝Oracle 10g資料庫的時區設定問題,當作業系統是(UTC 8:00 北京,重慶,香港特別行政區,烏魯木齊)時區時,emd.properties這個檔案的agentTZRegion=Asia/Chungking設定報錯,只有當將作業系統時區調整成(UTC 世界協調時)時區時,emd.properties這個檔案的agentTZRegion=GMT,才不會報錯,OracleListener服務才可以啟動。

6、未實現本科時曾實現的《考勤管理系統》介面的樣式。原因如下:

(1)本科專案我只負責編碼實現,介面美化由其他小組成員完成,我就沒有弄清楚。

(2)想弄清楚需要學會CSS DIV JavaScript Ajax,這還需要後續學習。

 

由此總結:每做一點,都需要把相關內容徹底弄懂,有一點不懂,就受制於人,就是未來的隱患。