ATM系统的面向方面模型

时间:2022-09-24 08:39:01

ATM系统的面向方面模型

摘要:基于UML 的ATM系统面向方面模型,能够把关注从系统中分离出来,形成一个独立于系统的方面模块。面向方面编程(AOP)技术允许把设计好的方面模块根据特定需要重新织入系统,组合为完整系统。模型扩展了UML来表达方面元素概念,并从系统的静态结构模型和方面织入建模ATM系统。

关键词:统一建模语言;面向方面编程;横切;方面模型

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11599-01

1 引言

Aspect-oriented Programming(AOP),是一种可以分离软件开发中“横切关注点”的技术。把“方面”的概念引入分布式应用系统的设计和开发,并和对象化方法或结构化方法中成熟的设计开发技术相结合,就能进一步完善系统模块的描述能力,真正实现了模块的松耦合和独立性。面向方面建模技术允许系统开发者在系统设计时,从核心功能性需求中分离出不同的关注,例如实时性、安全性、异常处理、日志、同步控制、调度、性能优化、通信管理、资源共享和分布式管理等,并且支持各个方面的组合和绑定来实现系统的集成。从系统分离出来的各类关注可以与系统其它部分同步开发,进行单独设计。实时控制是银行系统的最重要特性,关系到整个系统的性能。利用AOP技术可以把银行系统的实时性作为开发系统的一个独立的方面,并建立相应的实时控制模型来实现和管理银行系统的实时需求,从而方便银行系统的设计和开发。

UML是当今在面向对象领域占主导地位的标准建模语言,它不仅可以支持面向对象的分析与设计,更重要的是能够有力的支持从需求分析开始的软件开发全过程。扩展UML来实现面向方面的银行系统的建模是一个十分有意义的研究方向。利用UML进行面向方面建模的研究又不是针对银行系统的设计,没有突出实时性,不能直接进行银行系统的设计。本文提出一个建模银行系统的面向方面模型,对UML进行相应的扩展来表达方面模型,最后给出银行系统的例子实现从系统的结构模型和织入方面几部分来说明系统的设计过程。

本文主要研究面向方面的ATM系统实时模型,综合已有的面向方面架构设计技术,给出一个基于UML面向方面模型及其在银行系统中的应用。

2 AOSD方面模型

面向方面是一个令人兴奋的新模式。就开发软件系统而言,它的影响力将会和面向对象技术一样。但是作为一种新的技术,它提出了许多全新的概念。在OOP的工具里是继承,封装和多态,而AOSD模型元素包含C1-C7。基于UML的扩展构造型如表1。

C1. 方面(Aspect)

C2. 组件(Component)

C3. 切入点(Point-cut)

C4. 通知(Advice)

C5. 静态和动态横切(Static and dynamic crosscutting)

C6. 方面组件关联(Aspect-component relation)

C7. 方面方面关联(Aspect-aspect relation)

表1 扩展方面构造型模型

组件是面向对象程序设计中的一个构成元素,并不是AO技术的基本元素,但它是软件架构中包含横切关注点的典型容器。组件引入到AO模型中有着非常重要的意义,方面、切入点和通知是描述和表示横切关注点的主要概念。方面组件关联和方面方面关联表达它们之间的关系。

3 AOSD模型在银行ATM系统中的应用

银行系统可以分离出几类关注:控制方面、时间方面、日志方面和并发方面。为了简化模型,这里只从时间方面和控制方面来分析系统的结构关系和方面织入。假设银行系统的时间约束和错误控制行为约束为:

[T1]如果卡插入错误或者密码输入三次不正确,系统自动退卡或吞卡,并进入初始空闲状态。

[T2]在选择服务类型暂停或者进行业务操作时间超过Max_Time时,系统会自动退卡,进入初始空闲状态。

[T3]在进行取款、电子商务和转帐业务时,余额funds如果为0或者不足支付时,系统自动进入暂停等待状态,等待用户进行其他业务操作。

3.1 结构关系

基于AOP技术的银行ATM系统结构模型不同于以往直接用UML的建模方法,把时间和错误控制行为关注分离出来,并形成一个方面来实现系统的实时控制特性。这样表达系统的时间和错误不会分散在各个模块中,把系统所有的时间和错误行为集中管理,便于实现和维护。在银行ATM系统的结构模型中,增加构造型ControlAspect来表达系统的时间和错误控制方面,方面类通过与系统核心组件关联(如图1所示)。

图1 银行ATM系统类图

3.2 织入方面

时间方面的织入是通过定义状态被触发迁移的规则来实现的。通过定义ATM核心系统和方面两者所处的不同状态下,什么情况才允许各自的一个状态迁移到下一个状态。根据约束条件,可以定义规则如下:

(1)插入银行卡时系统运行,当插入卡识别错误时或者密码输入三次不正确,控制方面处于错误状态,并满足time

(2)当用户选择服务类型或者选择服务类型之后业务处理时间time > Max_Time的时候,控制方面处于超时状态,那么控制方面迁移到空闲状态,ATM系统迁移到ATM机空闲状态。

(3)当用户在进行取款、网上电子银行划帐和转帐操作时,由于余额不足,控制方面迁移到等待状态,ATM系统迁移到选择服务类型状态,等待用户的下一步操作。

满足上述规则的情况进行状态迁移和事件处理,实现了确定的系统事件执行顺序和约束条件。ATM控制系统中方面的状态图织入关系如图2所示。

图2 方面织入

4 结束语

使用UML对银行ATM系统进行建模可通过UML的扩展机制来表达系统的实时控制特性,但表达控制行为的代码分散在系统的各个模块中,代码的重用性差,不利用验证实时控制性和系统维护。我们从一种新的角度来建立银行ATM系统的设计模型,通过引入面向方面编程技术,把时间和错误控制分离出来构造为一个控制方面,建立一个比较完整的控制模型来建模系统时间和错误机制,并允许控制方面与系统其它方面分开单独设计。最终又能够根据特定需要把设计好的控制方面织入到系统中,从而简化了银行ATM系统建模的复杂性。本文通过从静态结构模型和方面的织入等实现了银行ATM系统的整个设计过程。

由于时间有限,本文只涉及到时间和错误控制方面的建模和织入,这种设计模型还需要进一步完善:①进一步完善UML与AOP的结合;②实现多维多方面的分离、建模以及织入。

参考文献:

[1]I. Krechetov et al.(2006) Towards an Integrated Aspect-Oriented Modeling Approach for Software Architecture Design. Workshop on Aspect-Oriented Modeling held AOSD'06, March 20-24, 2006.

[2]刘瑞成,张立臣. 基于UML的面向方面的实时系统建模方法[J]. 计算机应用,2005,25(8).

[3]曾路,张立臣. 扩展UML用于面向方面的建模[J]. 微机发展,2004,14(12).

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于数字签名的数字水印系统 下一篇:利用Matlab来解决高等数学中的二维图形问题