1、UML综合案例在自动取款机中的应用(一)Uml基础知识Uml概述 UML(Unified Modeling Language)是软件界第一个统一的建模语言,该方法结合了Booch, OMT, 和OOSE方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。 它是一种标准的表示,已成为国际软件界广泛承认的标准。是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准 UML图。 UML应用领域很广泛,可用于软件开发建模的各个阶段,商业建模(Business Modeling), 也可用于其它类型的系统。UML是一种定义良
2、好,易于表达,功能强大且普遍实用的建模语言,不是一种方法,它独立于过程。利用它建模时,可遵循任何类型的建模过程。建模过程:UML的主要构成UML是一种标准化的图形建模语言,它是面向对象分析与设计的一种标准表示。由: 视图(views),图(Diagrams),模型元素(Model elements)通用机制(general mechanism)等几个部分构成。视图(views)一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图
3、,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。图(Diagrams)UML语言定义了五种类型9种不同的图,把它们有机结合起来就可以描述系统的所有视图。用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。 交互图(Interactive diagram), 描述对象间的交互关系。包括顺序图、合作图。
4、实现图( Implementation diagram ) 用于描述系统的物理实现。包括构件图、部件图。UML的9种图图名称图定义图性质1类图一组类、接口、协作及它们的关系静态图2对象图一组对象及它们的关系静态图3用例图一组用例、参与者及它们的关系静态图4顺序图一个交互,强调消息的时间顺序动态图5协作图一个交互,强调消息发送和接受的对象的结构组织动态图6状态图一个状态机,强调对象按事件排序的行为动态图7活动图一个状态机,强调从活动到活动的流动动态图8构件图一组构件及关系静态图9配置(实施图)一组接点及它们的关系静态图包图: 包中的类以及包与包之间的关系(静态图)UML的5种视图视图名称视图内容
5、静态表现动态表现观察角度1用户模型视图(用例视图)系统行为,动力用例图交互图、状态图、活动图用户、分析员、测试员2结构模型视图(设计视图)问题及解决方案类图、对象图交互图、状态图、活动图类、接口、协作3行为模型视图(进程视图)性能、可伸缩性,吞吐量类图、对象图交互图、状态图、活动图线程、进程4实现模型视图(实现视图)构件、文件构件图交互图、状态图、活动图配置、发布5环境模型视图(实施视图)部件的发布、交付、安装配置图(实施图)交互图、状态图、活动图拓扑结构 的节点模型元素(Model elements)代表面向对象中的类,对象,关系和消息等概念,是构成图的最基本的常用的元素。一个模型元素可以用
6、于多个不同的图中。通用机制(general mechanism)用于表示其他信息,比如注释,模型元素的语义等。另外,为了适应用户的需求,它还提供了扩展机制(Extensibility mechanisms) ,包括构造型(Stereotype)、标记值(Tagged value)和约束(Constraint).使用UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。(二)ATM建模分析引言(统一建模语言)是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档它提供了从不同的角度去观察和展示系统各种特征的标准方法在中,从任何一个角度对系统所做的抽象都
7、可以用多种模型来描述,而这些来自不同角度的模型最终构成了系统的完整模型()自动取款机是由计算机控制的持卡人自我服务型的金融专用设备在我国,基本上所有的银行系统都有自己的系统利用磁性代码卡或智能卡实现金融交易,代替银行前台工作人员的部分工作顾客可以在机上取钱、查询余额、转账和修改密码等业务除此之外,自动取款机还具有维护、测试、事件报告、监控和管理等多种功能系统需求分析系统向用户提供一个方便、简单、及时、随时随地可以取款的互联的现代计算机化的网络系统一个完整的机至少包含四个功能:)取款:持卡人或有银联标识卡的客户均可通过进行取款交易)查询:持卡人可通过办理活期账户查询和多账户查询,持有银联标识卡的
8、客户可通过本行办理活期账户查询)改密:持卡人可通过更改账户密码,确保资金安全)转账:持卡人可通过办理卡与卡账户、卡与折账户的转账等业务为了实现上述四个基本功能,一个系统应包括读卡模块、输入模块、卡认证模块、显示模块、吐钱模块、打印模块,监视器模块等读卡模块用于识别客户卡的种类并在显示器上提示输入密码;输入模块用于客户输入密码、账号和金额等信息;卡认证模块用于鉴别卡的真伪,以防假冒;显示模块用于显示持卡客户有关的信息;吐钱模块则按照客户的需求提供相应的现金;打印模块则为客户提供交易凭证结构图如下所示:系统用例模型 系统用例图 根据系统的需求分析可知,系统中的角色有银行客户、工作人员和系统,其中银
9、行客户使用系统进行交易;工作人员可以更改的设置、放置现金、机器维护等;系统则作为外部角色参与整个活动,系统用例图如图所示:【ATM系统的用例图】【ATM提款系统用例图】【解释:用例图】1用例用于描述一组用例、参与者及它们之间的连接关系。2用例图仅仅从角色使用系统的角度描述系统中的信息,也是站在系统外部查看系统功 能,而并不描述该功能在系统内部是如何实现的。 3用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。 4用例可应用于整个系统,也可应用于系统的一部分,包括子系统、单个的类甚至接口。 通常,用例不仅代表这些元素所期望的行为,而且还可把这些元素用作开发过程中测试用例的基础。椭圆:用
10、例,是用户与计算机之间的一次典型交互作用。人形:参与者(外部执行者)是指用户在系统中所扮演的角色。顾客用例图创建用例(Use Case) 用例是角色启动的,基于这样的考虑,ATM系统根据业务流程大致可以分为以下的几个用例:客户取钱客户存钱客户查询余额客户转帐客户更改密码客户通过信用系统付款银行官员改变密码银行官员为ATM添加现金银行官员维护ATM硬件信用信用启动来自客户的付款顾客先将自己的磁卡或智能卡插入机,机先审核该卡,如果合法,则提示用户输入密码,如密码错误,则提示重新输入,如果输入次数超过限制,则自动吐卡;如果密码正确,则让顾客选择服务类型,此时顾客就可以进行取款、查询余额、设置密码、转
11、账等操作,操作完成后退磁卡或智能卡,顾客用例图如图所示:2.3 系统类图【解释:类图】1用于描述一组类、接口、协作及它们间的静态关系。2在面向对象系统的建模中,类图最为常用,它用来阐明系统的静态结构。 类是对一组具有相同属性、操作、关系和语义的对象的描述,其中对类的属性和操作进行描述时的一个最重要的细节是它的可见性。3一个典型的系统模型中通常有若干个类图。一个类图不一定要包含系统中所有的 类,一个类可加到几个类图中。在类图中类用矩形框来表示,它的属性和操作分别列在分格中。类之间可以多种方式链接(如关联、泛化、依赖和实现等)。关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区
12、别。【类图】【ATM机系统类图】 系统动态模型动态模型是指系统随时间变化的行为,行为是从静态视图中抽取系统的瞬间值的变化来描述的,中动态模型包括时序图、协作图、活动图和状态图等时序图(顺序图)时序图()用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互时序图主要包括如下元素:类角色、生命线、激活期和消息等顾客要取款时先插入磁卡,机验证磁卡正确后要求顾客输入密码,如果用户输入正确,则系统提示顾客选择服务,此时顾客选择取钱,系统再次要求输入金额,如果顾客输入的金额在允许范围内,则系统正常进行交易,交易完成后提示顾客取走磁卡,顾客在机上交易的时序图如图所示:【解释:顺序图
13、】顺序图表示对象之间传送消息的时间顺序。顺序图用来描述对象之间消息发送的先后次序,阐明对象之间的交互过程以及在系统执行过程中的某一具体时刻将会发生什么事件。顺序图是一种强调时间顺序的交互图,可用来进行一个场景说明,即一个事务的历史过程。顺序图中对象沿横轴排列,消息沿纵轴按时间顺序排列。 顺序图中的对象生命线是一条垂直的虚线,它表示一个对象在一段时间内存在。由于顺序图中的大多数对象都存在于整个交互过程中,因此这些对象全部排列在图的顶部,它们的生命线从图的顶部画到图的底部。每个对象的正下方有一个小矩形条,它与对象的生命线相重叠,它表示该对象的控制焦点。图中的消息可有序号,但由于该图上的消息已在纵轴
14、上按时间顺序排序,因此消息序号通常省略。【个人用户取款的顺序图】 【客户李明取款200元的ATM系统顺序图】 3.2 协作图【解释:协作图】协作图也是一种交互图,它强调收发消息的对象的组织结构。 协作图描述对象间的协作关系(与顺序图相似),显示对象间的动态合作关系。在协作图中,直接相互通信的对象之间有一条直线,没有画线的对象之间不直接通信。附在直线上的箭头代表消息。消息的发生顺序用消息箭头处的编号来说明。协作图是表示一个类操作的实现。协作图可说明类操作中用到的参数和局部变量及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程【李明取款的协作图】协作图与顺序(序列)
15、图二者同构,可以互相转换。在多数情况下,协作图主要用来对单调的、顺序的控制流建模,但它也可以用来对包括迭代和分支的复杂控制流程进行建模。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择协作图。 3.3 状态图状态图是一个对象所有可能经历的所有过程的模型图,由对象的各个状态和连接这些状态的转换组成。它用状态描述系统的状态变化,状态的变化时有外界(包括自己)的作用(事件)驱动而引起的。顾客在ATM机上进行操作会经历多种状态及各种状态之间转换的条件,除了等待顾客插入磁卡的起始状态和结束服务的终止状态,顾客会处于输入密码、选择服务类型、存款和取款四种状态,ATM机的状态图如图4所示:【解释
16、:状态图】状态视图是一个类对象所经历的所有历程的模型图。状态由对象的各个状态和连接这些状态的变迁组成。每个状态对一个对象在其生命周期中满足某种条件的一个时间段建模。当一个事件发生时,它会触发状态间的变迁,导致对象从一种状态转到另一种新的状态。与变迁相关的活动执行时,变迁也同时发生。状态用状态图来表达。 在UML中,状态图可用来对一个对象按事件排序的行为建模。【存取款状态图】【Account(账户)对象(ATM系统)状态图】3.4 活动图【解释:活动图】活动图是状态图的一种特殊情况,其中几乎所有或大多数状态都处于活动状态,而且几乎所有或大多数变迁都是由源状态中活动的完成而触发的。活动图本质上是一
17、种流程图,它描述从活动到活动的控制流。活动图显示了系统的流程,可以是工作流,也可以是事件流。【开户的活动图】【ATM系统活动图】【客户存取款-转账-更改密码活动图】4 系统组件图【解释:组件图】用于描述一组(构)件之间的组织和依赖关系,用于建模系统的静态实现视图。组(构)件用虚线连接,表示组(构)件间的相关性。组(构)件可以是可执行程序、库、表、文件和文档等,它包含了逻辑类或者逻辑类的实现信息,因此逻辑视图和实现视图之间存在映射关系。组(构)件间也存在依赖关系,利用它可方便地分析一个组(构)件的变化会给其他组(构)件带来怎样的影响。组(构)件图中也可包括包或子系统,它们都用于将模型元素组织成较
18、大的组块。【ATM系统构件图】【ATM客户机的组件图】在C+组件图中:每个类有自己的体文件和头文件,框图中每个类映射自己的组件。如,显示类映射ATM显示组件,阴影组件称为包体,表示C+中显示类的体文件(.cpp)。无阴影组件称为包规范,表示C+类的头文件(.H)。组件ATM.exe是任务规范,表示处理线程(可执行程序)。组(构)件间的相关性:如,读卡机类与显示类相关,即必须有显示类才能编译读卡机类。编译所有类后,即可创建可执行文件ATMClient.exe。5 系统部署图部署图是整个项目实施的最后阶段,就是把该系统中涉及的所有硬件和软件整合在一起,使系统运行起来,部署图包括组件图和配置图,组件
19、图的主要目的是显示系统组件间的结构关系,配置图则着重考虑系统的物理部署,如网络布局等。在ATM配置中广泛涉及到网络连接,而这些都处于银行系统的专用网和局域网中,所涉及到的硬件有专业数据库服务器、区域ATM服务器、交换机、打印机和终端等,其简要配置图如图5所示。【解释:部署图】定义系统中软硬件的物理体系结构。部署(配置)图可显示实际的计算机和设备(节点,立方体图形)以及它们间的连接关系,也可显示连接的类型及组(构)件间的依赖性。在节点内部,放置可执行组(构)件和对象以显示节点与可执行软件单元的对应关系。【ATM系统的部署图】【ATM系统部署(配置)图】ATM系统采用三层结构,分别针对数据库、地区ATM服务器和客户机。ATM客户机的可执行文件在不同地点的多个ATM上运行。ATM客户机通过专用网与地区ATM服务器通信。ATM服务器的可执行文件在地区ATM服务器上执行。地区ATM服务器又通过局域网与运行Oracle的银行数据库服务器通信。打印机与地区ATM服务器连接。6 附录6.1 电话机工作的状态图6.2 图书馆“借书”“还书”工作流程活动图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1