的实时性作为开发系统的一个独立的方面,并建立相应的时间模型来实现时间方面,从而方便实时系统的设计和开发,确保系统的实时性。
但是AOP技术目前还不成熟,还没有形成统一的标准建模方法。现有的方法都比较零散,主要针对软件设计的某个阶段,特别是编码阶段来讨论,没有把AOP技术应用到软件设计的整个过程,发挥AOP技术的优势;而且每种方法之间又可能产生不兼容,产生混乱的局面。因此,非常需要探索一种比较完善的面向方面的软件建模方法,这也是本课题研究的目的。
UML是面向对象的工业化标准建模语言,目前已经广泛的被运用于各个应用领域的建模,具有丰富的模型分析和设计技术,能够利用不同的视图来构造系统的结构和行为模型,在整个软件生产过程中都能很好地对软件系统进行建模。UML本身就是一种可扩展的建模语言,从而满足不同领域的建模需要。因此,利用UML来建立基于面向方面的实时系统模型,更容易接近于应用和为人们所掌握,也更能体现AOP和OOP技术的结合。
形式化方法是建立在严格数学基础上、具有精确的数学语义的开发方法。从广义角度,形式化方法是软件开发过程中分析、设计及实现的一种系统工程方法。狭义地,形式化方法是软件规格和验证的方法。
实时系统非常复杂,对正确性、安全性、健壮性具有很高的要求,在开发过程应尽量使规约具有精确性和无二义性,形式化方法以其数学上的精确性、固有的推理证明机制和精化机制成为实时系统开发中的一种重要的方法。由于形式化方法的数学基础是相通的,可以将具有不同特点的、适用于不同方面的形式化方法结合,构成有利于解决领域问题的合成形式化方法,这与面向方面技术中的不同方面可以用不同方法描述的思想相一致。因此,可以把面向方面开发方法与形式化方法相结合,进行实时系统的建模,从不同的角度分析问题,将复杂问题简化为多个简单方面的组合,从而进一步保证实时系统的QoS需求。
1.2 对国内外研究现状的分析
AOP 的概念是 Gregor Kiczales 在 Xerox Parc 团队于 20 世纪 90 年代后期首先提出的。从那时起,在各个编程领域已经涌现出许多 AOP 框架,例如aspectj[9]、aspectC++[10]和Hyper/J[11]等。目前,大多数面向方面软件设计主要是研究与UML的相结合,即对UML进行扩展来进行面向方面建模的研究。有些是对特定方面语言AspectJ的UML扩展[12-16],有些通过扩展UML符号来表达面向方面的概念,把方面表达为类元并实现构造型表达横切关注、绑定、连接点等概念[17,18],或者从结构方面[19,20]和行为方面来建模方面[21-23]等等。这些方法都没有涉及软件设计的整个过程,不能满足AOSD各个阶段的需求。因此,有必要构建一个具有较完整体系的方面模型,表达AOSD的语义,并实现从多方面多角度来描述AOSD。这种模型与UML一样具有一系列的扩展机制适应不同的面向方面系统建模,并与UML语义相一致,即能表达AOSD又不会改变UML元模型。文献[24,25]虽然提出了一种用于面向方面建模的UML框架,但不完善。而且上述研究基本上都不是基于实时系统的研究,没有突出实时性,不能直接进行实时系统的设计。
目前利用形式化方法来设计AOP的研究主要有基于基于进程代数[26]、GAMMA语言[27,28]、时序逻辑[29,30]和两种形式化语言的结合[31-35]等形式化方法。文献[26]根据AOP特性建立相应的进程代数语言,并实现对应的织入算法。文献[27,28]通过对GAMMA语言进行实时扩展来定义时间方面。文献[29,30]以基于动作时序逻辑TLA的DisCo为基础从三个部分来开发系统,即规范、证明和验证,并把DisCo实例规范转换为时间自动机,实现利用有效工具进行实时规范的验证。文献[31-35]主要基于面向方面思想结合LOTOS和时序逻辑来设计分布式多媒体系统。根据分布式实时系统的特点,可以利用LOTOS的并发特性来描述系统的行为方面,而时序逻辑来表达实时方面,体现面向方面思想的优越性和灵活性。上述建模实时系统的形式化方法都是把时间作为一个整体的方面来分析,而实时系统通常是比较复杂,特别是分布式实时系统,一个系统的时间可能包括精确时间、概率时间和模糊时间等。因此,还可以把时间方面进一步分为精确时间子方面、概率时间子方面和模糊时间子方面,使时间方面能更准确的表达系统的实时需求。
1.3 论文的主要工作及组织方式
1.3.1 论文的主要内容
本文研究的主要内容有:对UML进行面向方面的扩展;从系统框架、结构模型、行为模型和方面织入几部分来建立面向方面软件设计模型AOSDM-UML;结合形式化语言RTL来扩展AOSDM-UML模型进行实时系统建模;基于面向方面利用形式化语言LOTOS和随机实时时序逻辑SQTL对实时系统进行形式化建模,并进一步细化时间方面,把时间方面分为确定时间子方面、不确定时间子方面以及模糊时间子方面,不同个子方面通过不同的形式化语言实现,并转换为时间自动机结合到系统中。
1.3.2 论文的组织方式
本文的结构组织方式如下:
第一章介绍本文选题的背景及意义和国内外研究的现状。
第二章主要介绍本文涉及到的相关技术简介,首先从实时系统的定义、特征及要求、开发过程、建模方法和应用几个方面介绍实时系统;其次对UML的扩展机制和现有的实时扩展方法进行总结;然后是对时间约束语言RTL进行简要的概述;最后介绍AOP的概念、实现原理、横切模型以及现有的AOP框架。
第三章主要论述UML的时间模型,从基本时间模型、定时机制模型、时间事件模型和时间服务模型几个方面讨论时间的建模方法。
第四章主要介绍如何利用UML来建立面向方面软件设计模型。首先讨论面向方面系统建模的UML框架,然后对UML进行扩展来表达面向方面的概念;其次根据系统的静态和动态特性建立相应的结构及行为模型;最后讨论AOP的方面织入技术。
第五章是以AOSDM-UML模型为基础来建模实时系统。首先是对AOSDM-UML模型进行实时扩展,并结合实时逻辑语言(RTL)来描述时间约束;然后通过一个例子来描述实时AOSDM-UML模型的建模过程。
第六章主要从形式化方法的角度来设计实时系统。根据AOP技术能够把系统不同的方面使用不同的语言表示的特点,利用LOTOS描述实时系统的功能性方面,而实时方面用随机实时时序逻辑SQTL表达,并通过定义迁移系统LTS和事件调度器转换为时间自动机来实现两种形式化语言的组合,实现方面的织入。最后通过一个例子来分析设计过程。
第七章讨论如何利用AOP技术和形式化方法来细化时间方面。根据分布式实时系统的特点可以把系统的时间方面进行划分为确定的、不确定的以及模糊的时间等多个子方面,不同的时间子方面使用不同的形式化语言设计,然后通过把各个子方面转换为时间自动机结合到系统中,实现各个时间子方面的组合。本章利用SQTL设计确定的时间子方面和不确定的时间子方面,FTN来建模模糊的时间子方面。
第二章 相关技术
2.1 实时系统
实时系统不同于分时系统,在分时系统中用户是通过计算机终端使用计算机系统,允许多个用户同时与计算机系统进行一系列的交互,但每个用户都感到自己拥有计算机系统的全部资源。而实时系统是计算机系统接收到外部信号后必须能及时的进行处理,以及在严格规定的时间内完成,并能给出正确的处理结果的系统。
2.1.1 实时系统的定义及时间约束
实时系统有许多不同的定义,却没有一个公认的定义。John A. stankovic[36] 认为实时系统具有一下的性质:即如果系统的逻辑正确性和时间正确性不被满足的话,将会导致灾难性的后果,也就是说实时系统的正确性
上一篇:
基于PLC的立体车库控制系统的设计(word文档)
下一篇:
基于JSP邮件收发系统论文