技术分享 嵌入式建模中UML状态图的形式化方法

在学习UML的过程中你可能会遇到UML状态图问题,本节和大家一起学习一下嵌入式建模中带有时间扩展的UML状态图的形式化方法,希望通过本节的介绍大家对UML状态图有所了解。

嵌入式建模中带有时间扩展的UML状态图的形式化方法

摘要:面向对象建模语言UML(UnifiedModelingLanguage)已广泛用于嵌入式系统建模,但它在嵌入式实时系统建模时存在概念模型形式化复杂和状态图对时间约束方面的建模功能不强的问题,针对这些问题,提出一种对UML状态图进行时间扩展的方法,并提出利用“可执行UML”对带有时间扩展的UML状态图形式化的方法。

1引言

随着嵌入式系统在各个领域的广泛应用,嵌入式系统变得越来越复杂。因此,研究一种支持嵌入式系统从分析、设计、验证到编码这一整个开发过程的模型系统及建模方法变得越来越重要。

UML是一种可视化建模语言[11],它通过用例图、类图、协作图、状态图等一系列图形符号来描述特定的系统,支持不同层次的系统抽象,能够清晰而准确地描述特定系统的结构、功能和行为,在多个领域中有成功的应用[10]。将UML用于嵌入式系统的分析与设计,能够由简到详,描绘出嵌入式系统的需求、结构、功能及相应的行为,让开发者对所开发的系统有准确而全面的了解。然而,但它对嵌入式系统建模时存在两个主要不足:

一是UML不是形式化描述语言,不能直接对其模型进行模拟验证。目前国内外解决这个问题的方法主要有四种:

(1)使用可执行语言进行系统描述、模拟、验证。如采用Cx语言去描述系统,然后将Cx对系统的描述编译成内部扩充语法图去分析和模拟系统[1]。

(2)使用一种建模语言描述状态图,再使用基于此语言的框架技术进行系统分析、设计、验证和编程。如文献[2]、[3]提出的使用UML进行系统描述,然后使用基于UML的集成可视化开发环境Rhapsody(一个实时框架),进行系统分析、设计、实现和验证。

(3)使用两种建模语言。如文献[1]、[4]提出的使用UML进行系统分析和设计,采用SystemC模拟验证。

(4)使用UML建模语言进行系统分析、设计,再用其对此建模语言的改进使之能形式化描述,从而进行模型验证。如文献[5]提出的将UML进行扩展使之成为“可执行UML”。

    二是UML状态图对时间约束的建模能力不强。

嵌入式系统很多情况下具有实时性,在嵌入式实时系统的开发中,实时系统的动态属性是其严格建模的重点。其动态属性主要表现在:反应式、实时性这两点。UML状态图方法适合于对嵌入式实时系统的反应特性进行建模,然而,UML状态图在对时间约束方面的建模能力并不强,而且不规范。]

2嵌入式实时系统中UML状态图的时间扩展

为了解决上述第二个问题,国内外提出了多种方法,如SaschaKonrad等[12]提出了实时描述模式,使用MTL、TCTL、RTGIL三种时序逻辑描述的方法;文章[6]提出了一种利用UML扩展机制,对UML状态图进行时间扩展,实现对基于状态图的时间约束进行建模,并使用时间化自动机进行模型形式化;还有一些研究[7]也通过UML扩展机制使得UML可以对实时系统进行表达。本文采用UML扩展机制对UML状态图进行时间扩展,采用UML的增强性子集-可执行UML对UML模型进行形式化转换。

UML包含了三种扩展结构:约束(Constraints)、版型(Stereotypes)、标签值(Tag)。这些结构都可以在不更改基本UML元模型的前提下,对UML进行各种扩展。现有的许多研究都通过扩展机制使得UML可以对实时系统进行表达。本文借鉴[6]的方法,通过版型来提供时钟以及时钟事件的扩展。

(1)超时事件版型:在某个状态只能保持限定的时间,超时之后,系统迁移到另一状态;

(2)操作的时间延迟版型:迁移中附带的操作所花费的时间不为0;

(3)受时钟约束的迁移:时钟约束是迁移约束条件,也就是说迁移只能发生在某个时间段,该迁移约束条件中使用了时钟版型;

(4)周期事件版型:某些操作周期性执行,或者事件、迁移在状态图中周期性发生。

经过以上扩展,UML就可以对实时系统进行表达。UML状态图中状态迁移由两类事件触发,一类事件是由于状态图所表示的对象的外部输入事件,另一类是在对象的运行中,内部时钟所激发的时钟事件。

3形式化带时间扩展的状态图的可执行UML

为了能对上述带时间扩展的UML状态图形式化,我们类似[5]中提出的方法,采用可执行UML方法。所谓可执行UML,是UML的增强性子集,使用与UML相同的符号表示法,并集成了状态图所用的形式化语义定义,其目标是为了模型的形式化描述,从而能进行模型的仿真和验证。在可执行UML元模型中,所有概念实体被抽象为类,每个概念实体在其生命周期内的所有活动用状态图来表示。概念实体在其生命周期内的每一阶段被抽象为状态。当一个概念实体处在生命周期内的某个阶段时,某些事件的发生使实体从当前的状态迁移到另一个状态,这种迁移被抽象为变迁。变迁描述了实体在当前状态下可能发生的活动及其发生条件。此外,元模型还定义了建模元素之间的关系,通过这些关系的定义,在建模过程中可以方便地区分不同的实例并描述这些实例之间的关系。图1显示了可执行UML的元模型。图1可执行的UML的元模型(meta-model)

对于实时系统,根据第2节的讨论,我们对状态图进行了时间扩展,为了能形式化表达状态图的时间约束,系统中所有可能发生的状态迁移、时间约束及其发生条件用状态-约束-事件矩阵来表示。

变迁、时间约束和状态-约束-事件矩阵可以被认为是用来描述系统行为的抽象概念,状态和变迁之间的关系代表了当信号事件触发后系统向新状态的过渡。

下面,以超时事件、周期事件为例给出如何得出状态-约束-事件矩阵,图2是一个简单的带时间扩展的UML状态图,其中T0是超时事件,Tp是周期事件。图2带时间扩展的UML状态图

根据上面的分析,在嵌入式实时系统建模中,先要确定模型中应包含的类及各类相应的状态图,各类的状态图包含了该类拥有的状态、引起状态变换的信号事件、带时间约束的时钟和时钟事件及执行状态变换的变迁等信息,然后在此基础上建立系统的状态-约束-事件矩阵,对系统的行为做形式化描述。

4相关工作

本节给出一些与本文不同的形式化方法。在赖明志等[6]的研究中,使用UML扩展机制对UML状态图进行时间扩展,构造了时间自动化机,然后将UML图形转换成时间自动化机模型的形式化方法。

在石柯等[5]的研究中,使用了可执行UML对UML图形进行形式化,但在时间约束方面,没有给出更深的研究。

在SaschaKonrad等[12]的研究中,采用MTL、TCTL、RTGIL三种时序逻辑和构造English文法及描述模式的方法。

相关推荐