UML在ATM自动取款机中的应用新版

更新时间:2023-10-30 03:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

UML在ATM自动取款机中的应用

(一)Uml基础知识

Uml概述

UML(Unified Modeling Language)是软件界第一个统一的建模语言,该方法结合了Booch,

OMT, 和OOSE方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。

它是一种标准的表示,已成为国际软件界广泛承认的标准。是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准 — UML图。 UML应用领域很广泛,可用于软件开发建模的各个阶段,商业建模(Business Modeling), 也可用于其它类型的系统。

UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言,不是一种方法,它独立于过程。利用它建模时,可遵循任何类型的建模过程。

建模过程: 分析、抽取 分析、设计 提取 解决方案 概念模型 系统需求 领域问题 UML的主要构成

向对象分析与设计的一种 ? 视图(views), ? 图(Diagrams),

? 模型元素(Model elements) ? 通用机制(general mechanism)

UML是一种标准化的图形建模语言,它是面向对象分析与设计的一种标准表示。由:

等几个部分构成。

视图(views)

一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。 视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。

如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。 图(Diagrams)

UML语言定义了五种类型9种不同的图,把它们有机结合起来就可以描述系统的所有视图。 用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。 静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。

行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。

交互图(Interactive diagram), 描述对象间的交互关系。包括顺序图、合作图。 实现图( Implementation diagram ) 用于描述系统的物理实现。包括构件图、部件图。 UML的9种图 1 2 3 4 5 6 7 8 9 图名称 类图 对象图 用例图 顺序图 协作图 状态图 活动图 构件图 图定义 一组类、接口、协作及它们的关系 一组对象及它们的关系 一组用例、参与者及它们的关系 一个交互,强调消息的时间顺序 一个状态机,强调对象按事件排序的行为 一个状态机,强调从活动到活动的流动 一组构件及关系 图性质 静态图 静态图 静态图 动态图 动态图 动态图 静态图 静态图 一个交互,强调消息发送和接受的对象的结构组织 动态图 配臵(实施图) 一组接点及它们的关系 包图: 包中的类以及包与包之间的关系(静态图) UML的5种视图 1 视图名称 用户模型视图(用例视图) 视图内容 系统行为,动力 问题及解决方案 性能、可伸缩性,吞吐量 构件、文件 静态表现 用例图 动态表现 交互图、状态图、活动图 观察角度 用户、 分析员、 测试员 类、 接口、 协作 线程、 进程 配臵、 发布 拓扑结构 的节点 2 结构模型视图(设计视图) 类图、对象图 交互图、状态 图、活动图 类图、对象图 交互图、状态 图、活动图 构件图 交互图、状态图、活动图 交互图、状态图、活动图 3 行为模型视图(进程视图) 实现模型视图(实现视图) 环境模型视图(实施视图) 4 5 部件的发布、配臵图 交付、安装 (实施图) 模型元素(Model elements) 代表面向对象中的类,对象,关系和消息等概念,是构成图的最基本的常用的元素。一

个模型元素可以用于多个不同的图中。 通用机制(general mechanism)

用于表示其他信息,比如注释,模型元素的语义等。另外,为了适应用户的需求,它还提供了扩展机制(Extensibility mechanisms) ,包括构造型(Stereotype)、标记值(Tagged value)和约束(Constraint).使用UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。

(二)ATM建模分析 0 引言

UML(统一建模语言)是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档[1].它提供了从不同的角度去观察和展示系统各种特征的标准方法.在UML中,从任何一个角度对系统所做的抽象都可以用多种模型来描述口,而这些来自不同角度的模型最终构成了系统的完整模型.

ATM(Automantic Teller Machine)自动取款机是由计算机控制的持卡人自我服务型的金融专用设备.在我国,基本上所有的银行系统都有自己的ATM系统.ATM利用磁性代码卡或智能卡实现金融交易,代替银行前台工作人员的部分工作.顾客可以在ATM机上取钱、查询余额、转账和修改密码等业务.除此之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能.

1 ATM系统需求分析

ATM系统向用户提供一个方便、简单、及时、随时随地可以取款的互联的现代计算机化的网络系统.一个完整的ATM机至少包含四个功能:

1)取款:持卡人或有银联标识卡的客户均可通过ATM进行取款交易.

