必威体育Betway必威体育官网
当前位置:首页 > IT技术

自动取款机(ATM)系统。

时间:2019-09-29 03:45:29来源:IT技术作者:seo实验室小编阅读:67次「手机版」
 

自动取款机

以下内容摘自张海藩老师《软件工程导论》课件

目录

自动取款机(ATM)系统

需求陈述

建立功能模型

建立对象模型

建立动态模型


自动取款机(ATM)系统

需求陈述

某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。

总行拥有多台ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。

银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。

柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。

拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。

所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。

每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。

用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。

首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。

中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。

如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。

建立功能模型

步骤:

1 识别外部执行者;

2 识别用例;

3 建立用例图

4 补充用例描述:为建立对象模型和动态模型打基础。

系统功能模型

用例描述

建立对象模型

建立对象模型步骤(六个步骤):

# 确定分析类

分析模型中,分析类是概念层次上内容,类直接与应用逻辑相关,不关注技术实现。

1 找出候选分析类

边界类 控制类 实体类

1.1 确定边界类

通常,一参与者与一用例间交互或通信关联对应一边界类

边界类                               说明

SetupForm                       开新账户的操作界面

DepositForm                    存款的操作界面

ATMWithdrawForm          ATM用户取款的操作界面

ATMBalanceForm             ATM查询余额的操作界面

ATMPasswordForm          ATM改变密码的操作界面

TellerWithdrawForm         Teller用户取款的操作界面

TellerBalanceForm            Teller查询余额的操作界面

TellerPasswordForm         Teller改变密码的操作界面

(5个用例和两个执行者构成8个)

1.2 识别控制类

控制类负责协调边界类和实体类,通常在现实世界没有对应的事物。 一般来说,一个用例对应一个控制类。

控制类                             说明

SetupControl                  负责执行开新账户

DepositControl               负责执行存款

WithdrawControl            负责执行取款

BalanceControl               负责执行查询余额

PasswordControl            负责执行改变密码

(5个用例5个控制类)

1.3 识别实体类

实体类通常是用例中的参与对象,对应着现实世界中“事物”

# 非正式分析法:需求陈述中名词。

例:用非正式分析法提取ATM系统中的实体类。

银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问

# ATM系统分析员根据领域知识或常识提取出隐含的类。

通信链路、事务日志

2 筛选出正确的类

2.1 冗余

储户与用户,现金兑换卡与磁卡及副本应去掉“用户”、“磁卡”、“副本”,保留“储户”和“现金兑换卡”。

2.2 无关

与本问题密切相关类放进目标系统,去掉“成本”、“市”、“街道”、“营业厅”、“储蓄所”。

2.3 笼统

银行(总行和分行)、系统、软件、信息、访问(事务)。

2.4 属性

现金、支票、取款额、账单、余额、分行代码、卡号、密码和类型。

2.5 操作

需求陈述中既作名词又作动词的词,慎重考虑是作类合适,还是作类中操作合适。

2.6 实现

事务日志、通信链路。

ATM系统筛选后的类:

银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问

ATM系统的实体分析类

# 确定类的关联

1 初步确定关联

动词或动词词组;  

隐含关联;

与用户及领域专家讨论补充。

1.1 直接提取动词短语

ATM、中央计算机、分行计算机及柜员终端组成网络

总行拥有多台ATM

ATM设在主要街道上

分行提供分行计算机和柜员终端

柜员终端设在分行营业厅及储蓄所内

分行分摊软件开发成本

储户拥有账户

分行计算机处理针对账户的事务

分行计算机维护账户

柜员终端与分行计算机通信

柜员输入针对账户的事务

ATM与中央计算机交换关于事务的信息

中央计算机确定事务与分行的对应关系

ATM读现金兑换卡

ATM与用户交互

ATM吐出现金

ATM打印账单

系统处理并发的访问

1.2 需求陈述中隐含的关联

总行由各分行组成

分行保管账户

总行拥有中央计算机

系统维护事务日志

系统提供必要安全性

储户拥有现金兑换卡

1.3 根据问题域知识得出的关联

现金兑换卡访问账户

分行雇用柜员

2 筛选                                      

2.1 已删去类之间关联

删掉某候选类,与这个类有关的关联也删去,或重新表达

已删去“系统”、“网络”、“市”、“街道”、“成本”、“软件”、“事务日志”、“现金”、“营业厅”、“储蓄所”、“账单”候选类,关联也应删去:

ATM、中央计算机、分行计算机及柜员终端组成网络

ATM设在主要街道上

分行分摊软件开发成本

系统提供必要安全性

系统维护事务日志

ATM吐出现金

