ATM系统

  • 格式:doc
  • 大小:333.50 KB
  • 文档页数:14

基于UML的ATM自动柜员机系统建模UML-Based Modeling for ATM System学校:湘潭大学班级:08软件工程一班姓名:刘新星学号:2008551007实验一:ATM系统一、系统背景以及实验要求说明ATM自动柜员机(automatic teller machine)是银行在不同地点设置的一种小型机器,利用一张信用卡大小的胶卡上的磁带〔或芯片卡上的芯片〕记录客户的基本户口资料(通常就是银行卡,或称金融卡,或称提款卡),让客户可以透过机器进行提款、存款、转帐等银行柜台服务,大多数客户都把这种自助机器称为提款机。

中国大陆在1980年代末期才开始在深圳出现提款机,现在扩展至全国。

并且多数柜员机都已加入银联网络,只要是有银联标志的银行卡都可以通用,但收费与否则和发卡行的规定有关。

没有银联标志的卡只能在本行网络的柜员机上使用。

目前,国内已有大量自动柜员机,遍布于银行营业大厅、超市、商业机构、机场、车站、码头和闹市区。

因为ATM技术的高安全性和高速度,所以在我国的发展十分迅速,尤其在银行领域。

我国宽带网已初具规模,已建立成完整的电子商务安全认证体系。

几乎所有的银行都是采用ATM技术,主要用于各地区之间交换数据和ATM终端。

本实验的目的是掌握软件体系结构建模的概念及4+1视图模型、熟悉Rational Rose 2003、Microsoft Office Visio的使用方法、掌握利用UML进行软件体系结构的相应视图设计。

实验使用Rational Rose 2003进行A TM系统软件体系结构的建模设计,包括静态建模和动态建模,要求完成ATM机系统的用例图、类图、顺序图、协作图、系统状态图、系统活动图、系统构件图和系统部署图的设计。

统一建模语言UML是一个通用的可视化建模语言,基于主流的软件开发方法和开发经验,明确定义了建模的语法和语义,可用来作为软件体系结构建模的辅助设计工具。

UML 所提供的静态和动态建模机制可用来实现软件体系结构的4+1视图模型,即辅助设计逻辑视图、进程视图、物理视图、开发视图和场景视图。

二、ATM系统需求说明(1)ATM系统功能性需求功能需求1:描述:A TM终端无人操作时,显示待机动画输入:无处理:A TM显示待机界面输出:显示待机界面功能需求2:描述:A TM接受卡,检验卡是否可进行交易输入:A TM接收储户插卡处理:检验卡是否可识别处理输出:不可识别退卡;否则继续。

功能需求3:描述:校验密码是否格式正确输入:储户输入密码处理:校验密码是否符合格式输出:不正确则提示储户重新输入功能需求4:描述:校验密码是否正确输入:储户输入正确格式密码处理:校验当前密码与存储的账户密码是否一致输出:不一致则提示密码错误,请重新输入或者退卡功能需求5:描述:卡密码连续三次输入错误,没收磁卡输入:储户连续第三次输入密码处理:校验密码输出:错误则吞食磁卡,提示“您的卡连续三次密码错误,已被吞没。

请联系客服955**”功能需求6:描述:磁卡认证完成,进入主交易界面输入:储户输入正确密码处理:校验密码输出:显示主交易界面功能需求7:描述:A TM现金不足,系统应对取款储户进行提示,可退出交易输入:无处理:检查ATM现金数输出:返回至ATM主交易界面功能需求8:描述:A TM凭条打印机故障,系统应对存款和转账储户进行提示,可退出交易输入:无处理:检查ATM凭条打印机输出:故障则提示储户是否继续,可返回至主交易界面功能需求9:描述:A TM认定的存款金额储户不认可输入:认证成功完成,输入需要存储的金额,将钞币放入A TM机处理:硬件检验钞币数量,提示储户确认,储户输入“否”输出:退出钞币,返回主界面功能需求10:描述:A TM存款输入:A TM认定存款金额,储户“确认”处理:在账号上记录存入金额输出:打印存款凭条,显示“交易成功”,返回主交易界面功能需求11:描述:取款金额大于账户余额输入:输入取款金额处理:判断输入金额和账户余额输出:取款余额大,则提示储户“余额不足”,返回主界面功能需求12:描述:取款数额超过当日取款最大额度输入:储户输入取款金额处理:判断输入金额和当日该账户ATM取款额之和是否大于当日取款最大额度输出:如超出则提示储户“超过当日取款最大额度”,重新输入或返回功能需求13:描述:取款输入:取款合法金额处理:从账户记录取走的金额输出:吐钱功能需求14:描述:取款交易成功,打印取款凭条输入:储户输入“打印”或者“不打印”处理:若是“打印”则打印机打印凭条,否则什么也不做输出:无功能需求15:描述:修改密码输入:储户输入新密码处理:两次新密码判断是否一致输出:一致则重置密码,显示“修改成功”;否则退出修改密码功能需求16:描述:转账输入:转账账号,转账金额处理:判断金额是否超过本账户现有金额,是则本账号下账,他账号上账输出:显示“转账成功”,或者退出转账(2)ATM系统非功能性需求1:在查询过程中,要求系统显示该账户卡上所有的余额。