2)查询:持卡人可通过ATM办理活期账户查询和多账户查询,持有银联标识卡的客户可通过本行ATM办理活期账户查询.

3)改密:持卡人可通过ATM更改账户密码,确保资金安全.

4)转账:持卡人可通过ATM办理卡与卡账户、卡与折账户的转账等业务.

为了实现上述四个基本功能,一个ATM系统应包括读卡模块、输入模块、IC卡认证模块、显示模块、吐钱模块、打印模块,监视器模块等.读卡模块用于识别客户卡的种类并在显示器上提示输入密码;输入模块用于客户输入密码、账号和金额等信息;IC卡认证模块用于鉴别卡的真伪,以防假冒;显示模块用于显示持卡客户有关的信息;吐钱模块则按照客户的需求提供相应的现金;打印模块则为客户提供交易凭证.结构图如下所示:

ATM自动取款读卡机模块键盘输入模块IC认证模块显示模块吐钱机模块打印报表报表监视器模块

2 系统用例模型 2.1系统用例图

根据系统的需求分析可知,系统中的角色有银行客户、工作人员和系统,其中银行客户使用ATM系统进行交易;工作人员可以更改ATM的设臵、放臵现金、机器维护等;系统则作为外部角色参与整个活动,系统用例图如图1所示:

【ATM系统的用例图】

存钱银行工作人员添加信息取钱客户修改密码维护硬件设备转账查询余额付款银行工作人员

【ATM提款系统用例图】

存款查余额用户付款信用取款验证用户更改密码

【解释:用例图】

① 用例用于描述一组用例、参与者及它们之间的连接关系。

② 用例图仅仅从角色使用系统的角度描述系统中的信息,也是站在系统外部查看系统功 能,而并不描述该功能在系统内部是如何实现的。

③ 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。

④ 用例可应用于整个系统,也可应用于系统的一部分,包括子系统、单个的类甚至接口。 ⑤ 通常,用例不仅代表这些元素所期望的行为,而且还可把这些元素用作开发过程中测试用例的基础。

椭圆:用例,是用户与计算机之间的一次典型交互作用。 人形:参与者(外部执行者)是指用户在系统中所扮演的角色。

2.2顾客用例图 创建用例(Use Case)

用例是角色启动的,基于这样的考虑,ATM系统根据业务流程大致可以分为以下的几个用例:

? 客户取钱 ? 客户存钱 ? 客户查询余额 ? 客户转帐 ? 客户更改密码

? 客户通过信用系统付款 ? 银行官员改变密码

? 银行官员为ATM添加现金 ? 银行官员维护ATM硬件

? 信用信用启动来自客户的付款

顾客先将自己的磁卡或智能卡插入ATM机,ATM机先审核该卡,如果合法,则提示用户输入密码,如密码错误,则提示重新输入,如果输入次数超过限制,则自动吐卡;如果密码正确,则让顾客选择服务类型,此时顾客就可以进行取款、查询余额、设臵密码、转账等操作,操作完成后退磁卡或智能卡,顾客用例图如图2所示:

2.3 系统类图 【解释:类图】

① 用于描述一组类、接口、协作及它们间的静态关系。

② 在面向对象系统的建模中,类图最为常用,它用来阐明系统的静态结构。

③ 类是对一组具有相同属性、操作、关系和语义的对象的描述,其中对类的属性和操作进行描述时的一个最重要的细节是它的可见性。

③ 一个典型的系统模型中通常有若干个类图。一个类图不一定要包含系统中所有的 类,一个类可加到几个类图中。

在类图中类用矩形框来表示,它的属性和操作分别列在分格中。 类之间可以多种方式链接(如关联、泛化、依赖和实现等)。

关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区别。 【类图】

账户ATM屏幕ATM键盘ATM读卡器吐钱机数据库

【ATM机系统类图】

3系统动态模型

动态模型是指系统随时间变化的行为,行为是从静态视图中抽取系统的瞬间值的变化来描述的,UML中动态模型包括时序图、协作图、活动图和状态图等.

3.1 时序图 (顺序图)

时序图(Sequence Diagram)用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互.时序图主要包括如下元素:类角色、生命线、激活期和消息等.

