ATM系统详细设计说明书.docx
《ATM系统详细设计说明书.docx》由会员分享,可在线阅读,更多相关《ATM系统详细设计说明书.docx(23页珍藏版)》请在冰豆网上搜索。
ATM系统详细设计说明书
ATM系统详细设计说明书
第一章总体设计
1、软件结构图
通过对前面需求分析文档进一步理解,再结合面向数据流的设计方法,得到ATM系统的软件结构图,该图由用户登录、储户信息管理、银行卡信息管理、银行卡交易管理和系统管理模块构成,具体如下图:
(a)软件结构图
2、系统结构图
结合软件设计中的高内聚和低耦合的标准以及相关的启发规则得到改进后的系统结构图。
具体如下图:
(b)系统结构图
第二章详细设计
1、模块设计
(1)用户登录模块
由于本系统有系统管理员、超级管理员和储户,不同的用户登录后拥有不同的权限,所以在系统的开始时,需要有登录模块来实现此功能。
该模块可以给任何人员使用。
模块的输入:
用户名(以此来代替真实的刷卡)、密码、和身份。
模块的处理:
系统跟据用户输入的用户名和密码到后台数据库响应的记录中查找,如果没有,则给出相应的提示并不予进入,连续输错3次,则进行吞卡处理;如果有,根据其不同的身份进入不同
模块的输出:
登陆成功或登陆失败
(c)用户登录判定树
(2)储户信息管理模块
①查询储户信息
该模块主要负责查询储户的信息(包括储户姓名、银行卡账户、账号密码、储户电话、证件类型、证件号码)
该模块能给管理员使用
模块的输入:
储户输入“银行卡账号”、“账号密码”作为查询条件。
模块的处理:
根据查询的条件从银行卡账号信息表中查找相应的记录,如果有满足条件的则显示该储户的信息,否则给出错误提示。
模块的输出:
根据不同的查询结果,给出不同的答复信息。
(d)查询账号信息判定树
②修改储户信息
该模块主要负责储户信息的修改(可有选择的修改储户姓名、银行卡账户、账号密码、储户电话、证件类型、证件号码)
该模块给管理员和储户使用
模块的输入:
由用户输入“银行卡账号”作为修改储户信息的凭证,并输入需要修改字段的新值
模块的处理:
每位持卡者登陆,在系统显示自己的信息后,点击“修改”按钮,可以看到不能修改的字段将呈灰色,在该好自己需要修改的信息后提交审核当得到肯定的答复后,系统就检查是否修改成功,若是,就返回显示信息界面继续其余操作,否则要给出未作修改的提示。
模块的输出:
根据储户的不同操作,给出不同的提示界面。
如果储户操作通过审核,就返回显示信息界面,否则给出出错提示。
(e)修改储户信息判定树
③储户注册
该模块主要负责给储户注册,根据储户提供的储户姓名、储户电话、证件类型、证件号码为储户开一个新的银行卡账号。
该模块能给管理员使用
模块的输入:
由管理员输入“储户姓名”、“储户电话”、“证件类型”、“证件号码”
模块的处理:
管理员在填入相关储户信息并“确认”后,首先要检测其输入各种字段的合法性,如果合法则将其作为一条记录,添加进日志文件中,并给出相关提示;如果有不合法的输入,需要准确地指出错误的位置,以供管理员修改后重新输入。
模块的输出:
根据是否成功提交,给出相应的提示。
(f)储户注册判定树
(3)银行卡信息管理
①开户
该模块主要负责给储户开户,根据储户提供的储户姓名、储户电话、证件类型、证件号码为储户开一个新的银行卡账号。
该模块能给管理员使用
模块的输入:
由管理员输入“储户姓名”、“储户电话”、“证件类型”、“证件号码”
模块的处理:
储户在填入相关储户信息并“确认”后,首先要检测其输入各种字段的合法性,如果合法则将其作为一条记录,添加进日志文件中,并给出相关提示;如果有不合法的输入,需要准确地指出错误的位置,以供储户修改后重新输入。
模块的输出:
根据是否成功提交,给出相应的提示
②销户
该模块主要负责根据储户提供的信息(包括储户姓名、银行卡账号、账号密码)将该账号银行卡撤销。
该模块只能给管理员使用
模块的输入:
由储户输入“储户姓名”“银行卡账号”以之作为销户凭证
模块的处理:
根据储户输入的“储户姓名”、“银行卡账号”在银行卡账号信息表中找到需要撤销的银行卡账号,若找到相应账号,根据储户提供的正确“账号密码”,将该银行卡账号从银行卡账号信息表中删除,并在显示界面显示“销户成功”;否则也要给出相应的提示。
模块的输出:
根据储户的不同操作,给出不同的提示。
(g)销户判定树
③冻结
该模块主要负责根据储户对银行卡账号的不正确使用(包括过度透支、三次密码输入错误……)后,对银行卡账号进行冻结。
冻结后,可对该账号进行存款操作,但不能进行取款操作。
该模块只能给管理员使用
模块的输入:
“银行卡账号”
模块的处理:
根据ATM系统反馈回来的信息,判断是否需要冻结该银行卡账号,若需要,管理员输入“账号”后,选择“冻结”按钮,管理员的提示界面显示“冻结银行卡账号***……***”,管理员选择“确认”按钮后,管理员的显示界面显示“成功冻结银行卡账号***……***”
模块的输出:
根据是否成功冻结,给出相应的提示。
(h)冻结判定树
④解冻
该模块主要负责对被冻结银行卡账号进行解冻操作,即通过储户提交相关信息后,将该账号进行解冻,使其能正常使用。
该模块只能给管理员使用
模块的输入:
由储户输入“储户姓名”、“银行卡账号”、“账号密码”、“储户电话”、“证件类型”、“证件号码”
模块的处理:
管理员根据储户提供的相关信息判断该银行卡账号的归属,并通过查询银行卡账号信息表确定该银行卡账号是否处于“冻结”状态,若是,则选择“解冻”按钮,管理员的提示界面显示“解冻银行卡账号***……***”,管理员选择“确认”按钮后,管理员的显示界面显示“成功解冻银行卡账号***……***”
模块的输出:
根据是否成功冻结,给出相应的提示。
(i)解冻判定树
⑤管理日志文件
该模块主要负责管理储户的信息(包括储户姓名、银行卡账户、账号密码、储户电话、证件类型、证件号码)和银行的工作记录
该模块能给管理员用户使用
模块的输入:
管理员用户输入“银行卡账号”作为查询条件。
模块的处理:
根据查询的条件从银行卡账号信息表中查找相应的记录,如果有满足条件的则显示相应的信息,否则给出错误提示。
模块的输出:
根据超级用户的操作,给出相应的提示。
⑥挂失
该模块主要负责对不小心遗失银行卡的储户进行银行卡挂失,但需要储户提供各种相关信息,挂失后,既不能对该银行卡账号进行存款操作,也不能进行取款操作。
在解挂前就属于无法使用状态。
该模块只能给管理员使用
模块的输入:
管理员输入“储户姓名”“证件类型”“证件号码”其中一条信息
模块的处理:
管理员根据储户提供的相关信息,查询到相应的银行卡账号,并核对储户的相关信息,若储户的相关信息符合将该银行卡账号挂失,即选择“挂失”按钮,界面显示“挂失银行卡账号***……***”选择“确认”按钮,界面显示“成功挂失银行卡账号***……***”。
模块的输出:
根据管理员的操作,给出相应的提示。
(j)挂失判定树
⑦解挂
该模块主要负责对因不小心遗失银行卡已经进行银行卡挂失而又重新找回或补办的银行卡进行解挂,即在储户提供各种相关信息后,管理员按照相关程序解除银行卡账号的遗失状态。
该模块只能给管理员使用
模块的输入:
管理员输入“银行卡账号”
模块的处理:
管理员便选择“解挂”按钮,界面显示“解挂行卡账号***……***”选择“确认”按钮,管理员界面显示“成功解挂失银行卡账号***……***”。
模块的输出:
根据管理员的操作,给出相应的提示。
(k)解挂判定树
⑧修改密码”
该模块主要负责银行卡账号的密码修改
该模块给储户、管理员账户和超级账户使用的
模块的输入:
由用户输入“银行卡账号”“账号密码”作为储户修改密码的凭证,并输入新密码
模块的处理:
每位持卡者登陆,在系统显示自己的信息后,点击“修改密码”按钮,输入原密码后再输入新密码两次接着提交审核当得到肯定的答复后,系统就检查是否修改成功,若是,就返回显示信息界面继续其余操作,否则要给出未作修改的提示。
模块的输出:
根据储户的操作,给出提示界面。
如果储户操作通过审核,就返回显示信息界面,否则给出出错提示。
(l)修改密码判定树
⑨余额查询
该模块主要负责储户对自己的余额进行查询
该模块给储户使用
模块的输入:
由用户输入“银行卡账号”“账号密码”作为储户余额查询的凭证。
模块的处理:
每位持卡者登陆,在系统显示自己的信息后,点击“余额查询”按钮,界面就会显示账号的余额。
模块的输出:
根据储户的输入操作,给出显示余额的界面。
(m)余额查询判定树
(3)银行卡交易管理
①存款
该模块主要负责储户将钞票存进银行卡账号里
该模块能给储户使用
模块的输入:
储户输入“账号密码”作为存款条件。
模块的处理:
将储户放进存钞机的钞票提交到系统进行审核,界面显示“请将不能存的钞票取回”“继续存款”“结束存款”,若储户选择“进行存款”便继续上述处理,若储户选择“结束存款”,系统经过处理,界面显示“存款***元”当储户“确认”后,便返回显示信息界面。
模块的输出:
根据储户的不同操作,给出不同的提示界面。
(n)存款判定树
②打印凭条
该模块主要负责储户将钞票存进银行卡账号里
该模块能给储户使用
模块的输入:
没有输入
模块的处理:
储户在结束存款、取款、转账操作后,界面显示“是否打印凭条”当储户选择“是”,系统则将凭条从凭条出口出凭条,然后返回显示信息界面。
模块的输出:
根据储户的不同操作,给出不同的提示界面
(o)打印凭条判定树
③转账
该模块主要负责储户将一个银行卡账号中的金额转到另一个银行卡账号里
该模块能给储户使用
模块的输入:
储户输入“账号密码”作为转账条件。
还要输入另一个银行卡账号和转账金额
模块的处理:
当储户选择“转账”按钮,显示转账界面“请输入转账银行卡账号:
”“请输入转账金额:
”当储户输入信息并选择“确认”按钮,系提交统审核,若能成功转账则显示界面“已成功转账”否则显示“转账失败”。
模块的输出:
根据储户的不同操作,给出不同的提示界面
(p)转账判定树
④取款
该模块主要负责储户从ATM机中取款
该模块能给储户使用
模块的输入:
储户输入“账号密码”作为取款条件。
模块的处理:
将储户选择的取款金额提交到系统进行审核,若ATM机的金额足够以及银行卡账号里的金额足够,就从存钞机吐出相应的钞票,而界面则显示“请30秒内取走钞票”若ATM机中余额不足,则界面显示“对不起,ATM机余额不足,无法为您服务”,若转账金额大于银行卡账号里的余额,则界面显示“银行卡账号余额不足”
模块的输出:
根据储户的不同操作,给出不同的提示界面。
(q)取款判定树
第四章数据库设计
1、逻辑设计
(1)ER图
根据前期的需求分析为ATM系统设计的4个表:
储户信息表,银行卡信息表,超级用户|管理员信息表,日志信息表。
使用powerdesign设计给ATM系统数据库的ER图,
(r)ATME-R图
(2)关系模式
此为储户实体的关系模式
储户信息(用户名,用户ID,银行卡ID,身份证,性别,出生年月)
此为银行卡实体的关系模式
银行卡信息(银行卡ID,银行卡余额,银行卡状态,当日取现额,银行卡密码,开卡日期)
此为超级用户|管理员实体的关系模式
超级用户|管理员信息(用户ID,用户类别,密码)
此为日志信息表的关系模式
日志信息表(日志ID,银行卡ID,操作描述)
2、物理设计
设计表
储户信息表
字段名
数据类型
长度
精度
强制
字段描述
U_NAME
varchar
20
否
储户名
U_ID(主键)
Varchar
10
是
储户ID
Card_ID
Varchar
20
是
银行卡ID
IDCARD
Varchar
17
是
身份证
U_SEX
Boolean
是
性别
birthday
date
是
出生日期
银行卡信息表
字段名
数据类型
长度
精度
强制
字段描述
Card_ID(主键)
Varchar
20
是
银行卡ID
C_BAlANCE
Decimal
20
2
是
银行卡余额
C_STATE
Integer
否
银行卡状态
C_MONEY
Decimal
20
2
是
当日取现额
C_PASSWORD
Varchar
20
是
银行卡密码
C_TIME
Datetime
是
开卡日期
超级用户|管理员表
字段名
数据类型
长度
精度
强制
字段描述
ADMIN_ID
Integer
是
管理员ID
ADMIN_TYPE
Boolean
20
是
用户类别
ADMIN_PASSWORD
varchar
是
管理员密码
日志表
字段名
数据类型
长度
精度
强制
字段描述
Log_ID(主键)
Interer
是
日志ID
Card_ID
Varchar
20
是
银行卡ID
Card_Description
varchar
40
是
操作描述
3、对象设计
(1)类
(2)包含属性的类图
(s)类图1
(3)系统对象设计模型(类图):
(t)类图2
第五章系统设计
1、ATM管理系统第1层数据流图
*******1层******
按照对问题域和用户需求的理解,本系统有“储户要求处理”,“管理员要求处理”,“添加管理员用户”三种子功能,再按照这三种子功能细化“ATM管理系统”这个加工,得到1层数据流图
(u)数据流图1
2、ATM管理系统第2层数据流图
*******2层******
分析1层数据流图中的三个加工,采用的功能分解方法,可以继续对“储户要求处理”,“管理员要求处理”这两个功能进行细化。
(v)细化“储户要求处理”的数据流图
(w)细化“管理员要求处理”的数据流图
3、数据字典
数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,是用户了解系统的一个必备工具。
数据元素的数据字卡片如下:
名字:
储户信息
别名:
描述:
记录储户相关信息
定义:
储户信息=用户名+用户ID+银行卡ID+身份证+性别+出生年月
用户名=4{字母}20
用户ID=10{数字}10
银行卡ID=20{数字|字母}20
身份证=16{数字}16
性别=[男|女]
男=1
女=0
出生年月=年+月
位置:
储户信息表
名字:
银行卡信息
别名:
描述:
记录银行卡相关信息
定义:
银行卡信息=银行卡ID+银行卡余额+银行卡状态+当日取现额+银行卡密码+开卡日期
银行卡ID=20{数字|字母}20
银行卡余额=0{数字}9999999
银行卡状态=[冻结|挂失|正常]
冻结=0
挂失=2
正常=1
当日取现额=0{数字}5000
银行卡密码=6{数字|字母}20
开卡日期=年+月+日+小时+分+秒
位置:
银行卡信息表
名字:
超级用户|管理员信息
别名:
描述:
记录超级用户或管理员的信息
定义:
超级用户|管理员信息=用户ID+用户类别+密码
用户ID=8{数字}8
用户类别=[超级用户|管理员]
超级用户=1
管理员=0
密码=10{数字&字母}20
位置:
超级用户|管理员信息表
名字:
日志文件表
别名:
描述:
记录ATM系统上的操作
定义:
日志文件=日志ID+银行卡ID+操作描述
日志ID=8{数字}8
银行卡ID=20{数字|字母}20
操作描述=2{字符}20
位置:
日志文件