ATM打印账单

柜员终端设在分行营业厅及储蓄所内

2.2 与问题无关或与实现密切相关的关联删去

“系统处理并发的访问”

2.3 瞬时事件

“ATM读现金兑换卡”“ATM与用户交互”

“中央计算机确定事务与分行对应关系”隐含“中央计算机与分行通信”

2.4 三元关联

三个或三个以上对象关联,可分解为二元关联或限定关联。

“柜员输入针对账户的事务”分解成“柜员输入事务”和“事务修改账户”

“ATM与中央计算机交换关于事务的信息”隐含“ATM与中央计算机通信”和“在ATM上输入事务”这两个二元关联

3 进一步完善

3.1 正名

"分行提供分行计算机和柜员终端"改为"分行拥有分行计算机"和"分行拥有柜员终端"。

3.2 分解

把“事务”分解成“远程事务”和“柜员事务”。

3.3 补充    

需补充"柜员输入柜员事务"、"柜员事务输进柜员终端"、"在ATM上输入远程事务"和"远程事务由现金兑换卡授权"。

#划分主题

原始实体类图

划分主题后的实体类图

#确定属性

需求陈述中的名词

1 误把类当属性

独立存在更重要,则应为类。

2 误把链属性作为属性

属性要依赖某关联链存在,则为关联类的属性。

3 误把限定当属性

属性值固定下来可减少重数,则应为限定。

4 误把内部状态当属性

对象的非公开内部状态不作属性。

5 过于细化

忽略对大多数操作都没有影响的属性。

6 存在不一致属性

分解两个类。

加上属性的实体类图

(属性和类限定词的区别是什么?)

#识别继承

识别出继承关系的实体类图

#反复修改

1 分解“现金兑换卡”类

现金兑换卡有两独立功能:标志储户访问账号的权限;含有   分行代码和卡号的数据载体。(卡权限和现金兑换卡)

2“事务”由“更新”组成

更新包括取款、存款、查询。有自己属性(类型、金额),应独立存在。

3 合并“分行”和“分行计算机”

同理合并总行和总行计算机。

修改后的实体类图

建立动态模型

开发交互式系统,动态模型非常重要

步骤:

# 编写典型交互行为脚本

结合ATM系统的实例,介绍建立动态模型方法

脚本描述用户与目标系统间的一个或多个典型交互过程

1 正常情况脚本

ATM请储户插卡;储户插入一张现金兑换卡

ATM接受该卡并读它上面的分行代码和卡号

ATM要求储户输入密码;储户输入自己密码“1234”等数字

ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,通知ATM这张卡有效

ATM要求储户选择事务类型(取款、转账、查询等);储选择“取款”

ATM要求储户输入取款额;储户输人“880”

...

2 异常情况脚本

3 错误情况脚本

ATM请储户插卡;储户插入一张现金兑换卡

ATM接受该卡并读它上面的分行代码和卡号

ATM要求储户输入密码;储户误输入“8888”

ATM请求总行验证;总行向有关银行咨询后拒绝这张卡

ATM显示“密码错”,请用户重新输入密码;储户输入1234

ATM请总行验证后知道输入的密码正确

ATM请储户选择事务类型;储户选择“取款”

ATM询问用户取款额;储户不想取款,敲“取消”键

ATM退出现金兑换卡,请储户拿走;储户拿走

ATM请储户插卡

# 从脚本中提取事件及相关对象,用顺序图表达

从脚本提取所有外部事件,确定每类事件发送和接收对象。针对系统中的典型功能,画出顺序图

ATM用户取款顺序图

# 确定对象状态及状态间转换关系,用状态图描绘

用一张状态图描绘类的行为,集中考虑具有交互行为类。画出系统中重点类的状态图。

ATM类状态图

总行类状态图

分行类状态图

相关阅读

Windows10 64位系统无法安装 .NET Framework 3.5的解

Windows10 64位系统无法安装 .NET Framework 3.5的解决办法 有很多软件需要net 3.5 Framework才能运行,比如说AutoCAD等。 全新安

在网上网赌平台系统维护取款通道审核失败怎么办?

如何辨别网上网投真假平台 可以来看下面我介绍的这个平台,它是缅甸这边的,说到缅甸,您们肯定了解这个国家,它是一个黄赌合法的国家,所

在网上网赌威尼斯系统出款通道维护不能提现怎么办有解

不能提现怎么办有解决方法

LINUX系统日志

系统日志 进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久存储 /var/

双机热备系统的方案与软件浅析

一、概述 双机热备指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备。双机高可用按工作

分享到:

栏目导航

推荐阅读

热门阅读