顾客要取款时先插入磁卡,ATM机验证磁卡正确后要求顾客输入密码,如果用户输入正确,则系统提示顾客选择服务,此时顾客选择取钱,系统再次要求输入金额,如果顾客输入的金额在允许范围内,则系统正常进行交易,交易完成后提示顾客取走磁卡,顾客在ATM机上交易的时序图如图3所示:

【解释:顺序图】

顺序图表示对象之间传送消息的时间顺序。

顺序图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。

顺序图是一种强调时间顺序的交互图,可用来进行一个场景说明,即一个事务的历史过程。

顺序图中对象沿横轴排列,消息沿纵轴按时间顺序排列。

顺序图中的对象生命线是一条垂直的虚线,它表示一个对象在一段时间内存在。

由于顺序图中的大多数对象都存在于整个交互过程中,因此这些对象全部排列在图的顶部,它们的生命线从图的顶部画到图的底部。每个对象的正下方有一个小矩形条,它与对象的生命线相重叠,它表示该对象的控制焦点。

图中的消息可有序号,但由于该图上的消息已在纵轴上按时间顺序排序,因此消息序号通常省略。

【个人用户取款的顺序图】

显示请求个人 : 用户插入ATM卡显示数字键盘客户管理点钞机接受ATM卡询问PIN代码显示请求输入PIN代码PIN代码寻取数据库显示请求输入金额金额200现金可用性请求200元提供钱提供数据退卡【客户李明取款200元的ATM系统顺序图】

提示输入密码李明 : 用户读卡号退卡客户李明取款机初始化屏幕打开账户提示输入密码输入密码123456验证密码提示选择事务选择事务取款提示输入金额输入金额200取款验款扣款提供超票提供发票银行储户读卡机显示输入设备客户管理点钞机事务管理插入ATM卡接受ATM卡查询密码显示输入密码请求输入密码密码传递数据合法性确认确认数据的合法性出钞请求出钞取钞3.2 协作图 【解释:协作图】

协作图也是一种交互图,它强调收发消息的对象的组织结构。

协作图描述对象间的协作关系(与顺序图相似),显示对象间的动态合作关系。

在协作图中,直接相互通信的对象之间有一条直线,没有画线的对象之间不直接通信。附在直线上的箭头代表消息。消息的发生顺序用消息箭头处的编号来说明。 协作图是表示一个类操作的实现。

协作图可说明类操作中用到的参数和局部变量及操作中的永久链。

当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程

【李明取款的协作图】

6: 输入密码12345611: 输入金额200ATM屏7: 验证密码5: 提示输入密码李明 : 用户8: 提示选择事务10: 提示输入金额4: 打开账户12: 取款14: 查询余额13: 卡扣钱9: 选择事务(取款)1: 插卡插卡3: 屏幕初始化2: 读卡号李明读卡机17: 退卡取款机15: 提供款16: 提供清单

协作图与顺序(序列)图二者同构,可以互相转换。

在多数情况下,协作图主要用来对单调的、顺序的控制流建模,但它也可以用来对包括迭代和分支的复杂控制流程进行建模。 如果强调时间和顺序,则使用顺序图; 如果强调上下级关系,则选择协作图。

3.3 状态图

状态图是一个对象所有可能经历的所有过程的模型图,由对象的各个状态和连接这些状态的转换组成。它用状态描述系统的状态变化,状态的变化时有外界(包括自己)的作用(事件)驱动而引起的。

顾客在ATM机上进行操作会经历多种状态及各种状态之间转换的条件,除了等待顾客插入磁卡的起始状态和结束服务的终止状态,顾客会处于输入密码、选择服务类型、存款和取款四种状态,ATM机的状态图如图4所示:

【解释:状态图】

状态视图是一个类对象所经历的所有历程的模型图。 状态由对象的各个状态和连接这些状态的变迁组成。

每个状态对一个对象在其生命周期中满足某种条件的一个时间段建模。 当一个事件发生时,它会触发状态间的变迁,导致对象从一种状态转到另一种新的状态。 与变迁相关的活动执行时,变迁也同时发生。状态用状态图来表达。 在UML中,状态图可用来对一个对象按事件排序的行为建模。 【存取款状态图】