2:在取款过程中,该系统只支持交易金额为100的倍数。

3:在存款过程中,该系统只支持交易金额为50的倍数。

4:在转帐过程中,该系统支持任何储户输入的数据,但是仅仅限于本行之间的账户转帐。

5:如果交易中响应时间超过30秒,系统提示“操作已过时”,自动退出本系统。

6:交易结束时,系统知道更新账户上的数据,保持账户余额的一致性。

7:交易完成后,储户可以点击“取卡”退出本系统。

8:本系统可以进行各个银行的金额交易。

9:系统可以并行使用的储户在100个以上。

10:密码:由储户设置的一个6位整数。

11:取款数目:只支持交易金额为100的倍数。

12:取款金额:不能输入5000以上的数字。

13:存款数目:只支持交易金额为50的倍数。

14:转账数目:支持储户输入的任何数据,但是仅限于内间账户转账。

15:响应时间:30秒以内。

16:系统需要有确认用户(系统检验客户个人账户是否与客户的账户上记载的账户一致)功能,账户要有密码保护功能,只有输入相应的密码才可以进入该账户,登陆界面中密码框须使用‘*’保护。

三、ATM系统主要用列表四、ATM系统4+1试图模型(1) ATM系统场景试图查询余额维护ATM设备图1 ATM系统用例图(2) ATM系统逻辑视图从前面的需求分析中,我们可以依据主要的九个类对象:ATM自动提款机、客户、银行管理员、信用系统、数据库、银行账户、ATM屏幕、ATM键盘和ATM读卡器创建完整的类图。

客户、银行管理员与ATM自动提款机关联,一台ATM自动提款机可以供任何客户和管理员使用;每个用户都必须拥有银行账号,银行账号是依赖客户而存在的;ATM读卡器读取银行账号,A TM屏幕显示银行账号的内容,用户控制ATM键盘,A TM键盘控制ATM 显示屏的显示内容;银行账号的内容在数据库中有记录,信用系统也能够访问数据库。

图2 ATM系统类图(3) ATM系统进程试图图3 ATM系统状态图8: 提示供选择的服务图4 ATM系统取款活动协作图图5 ATM系统取款活动图: 客户图6 ATM系统存款活动顺序图(3)ATM系统物理视图配置图提供当前模型的物理视图,描述系统运行时节点、构件实例及其对象的配置。

配置图定义了软硬件在系统中的配置关系。

如图所示ATM系统的配置图显示的主要内容包括两个A TM客户端,一个地区A TM服务器,银行数据库服务器,一个打印机以及表示通信的连接。

打印机图7 ATM 系统的配置图(5) ATM 系统开发试图组件图提供当前模型的物理视图,对系统的静态实现视图进行建模,显示驻留在计算机比特世界中的各种软件构件。

ATM 系统组件图包括两部分:Server 和Client 。

如图7所示是ATM 系统Server 组件图,图中Account 类跟Server 服务器有紧密的联系,箭头表示联系的方向,深灰色表示帐目类的一个实例。

银行账号图8 ATM 系统Server 组件图Client.exe图9 ATM系统Clientr组件图五、ATM系统实现部分代码说明与运行截图本代码用C语言实现的,在上面建模的过程中,实现的个各类在代码中都是用简单的函数实现的。

定义的主要的一个客户类,里面包含的是客户的银行账号的基本信息,包括用户名、密码、余额还有卡号。

//每个客户的基本信息struct Account{char name[256];char password[6];long cardnum;long money;}account[10002],atm;定义的主要操作就是客户的基本操作,包括开户、登录、查询余额、存款、取款。

代码中的数据库是一个txt文档—”atm.txt”void new_account();//创建新用户,新增用户添加进数据库int logo();//用户登录,当中有密码检验void search();//显示当前用户信息int withdraw();//用户取款int add_money();//用户存款,新的余额要修改数据库信息系统部分操作运行截图如下:图10 ATM屏幕初始化显示信息图11 开户操作截图图12 登录操作图13 查询显示用户名、卡号和余额图14 存款操作整个过程图15 取款操作整个过程。