基于UML和形式化方法的面向方面
实时系统模型
二零零六年五月八日
分类号: 代码:111911
UDC: 密级: 学 号:2240305243
摘要
关注分离在软件工程上是一种广泛应用的原理,认为难于理解的复杂问题应该被划分为一系列容易理解的简单问题,并且能够容易解决和集成到原处,从而解决原来复杂的问题。由于问题被分解为人容易理解的小单元,而且适合于各种需求的变化,因此这种方式开发软件能够给程序带来更好的可理解性、维护性、适应性和重用性。
实时系统已经广泛应用于各个领域,但是实时系统具有很多非功能需求(例如实时性),且这些非功能需求往往横切整个系统模块,引起代码混乱和代码分散等问题,导致系统难于设计、重用和维护,严重影响系统的性能。
面向方面编程作为一种基于关注分离的新软件开发范例,能够通过引入实现横切关注点的方面来获得更高的功能性和非功能性关注点的分离,而且系统不同的方面能够进行单独的设计,并织入系统。它不仅能够解决面向对象编程在设计横切关注点时陷入的"应该设计不足还是宁可过分设计"的两难境地,还能够很好的解决上述遇到的问题。
目前面向方面编程的实现语言已经不少,例如AspectJ等,但仍然没有适用面向方面程序设计的建模语言。因此,我们利用UML和形式化方法来表达面向方面程序,并建立相应的面向方面软件设计模型来设计实时系统。
本文分析介绍了实时系统、面向方面软件设计以及UML等技术;总结了UML建模实时系统现有的方法;论述了扩展UML建立的时间模型;提出一种新的基于UML的面向方面软件设计模型(AOSDM-UML),通过扩展UML表达AOP的相关概念,在UML的元模型层次上设计AOSD的模型框架,从结构模型、行为模型和方面织入等几部分建立面向方面的设计模型,并结合实例说明整个建模过程,即利用UML的类图实现方面的结构模型、方面与核心组件以及方面之间的静态关系,协作图表达方面与核心组件之间的动态行为,最后通过状态图细化系统的动态行为,实现在状态图中表达方面与核心组件以及方面之间的织入关系。接着进一步结合形式化语言RTL对AOSDM-UML进行实时扩展,并通过电梯例子来说明实时系统的建模过程。
为了从形式化方法的角度来设计实时系统,本文根据AOP技术把系统不同的方面利用不同的形式化语言来表示,用LOTOS描述实时系统的功能性方面,而实时方面用随机实时时序逻辑SQTL表达,并通过定义迁移系统LTS和事件调度器利用时间自动机来实现方面的织入。根据分布式实时系统的特性,还进一步提出把时间方面划分为确定的、不确定的和模糊的时间子方面,并且把不同的时间子方面分别利用随机实时时序逻辑(SQTL)和模糊时间Petri网(FTN)来设计,然后各个时间子方面都转化为时间自动机组合到系统中,实现系统的实时特性。
关键词:面向方面编程;面向方面软件开发;实时系统;UML;形式化方法
Abstract
Separation of Concerns is a common, widely used principle in software engineering. It suggests that a complex problem that is hard to understand be divided into a series of smaller problems that are less complex and easier to comprehend. These smaller problems may than be solved one at a time and finally may be put back together again to solve the big problem. Developing software this way leads to a greater comprehensibility, maintainability, adaptability, and reusability of programs since problems are cut down to units whose size is perceptible by human minds and that may be generalized to suit various needs.
Real-Time systems have been applied in every area widely, but they have many non-functional requirements, such as the real-time requirement, which cross cut the whole system modules. That may cause