存款密码输入不正确选择存款选择退出系统选择继续服务插入磁卡输入密码密码输入正确选择服务类型选择取款选择继续服务取款选择退出服务输入密码3次不正确,系统退去

【Account(账户)对象(ATM系统)状态图】

取钱[结余小于0]OPEN存款[结余小于0]客户请求关闭检查结余[结余小于0达30以上天]透支通知客户CLOSE

3.4 活动图

【解释:活动图】

活动图是状态图的一种特殊情况,其中几乎所有或大多数状态都处于活动状态,而且几乎所有或大多数变迁都是由源状态中活动的完成而触发的。 活动图本质上是一种流程图,它描述从活动到活动的控制流。 活动图显示了系统的流程,可以是工作流,也可以是事件流。 【开户的活动图】

在屏幕上显示磁盘满磁盘满打印清单空闲磁盘空间在屏幕上显示打印查处屏幕上的提示信息打印产生附录文件

【ATM系统活动图】

收集客户信息建立新的信用账户:Account/屏[Initialixing]设置信用限制/检查客户信用历史检查客户信用历史拒绝账户批准账户:Account/[Denied]:Account/[Approved]接受信用条件:Account/[Opened i:]签发

【客户存取款-转账-更改密码活动图】

4 系统组件图

【解释:组件图】

用于描述一组(构)件之间的组织和依赖关系,用于建模系统的静态实现视图。组(构)件用虚线连接,表示组(构)件间的相关性。

组(构)件可以是可执行程序、库、表、文件和文档等,它包含了逻辑类或者逻辑类的实现信息,因此逻辑视图和实现视图之间存在映射关系。

组(构)件间也存在依赖关系,利用它可方便地分析一个组(构)件的变化会给其他组(构)件带来怎样的影响。

组(构)件图中也可包括包或子系统,它们都用于将模型元素组织成较大的组块。 【ATM系统构件图】

ATM.exeCardReaderCardDiapenserATMScreen

【ATM客户机的组件图】

ATM.exe读卡机显示点钞机读卡机显示点钞机

在C++组件图中:每个类有自己的体文件和头文件,框图中每个类映射自己的组件。如,显示类映射ATM显示组件,阴影组件称为包体,表示C++中显示类的体文件(.cpp)。 无阴影组件称为包规范,表示C++类的头文件(.H)。 组件ATM.exe是任务规范,表示处理线程(可执行程序)。

组(构)件间的相关性:如,读卡机类与显示类相关,即必须有显示类才能编译读卡机类。编译所有类后,即可创建可执行文件ATMClient.exe。

5 系统部署图

部署图是整个项目实施的最后阶段,就是把该系统中涉及的所有硬件和软件整合在一起,使系统运行起来,部署图包括组件图和配臵图,组件图的主要目的是显示系统组件间的结构关系,配臵图则着重考虑系统的物理部署,如网络布局等。

在ATM配臵中广泛涉及到网络连接,而这些都处于银行系统的专用网和局域网中,所涉及到的硬件有专业数据库服务器、区域ATM服务器、交换机、打印机和终端等,其简要配臵图如图5所示。 【解释:部署图】

定义系统中软硬件的物理体系结构。

部署(配臵)图可显示实际的计算机和设备(节点,立方体图形)以及它们间的连接关系,也可显示连接的类型及组(构)件间的依赖性。

在节点内部,放臵可执行组(构)件和对象以显示节点与可执行软件单元的对应关系。 【ATM系统的部署图】

打印机ATM客户机局域网地区ATM服务器局域网ATM客户机2专用网银行数据库服务器

【ATM系统部署(配臵)图】

银行数据库服务器地区ATM服务器打印机ATMClient1.exeATMClient2.exe

ATM系统采用三层结构,分别针对数据库、地区ATM服务器和客户机。 ATM客户机的可执行文件在不同地点的多个ATM上运行。 ATM客户机通过专用网与地区ATM服务器通信。

ATM服务器的可执行文件在地区ATM服务器上执行。

地区ATM服务器又通过局域网与运行Oracle的银行数据库服务器通信。 打印机与地区ATM服务器连接。

6 附录

6.1 电话机工作的状态图

6.2 图书馆“借书”“还书”工作流程活动图

本文来源:https://www.bwwdw.com/article/hlj2.html

Top