ATM自动取款机项目详细设计文档.docx
《ATM自动取款机项目详细设计文档.docx》由会员分享,可在线阅读,更多相关《ATM自动取款机项目详细设计文档.docx(17页珍藏版)》请在冰豆网上搜索。
ATM自动取款机项目详细设计文档
XXXX信息产业有限公司
ATM机操作系统体验版-V1.0.0.0
文件状态:
[]草稿
[ ]正式发布
[√]正在修改
当前版本:
V1.0.0.0
文档密级:
内部公开
作 者:
成纯竹
编写日期:
2011-1-7
审核人:
审核日期:
修订历史记录
编号
章节
修订说明
项目当前版本号
修订日期
修订前版本号
修订后版本号
修改人
审批人
1.ﻩ项目背景介绍:
1.1.ﻩ硬件环境ﻩ3
1.2.ﻩ软件开发环境3
2.ﻩ功能定义ﻩ3
2.1.ﻩ储户模块ﻩ3
2.2.管理模块3
3.数据之间的联系ﻩ4
4.系统用例图4
客户模块4
管理模块5
5.ﻩ数据字典ﻩ5
5.1.客户信息ﻩ5
5.1.1.数据项:
客户编号ﻩ5
5.1.2.数据项:
开户名5
5.1.3.数据项:
身份证号ﻩ6
5.1.4.ﻩ数据项:
性别6
5.1.5.ﻩ数据项:
联系电话ﻩ6
5.1.6.数据项:
详细地址ﻩ6
5.2.银行卡数据项7
5.2.1.ﻩ数据项:
卡号7
5.2.2.数据项:
密码7
5.2.3.数据项:
货币类型7
5.2.4.ﻩ数据项:
存款类型ﻩ7
5.2.5.数据项:
开户日期8
5.2.6.数据项:
开户金额8
5.2.7.数据项:
余额8
5.2.8.数据项:
货币类型ﻩ8
5.2.9.ﻩ数据项:
是否挂失8
5.2.10.ﻩ数据项:
客户编号ﻩ9
5.3.交易信息ﻩ9
5.3.1.ﻩ数据项:
交易IDﻩ9
5.3.2.ﻩ数据项:
交易时间ﻩ9
5.3.3.ﻩ数据项:
交易类型ﻩ9
5.3.4.ﻩ数据项:
交易金额10
5.3.5.数据项:
备注10
5.3.6.数据项:
银行卡号ﻩ10
5.4.管理员信息ﻩ10
5.4.1.数据项:
管理员编号ﻩ10
5.4.2.ﻩ数据项:
登录名11
5.4.3.ﻩ数据项:
密码ﻩ11
5.4.4.ﻩ数据项:
真名11
6.数据库设计ﻩ12
6.1.数据库关系图12
6.2.ﻩ客户信息表结构ﻩ12
6.3.银行卡表结构ﻩ12
6.4.ﻩ交易信息表结构13
6.5.ﻩ管理员信息表结构13
7.系统接口设计ﻩ14
7.1.ﻩ储户模块ﻩ14
业务逻辑层ﻩ14
7.2.管理员模块14
业务逻辑层14
1.项目背景介绍:
ATM机管理系统是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起着承上启下的作用,其重要性不言而喻。
但是,目前许多银行在具体的一些业务流程处理过程中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效果。
本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个银行ATM机管理系统系统。
软硬件环境
1.1.硬件环境
⏹CPU :
1G以上
⏹内存:
512M以上
1.2.软件开发环境
⏹操作系统:
Window2003/XP
⏹数据库:
MYSQL5.0
⏹数据库连接驱动:
Javaproject 集成开发环境
2.功能定义
2.1.储户模块
⏹存款功能
⏹取款功能
⏹修改密码功能
⏹转账功能
⏹查询余额功能
2.2.管理模块
⏹存款管理
⏹开户管理
⏹销户管理
⏹报表管理
3.数据之间的联系
⏹一个客户可以有多个卡号。
而一个卡号只能被一个客户拥有
⏹一个卡号可以有多条交易记录,而一条交易记录只能属于某个卡号
4.系统用例图
客户模块
管理模块
5.数据字典
5.1.客户信息
5.1.1.数据项:
客户编号
含义说明:
唯一标识客户
别名:
无
类型:
长整型
长度:
20
描述:
自动编号(标识列),从1开始
5.1.2.数据项:
开户名
含义说明:
客户开户所用的名称
别名:
无
类型:
字符型
长度:
40
描述:
必填
5.1.3.数据项:
身份证号
含义说明:
标识客户的身份,
别名:
无
类型:
字符型
长度:
18
描述:
必填,只能是18位或15位,身份证号唯一约束
5.1.4.数据项:
性别
含义说明:
表示客户的性别
别名:
无
类型:
字符型
长度:
1
描述:
必填,用0表示男,用1表示女
5.1.5.数据项:
联系电话
含义说明:
输入客户的手机号码
别名:
无
类型:
字符型
长度:
11
描述:
必填,11位数字
5.1.6.数据项:
详细地址
含义说明:
客户的地址
别名:
无
类型:
字符型
长度:
100
描述:
无
5.2.银行卡数据项
5.2.1.数据项:
ID
含义说明:
唯一标识
别名:
无
类型:
长整型
长度:
描述:
必填,主键
5.2.2.数据项:
卡号
含义说明:
银行卡的卡号
别名:
无
类型:
字符型
长度:
20
描述:
必填,唯一健,银行的卡号规则和电话号码一样,一般前8位代表特殊含义,如某总行某支行等。
假定该行要求其营业厅的卡号格式为:
1010 3576 xxxxxxx开始,每4位号码后有空格
5.2.3.数据项:
密码
含义说明:
卡号的登录密码
别名:
无
类型:
字符型
长度:
6
描述:
必填,6位数字,开户时默认为6个“8”
5.2.4.数据项:
货币类型
含义说明:
该银行卡的使用的货币类型
别名:
无
类型:
字符型
长度:
20
描述:
必填,默认为RMB
5.2.5.数据项:
存款类型
含义说明:
该银行卡的存款类型
别名:
无
类型:
字符型
长度:
1
描述:
必填,分为活期/定期,0代表活期,1代表定期
5.2.6.数据项:
开户日期
含义说明:
该银行卡的开户时间
别名:
无
类型:
日期类型
长度:
描述:
默认值为当前系统时间
5.2.7.数据项:
开户金额
含义说明:
银行卡开户时存入的金额
别名:
无
类型:
double类型
长度:
描述:
默认值为0
5.2.8.数据项:
余额
含义说明:
银行卡的余额
别名:
无
类型:
double
长度:
描述:
默认值为0
5.2.9.数据项:
货币类型
含义说明:
该银行卡的使用的货币类型
别名:
无
类型:
字符型
长度:
20
描述:
必填,默认为RMB
5.2.10.数据项:
是否挂失
含义说明:
银行卡的状态是属于挂失状态还是正常状态
别名:
无
类型:
字符型
长度:
1
描述:
必填,0表示正常状态,1表示挂失状态,默认为0
5.2.11.数据项:
客户编号
含义说明:
银行卡是属于哪个客户的
别名:
无
类型:
长整型
长度:
描述:
必填,属于外键
5.3.交易信息
5.3.1.数据项:
交易ID
含义说明:
唯一标识交易记录
别名:
交易编号
类型:
长整型
长度:
描述:
必填,主键
5.3.2.数据项:
交易时间
含义说明:
表明银行卡交易的具体时间
别名:
无
类型:
日期
描述:
必填,默认为系统当前日期
5.3.3.数据项:
交易类型
含义说明:
此次交易的类型
别名:
无
类型:
字符型
长度:
2
描述:
必填,可以为存款或者取款,0代表存款,1代表取款
5.3.4.数据项:
交易金额
含义说明:
此次成功交易的金额
别名:
无
类型:
double
长度:
描述:
无
5.3.5.数据项:
备注
含义说明:
此次交易的一些备注信息
别名:
无
类型:
字符型
长度:
100
描述:
无
5.3.6.数据项:
银行卡号
含义说明:
此次交易是属于哪个银行卡号
别名:
无
类型:
字符型
长度:
20
描述:
必填,外键
5.4.管理员信息
5.4.1.数据项:
管理员编号
含义说明:
唯一标识管理员记录
别名:
无
类型:
整型
长度:
描述:
5.4.2.数据项:
登录名
含义说明:
管理员登录的名字
别名:
无
类型:
字符型
长度:
20
描述:
5.4.3.数据项:
密码
含义说明:
管理员登录的密码
别名:
无
类型:
字符型
长度:
20
描述:
5.4.4.数据项:
真名
含义说明:
管理员的真实名字
别名:
无
类型:
字符型
长度:
20
描述:
6.数据库设计
6.1.数据库关系图
6.2.客户信息表结构
客户信息表(customerInfo)(顾客编号,开户名,身份证号,性别,联系电话,详细地址)
字段名
数据类型
长度
约束
能否为空
默认值
客户编号(customerId)
bigint
20
主键
否
开户名(customerName)
varchar
40
否
身份证号(PID)
varchar
18
否
性别(sex)
varchar
2
否
男
联系电话(telephone)
varchar
11
否
详细地址(address)
varchar
100
是
6.3.银行卡表结构
银行卡信息(Account)(订单号,公告标题,公告内容,管理员编号,日期)
字段名
数据类型
长度
约束
能否为空
默认值
ID
bigint
主键
否
卡号(cardId)
varchar
20
唯一键
否
密码(password)
varchar
6
否
货币类型(curType)
varchar
20
否
RMB
存款类型(savingType)
varchar
2
否
活期
开户日期(openTime)
timestamp
否
系统时间
开户金额(openMoney)
double
否
0
余额(balance)
Double
否
0
是否挂失(isReportLoss)
varchar
2
否
0(正常)
顾客编号(customerId)
varchar
20
外键
是
6.4.交易信息表结构
交易信息(transInfo)(交易ID,交易日期,交易类型,交易金额,备注,卡号)
字段名
数据类型
长度
约束
能否为空
默认值
交易ID(transId)
bigint
主键
否
交易日期(transTime)
timestamp
否
系统时间
交易类型(transType)
varchar
2
否
交易金额(transMoney)
double
否
0
备注(remark)
varchar
100
是
卡号(cardID)
varchar
20
外键
否
6.5.管理员信息表结构
管理员信息(管理员编号,姓名,密码,真名)
字段名
数据类型
长度
约束
能否为空
默认值
管理员编号(ID)
integer
主键
否
登录名(loginName)
varchar
20
否
密码(password)
varchar
20
否
真名(realName)
varchar
20
否
7.系统接口设计
7.1.储户模块
业务逻辑层
⏹publicAccount login(String cardId,Stringpassword);
⏹//存款
⏹publicdoubledespoist(doublebalance) ;
⏹//取款
⏹publicdoublewithdraw(doublebalance) ;
⏹//修改密码
⏹public void modifyPassword(StringnewPassword) ;
⏹//查询余额
⏹publicvoidqueryBalance() ;
⏹//打印凭条
⏹publicvoidprintRecord() ;
7.2.管理员模块
业务逻辑层
⏹publicdoubledesposit(String cardId,doublebalance);
⏹//第一次开户需要提供完整的个人信息
⏹publicAccountopen(StringcustomerName,StringPID,Stringsex,Stringtelephone,Stringaddress,Longid,Stringpassword,StringsavingType,doubleopenMoney,StringcurType);
⏹//之后开户不需要再提供个人信息,只需要提供身份证就可以了
⏹publicAccountopen(StringPID,Longid,Stringpassword,String savingType,double openMoney,StringcurType);
⏹//销户需要提供个人身份证以前要注销的银行卡号
⏹publicvoidclose(StringPID,StringcardId);
⏹//存款
⏹publicAccountdesposit(Longid,Doublebalance)
⏹//取款
⏹publicAccount withdraw(Long id,Doublebalance)
⏹//转帐
⏹public doubletransfer(StringfromCardId,StringtoCardId,double balance) ;
⏹//查看所有报表,
⏹public void queryReport();
⏹//查看指定银行卡的交易情况,
⏹public voidqueryReport(StringcardId);
⏹//打印所有报表
⏹pbulicvoidprintReport();
⏹/打印指定银行卡的交易情况
⏹pbulicvoidprintReport(String cardId);