ATM机系统分析与设计.docx
- 文档编号:26810089
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:30
- 大小:239.92KB
ATM机系统分析与设计.docx
《ATM机系统分析与设计.docx》由会员分享,可在线阅读,更多相关《ATM机系统分析与设计.docx(30页珍藏版)》请在冰豆网上搜索。
ATM机系统分析与设计
A
T
M
机
系
统
分
析
与
设
计
班级:
07软件工程
学号:
071164009
姓名:
闫亚培
第一章系统需求
ATM机系统的域描述如下:
在ATM机系统中,要为每名用户建立一个帐户,并给她们发放银行卡(银行卡可以提供卡号,用户姓名),账户中存储用户的个人信息,存款信息,取款信息与余额信息,持有银行卡的用户可以通过ATM自动取款机系统进行存款,取款,查询余额的操作。
在使用自动取款机时,需要插入用户的银行卡,并根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面:
1、存款,2、取款,3、查询余额,然后系统根据服务类型进行相应操作,若选择取款操作,系统确认取款请求以后,会询问取款数额,系统界面显示输入数额请求,用户输入取款数额,系统接到信息后发出确认取款请求,用户选择确认,系统选择确认后会向点钞机发出钞请求,然后点钞机出钞,系统向用户发出去钞请求,用户取钞以后,系统记录此次取款并自动计算余额,更新帐户信息,然后系统界面进入就是否选择继续服务界面,用户点击否,然后系统退出银行卡并提醒用户取卡,用户取走银行卡,至此,取款业务完成。
若选择存款业务,系统确认存款请求以后,系统界面进入请放入存款界面,然后用户将存款放入存款口,系统提示点钞机进行点钞,点钞完毕后,系统记录存款操作并更新余额,系统界面显示存款完毕,然后系统界面进入就是否选择继续服务界面,用户点击否,则系统退出银行卡并提示用户取卡,用户取走卡后,存款业务完成。
若用户选择查询业务,若查询余额,系统确认请求以后根据其账号信息查取余额,并在界面显示余额为多少。
对上述ATM机系统的域描述进行分析,可以获得如下功能性需求:
此软件的设计将实现银行ATM系统的基本功能。
ATM系统一次服务一名客户。
客户插入一张ATM卡并进入个人数字识别号码(PIN),系统进行验证,通过后客户才能执行一种或更多操作。
客户完成所有操作后,退卡。
ATM系统必须向客户提供如下服务:
1、客户可以做一次取款(取款金额必须就是100元人民币的整数倍),在现金被提取之前,必须得到银行的许可。
2、客户可以做一次存款,客户把存款量输入到ATM系统中,必须从银行得到许可。
3、客户可以做一次转帐。
4、客户可以进行一次详细账户信息查询。
5、客户通过有效验证后可以更改密码。
6、客户可以在取回磁卡就是选择就是否得到记录操作的打印凭条。
ATM系统将把每一处理传达到银行并且获得银行许可。
如果银行确定客户PIN就是无效的,客户将被要求再进入PIN。
如果客户不能在五次尝试之后成功地进入PIN,客户的卡将被机器没收,而客户不得不联系银行取回它。
第二章需求分析
采用用例驱动的分析方法分析需求的主要任务就是识别出系统中的参与者与用例,并建立用例模型。
在本系统中,参与者比较简单,不需要特别分析。
2、1识别参与者
通过对系统的分析,系统存在三个参与者:
(1)Custumer(用户)。
参与者描述如下:
Custumer
描述:
用户可以进行存款,取款,查询的业务。
示例:
持有银行卡的任何个人或组织。
(2)Bankserve(银行服务器)
描述:
Bankserve管理机器。
示例:
银行中央服务系统。
(3)Operator(银行服务人员)
描述:
负责开/关机器与往机器中放现金。
示例:
银行的工作人员。
2、2识别用例
前面已经识别出了参与者,通过对需求的进一步分析,可以确定系统中有如下用例存在:
(1)Session(会话)
当一名客户将一张ATM卡片插入机器时,一个Session开始,ATM系统读卡(如果客户执行非法操作或卡片损坏,卡片将被退出,同时屏幕将显示出错信息,而被Session异常中断)。
进行验证客户密码的登录功能。
客户成功登录系统后,可以选择一种或多种操作,直至退卡。
如果客户输入五次无效的PIN,则Session被异常中断,ATM卡将被吞掉。
(2)Task(任务)
Task就是一种抽象的用例,表示所有类型的处理所共有的行为,Task的具体类型按照适当的方式执行一定的操作。
根据Task(存款、取款,转帐,查询,更改密码)的事件流描述给出具体的处理。
(3)Deposit(存款)
提供存款到帐户的功能。
(4)Withdraw(取款)
提供从账户取款的功能。
(5)Transfer(转账)
提供转账功能。
(6)QueryAccount(查询余额)
提供查询余额的功能。
(7)ChangePIN(更改密码)
提供更改密码的功能。
(8)PrintReceipt(打印凭条)
客户选择打印凭条,包括显示日期,时间,机器位置,操作,理由,数量,结果类型,受到影响的原因与可供使用的选择。
在识别出参与者与用例之后,要想建立用例图,还需要识别出她们之间的关系,“Degonit”(存款),“Withdraw”(取款),“Inquire”(查询)这些动作就是由Custumer(用户)执行的,则在所以Custumer(用户)与“Degonit”(存款),“Withdraw”(取款),“Inquire”(查询)这些动作之间就是依赖关系,系统的用例图如下所示:
图2、1系统用例图
2、3用例的事件流描述
用例的事件流就是对完成用例行为所需的事件的描述。
它描述系统应该做什么,而不就是描述系统应该怎样做。
开始,只就是对执行用例的常规流所需的步骤的简单描述。
随着分析的进行,通过添入更多的详细信息,步骤不断细化。
最后,将例外流添加到用例的事件流描述中。
ATM机系统的用例事件流描述如下:
2、31用例1Login(登录)
⑴简要说明
本用例描述了客户如何登录到系统中。
⑵前提条件
无。
⑶后置条件
若成功,则客户登录到系统中。
否则,系统状态不变。
⑷事件流
ⅰ、主事件流
当客户插入ATM卡到机器中时,用例Session启动。
A.系统提示客户输入密码。
B.客户输入自己的密码,提交。
C.系统验证输入的密码(E-1),客户登录成功。
ⅱ、替代流
E-1:
若密码输入无效,系统提示错误信息,客户可以重新输入或终止用例。
2.32用例2eposit(存款)
⑴简要说明
本用例描述了客户如何存款到机器中。
⑵前提条件
在本用例开始前,客户必须已经登录到系统中。
⑶后置条件
若用例成功,则客户账户中存款金额增加。
否则,系统状态不变。
⑷事件流
ⅰ、主事件流
客户向系统输入存款金额并向机器输入现金时,用例启动。
A.系统提示客户输入账号与存款金额。
B.客户输入后提交,系统确认账户存在并有效(E-1)。
C.系统建立存款事件记录,并更新账户的相关信息。
ⅱ、替代流
E-1:
若账户不存在或无效,系统显示信息,客户可以重新输入或终止用例。
2.33用例3withdraw(取款)
⑴简要说明
本用例描述了客户如何取款。
⑵前提条件
在本用例开始前,客户必须已经登录到系统中。
⑶后置条件
若用例成功,则客户账户中存款金额减少。
否则,系统状态不变。
⑷事件流
ⅰ、主事件流
客户向系统输入取款金额时,用例启动。
A、系统提示客户输入账号与取款金额。
B、客户输入后提交,系统确认账户存在并有效(E-1),账户余额就是否够支付(E-2)。
C、系统建立取款事件记录,并更新账户的相关信息。
ⅱ、替代流
E-1:
若账户不存在或无效,系统显示信息,客户可以重新输入或终止用例。
E-2:
若余额不足,系统显示信息,客户可以重新输入或终止用例。
2.34用例4Thransfer(转账)
⑴简要说明
本用例描述了客户如何将资金从一个账户转到另一个账户。
⑵前提条件
在本用例开始前,客户必须已经登录到系统中。
⑶后置条件
若用例成功,则客户账户中存款金额变化。
否则,系统状态不变。
⑷事件流
ⅰ、主事件流
客户向系统输入转帐命令时,用例启动。
A、系统提示客户输入账号与转账金额。
B、客户输入后提交。
C、系统确认资金转出账户就是否存在并有效(当账户信息与客户一致,且账户非冻结时有效)(E-1),资金转出账户金额就是否足够支付(E-2)。
D、系统为资金转出帐户建立转账事件记录,并更新账户的相关信息。
E、存储转账记录。
F、判断资金转入帐户与转出账户就是否属于同一银行,如就是,则执行分支流(S-1),如属于不同银行,则执行(E-2)、
ⅱ、替代流
E-1:
若账户不存在或无效,系统显示信息,客户可以重新输入或终止用例。
E-2:
若余额不足,系统显示信息,客户可以修改金额数目或终止用例。
第3章静态结构模型
进一步分析系统需求,发现类以及类之间的关系,确定它们的静态结构与动态行为,就是面向对象分析的基本任务。
系统的静态结构模型主要用类图与对象图描述。
3、1定义系统对象
系统对象的识别可以通过寻找系统域描述与需求描述中的名词来进行。
由分析可得,整个系统包括了帐户库、银行储户库及ATM系统,这些都就是类图中的候选对象。
判断就是否应该为这些候选对象创建类的方法就是:
就是否有与该对象相关的身份与行为?
该系统中包括的类如下:
边界类:
(1)CcardReader
a)功能:
1、告诉ATM机什么时候插进去卡
2、接收卡
3、读卡
4.保留卡
b)合作者:
1.ATM
2.Session
3.Card
(2)CcashDispenser
a)功能:
1.无现金交易
2.保持大量现金可用。
3.初始化现金额
b)合作者:
i.Clog
ii.CTransaction
(3)CCustomerConsole
a)功能:
1、显示消息
2、显示菜单并接受选择
3、读入密码
4、接收现金
5、显示对话框接收用户操作
b)合作者:
1、CTransaction
2、CSession
2、CKeyboard
a)功能:
从键盘上读入操作
b)合作者:
CCustomerConsole
3、CScreen
a)功能:
显示界面与字符
b)合作者:
CCustomerConsole
4、CCashReceiver
a)功能:
从用户那里接收现金
b)合作者:
Clog
5、Cbank
a)功能:
1、与银行联系
2、向银行发信息
3、接收银行的信息
4、关闭同银行的联系
b)合作者:
1、Clog
2、CSession
3、Cmessage
6、CoperatorPannel
a)功能:
1、通知ATM系统已关闭
2通知ATM系统已开启
3、通知点钞机初始化现金
b)合作者:
1、CATM
2、CCashDispenser
7、Cprinter
a)功能:
打印回单
b)合作者:
1、CATM
2、CTransaction
3、Clog
4、CReceipt
实体类:
1、Clog
a)功能:
1、Writelogmessagefrombank
2、Writelogmessagefromcardreader
3、Writelogmessagefromsession
4、、WritelogmessagefromTransaction
b)Collaborations:
1、CBank
2、CCardreader
3、CTransaction
2、Cmessage
a)功能:
保留发送到银行服务器的信息
b)Collorations:
1、CBank
2、CTransaction
3、Creceipt
a)功能:
保留被打印的信息
b)合作者:
Cprinter
4、CCard
a)功能:
保留银行卡内的信息
b)合作者:
1、CCardReader
2.CSession
5、CAccount
a)功能:
保留余额信息
b)合作者:
CQueryAccount
控制类:
1、CSession
a)功能:
1、执行会话
2、不执行无效的密码
3、允许客户选择交易
4、开始交易
b)合作者:
1、CATM
2、CTransaction
3、CCustomerConsole
4、Clog
2、CTransaction
a)功能:
执行转账
b)合作者:
1、CCustomerConsole
2、Clog
3、CBank
4、Cprinter
5、CWithDraw
6、CDeposit
7、CWithDraw
8、CTransfer
9、CInquery
10、CChangePIN
3、CATM
a)功能:
1、启动时打开开关
2、关闭时,开关关闭
3、启动一个新的会话时由客户卡插入
b)合作者:
1、OperatorPanel
2、CashDispenser
3、NetworkToBank
4、CustomerConsole
5、Session
4、CWithDraw
a)功能:
执行取款操作
b)合作者:
CTransaction
5、CTransfer
a)功能:
执行转账业务
b)合作者:
CTransaction
6、CDposit
a)功能:
执行存款操作
b)合作者:
CTransaction
7、CChangePIN
a)功能:
执行修改密码操作
b)合作者:
CTransaction
8、Cinquery
a)功能:
执行查询操作
b)Collaborations:
CTransaction
其她类:
CTimer
a)功能:
保持时间更新
b)合作者:
Clog
上述类的关系如下图所示:
(1)帐户库
许多单个的帐户组成了帐户库。
帐户具有帐户类型、帐户号、余额三个属性,持有帐户的用户就是有身份的,具有相同名字与不同银行卡号码的用户也就是不同的,在这个系统中,帐户库有相关的行为,所以帐户库应该成为系统中的一个对象。
(2)银行储户库
许多银行储户组成了储户库。
储户有储户姓名,储户ID,储户密码三个属性,储户就是有身份的,在这个系统中,储户库又相关的行为,所以银行储户库也就是系统的一个对象。
(3)ATM机系统
ATM机系统有ATM编号这一个属性,在这个系统中,每个ATM机系统都就是一个独一无二的个体,所以ATM机系统也就是系统的一个对象。
抽象出系统中的类后,需要确定这些对象的属性与行为。
可以根据前述的系统需求分析、用例图、用例的事件流描述与描述脚本的交互作用图,来确定并细化系统中的类、类的操作与属性。
下面对系统中的类、类的属性及操作逐一进行描述。
对于账号库,帐户具有帐户类型、帐户号、余额三个属性,均为private,其类型分别为char,int,double。
六个操作分别为setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance为protected其余均为public。
setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型
getType获取帐户类型,返回类型为char,无参数。
setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号。
getAccountNumbe获取帐户号,返回类型为int,无参数。
caculateBalance计算余额,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输出。
getBalance获取帐户余额,返回类型为double,无参数。
对于银行储户库,储户姓名,储户ID,储户密码三个属性,均为private,其类型分别为char,int,char。
三个操作分别为Degonit(存款),Withdraw(取款)与Inquire(查询)。
Degonit(存款)进行存款操作。
Withdraw(取款)进行取款操作。
Inquire(查询)进行查询操作。
对于ATM系统,只有一个编号的属性,该属性为private,其类型为char。
三个操作分别为Entercard(吞卡),Showbalabce(显示余额),Ejectcart(吐卡)。
Entercard(吞卡)进行吞卡操作。
Showbalabce(显示余额)进行显示余额操作。
Ejectcart(吐卡)进行吐卡操作。
Ø类帐户库(属性、方法见下图3、1
Ø类银行储户库属性、方法见下图3、2
Ø类ATM系统属性、方法见下图3、3
该系统中的类如下:
银行类图如下:
整个系统类图如下:
第4章动态行为模型
系统的动态行为模型由交互作用图(时序图与协作图)、状态图、活动图描述。
4、1建立交互作用图
描述系统用例的主要场景的交互作用图如下所示。
4.1.1Session
当一名客户将一张ATM卡片插入机器时,一个Session开始,ATM系统读卡(如果客户执行非法操作或卡片损坏,卡片将被退出,同时屏幕将显示出错信息,而被Session异常中断)。
进行验证客户密码的登录功能。
客户成功登录系统后,可以选择一种或多种操作,直至退卡。
如果客户输入五次无效的PIN,则Session被异常中断,ATM卡将被吞掉。
其顺序图如下所示:
4、12Task
Task就是一种抽象的用例,表示所有类型的处理所共有的行为,Task的具体类型按照适当的方式执行一定的操作。
根据Task(存款、取款,转帐,查询,更改密码)的事件流描述给出具体的处理。
其顺序图如下:
4、13Deposit
插入用户的银行卡后,根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面,选择存款业务,系统确认存款请求以后,系统界面进入请放入存款界面,然后用户将存款放入存款口,系统提示点钞机进行点钞,点钞完毕后,系统记录存款操作并更新余额,系统界面显示存款完毕,然后系统界面进入就是否选择继续服务界面,用户点击否,则系统退出银行卡并提示用户取卡,用户取走卡后,存款业务完成。
存款操作的顺序图如下:
4、14WithDraw
插入用户的银行卡,并根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面,然后系统根据服务类型进行相应操作,若选择取款操作,系统确认取款请求以后,会询问取款数额,系统界面显示输入数额请求,用户输入取款数额,系统接到信息后发出确认取款请求,用户选择确认,系统选择确认后会向点钞机发出钞请求,然后点钞机出钞,系统向用户发出去钞请求,用户取钞以后,系统记录此次取款并自动计算余额,更新帐户信息,然后系统界面进入就是否选择继续服务界面,用户点击否,然后系统退出银行卡并提醒用户取卡,用户取走银行卡,至此,取款业务完成。
取款操作顺序图如下:
4、1、5ChangePIN
插入用户的银行卡后,根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面,选择修改密码业务,系统确认以后,系统进入修改密码界面,根据提示输入新密码,点击确定,至此,修改密码操作完成。
修改密码操作顺序图如下:
4、16Transfer
插入用户的银行卡后,根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面,选择转账业务,系统确认以后,系统进入转账界面,根据提示转账号,转账金额,点击确定,至此,转账操作完成。
转账操作顺序图如下:
4、17QueryAccount
插入用户的银行卡,并根据系统界面显示输入密码,由系统判断该帐户就是否有效(帐户密码就是否正确),若密码输入不正确,则再次显示让用户输入密码,若3次输入的密码均不正确,系统自动退出服务,若密码输入正确,则系统进入选择服务类型界面,用户选择查询业务,若查询余额,系统确认请求以后根据其账号信息查取余额,并在界面显示余额为多少。
查询操作的时序图如下:
4、2建立状态图
下图描述了顾客在ATM机上进行操作会经历的几种状态,及各种状态之间转换的条件。
因为就是简化了的例子,所以除了等待顾客插入磁卡的起始状态与结束服务的终止状态,顾客会处于输入密码、选择服务类型、存款及取款四种状态。
读卡
有效卡
客户管理
输入查询密码
吞卡
插入ATM卡
接受ATM卡
输入3次不正确
密码正确
取款
存款
继续服务
退出服务
退出服务
退卡
存款
取款
输入不正确
选择服务类型
继续服务
插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。
进入选择服务类型后根据选择的不同,顾客可进入存款与取款状态。
存、取款结束后,顾客既可以选择结束服务到最终状态,也可以选择继续服务回到选择服务类型状态。
通过状态图我们可以无歧义的了解各个活动角色就是如何在不同状况下转换的,转换的条件就是什么,就是否会出现死锁现象,就是否有条件没考虑周全,就是否有状态无法达到。
状态图可以帮助我们发现问题,并及时改正。
4、3建立活动图
这个活动图以顾客插入卡为开始,以顾客取卡结束。
我们可以瞧到活动图的重点虽然不在时间顺序,但我们同样可以得到时间的信息,初瞧活动图与顺序图表达的意义很接近,但我们可以注意到顺序图着重时间的顺序,而活动图侧重于各部分之间的相互制约,对于一些并行的活动能够有效的表示出来
活动图如下图所示:
4、4建立协作图
合作图与顺序图就是可以无信息损失的相互转换,只就是它们的侧重点就是不一样的,顺序图着重于对象间消息传递的时间顺序,合作图着重于表达对象之间的静态连接关系,下图将顺序图转换为合作图。
用户
1
2
21
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 系统分析 设计