一种AADL图形化功能行为建模方法与流程

文档序号:15346379发布日期:2018-09-04 22:48阅读:586来源:国知局

本发明涉及一种aadl图形化功能行为建模方法,属于图形化建模技术领域。



背景技术:

随着嵌入式软件在航空航天、通信、核工业、汽车电子等安全关键领域的广泛应用,这类嵌入式系统必须保证系统的可靠性、安全性等相关性质,这类嵌入式系统被称为安全关键系统(safetycriticalsystem)。如何保障这类系统的安全性、可靠性已经成为当前软件工程研究领域一个非常重要的课题。

安全关键系统是应用软件、运行时环境以及硬件平台深度融合的复杂系统。为此,2004年,美国汽车工程师协会sae(societyofautomotiveengineers)在metah、hood、uml、adl的基础上,提出嵌入式系统体系结构分析与设计语言aadl(architectureanalysisanddesignlanguage),并发布为saeas5506标准。aadl语言与之对应地提供了软件体系结构、运行时环境以及硬件体系结构的建模概念。通过数据(data)、子程序(subprogram)、线程(thread)、进程(process)、线程组(threadgroup)等构件以及连接(connection)来描述系统的软件体系结构;通过总线(bus)、虚拟总线(virtualbus)、处理器(processor)、虚拟处理器(virtualprocessor)、外设(device)、存储器(memory)等构件以及连接(connection)来描述系统的硬件体系结构;通过通信协议(communication)、模式变换协议(modechange)、调度策略(scheduling)、分发协议(dispatch)以及分区机制(partition)等属性来描述系统的运行时环境;最后,通过系统(system)构件进行组合,层次化地建立系统的体系结构模型。

aadl行为附件(behaviorannex)是aadl语言的重要的组成部分之一。aadl行为附件v2.0包括三部分:变量(variables)、状态(states)、转换(transitions)。行为附件通过自动机的形式描述aadl功能行为,通过状态变迁描述组件内部的功能行为执行。aadl行为附件v2.0的表达能力已较为完善,但对于初学者使用难度较高,难于理解。为此,开发一种图形化的aadl功能行为建模工具是一个亟待解决的问题。

针对aadl图形化建模工具的问题,2001年发布aadlv2.1新版本,cmu(carnegiemellonuniversity)为其开发开源工具环境osate2(opensourceaadltoolenvironment)。osate2可以对aadlv2的核心模型进行代码与图形双向建模。2008年,aadl行为附件(behaviorannex)发布,sei(softwareengineeringinstitute)为aadl行为附件v2.0开发了行为附件前端编辑器aadl-ba-frontend,该编辑器被集成到aadl开源工具环境osate(opensourceaadltoolenvironment)中。aadl-ba-frontend插件可以检查给定的行为附件是否遵守语法、语义规则,验证数据操作的一致性等。但到目前为止,还没有一个可以图形化建模并显示aadl行为附件的工具。

针对状态自动机层次化的问题,sysml语言提出了复合状态的概念。和简单状态一样,复合状态也拥有一个名称分隔框,还有另一个分隔框,可以选择extry、exit和do行为。区别在于,复合状态拥有内嵌的子状态。在状态机中的复合状态和状态机总体之间有几点类似的地方。当复合状态处于非活动的状态时,它所有的子状态都是非活动的。当复合状态时活动的,那么它的子状态之中会有一个是活动的。在活动的状态下,复合状态会对事件发生做出响应,从一种子状态转换到另一种子状态。子状态之间转换的形式,和状态之间的转换是相同的。另外,alexandredavid等人提出了层次时间自动机(hierarchicaltimedautomata)hta的概念,hta的主要目标是扩展时间自动机语言,使其拥有层次描述能力。由于与uml有相同的结构,他们定义的层次时间自动机可以被很容易的转换成其他的状态图,层次时间自动机语言已被集成到uppaal工具中。



技术实现要素:

为解决现有技术的不足,本发明的目的在于提供一种aadl图形化功能行为建模方法,用于对aadl功能行为进行图形化建模及表达,形成可视化的aadl功能行为模块。

为了实现上述目标,本发明采用如下的技术方案:

一种aadl图形化功能行为建模方法,其特征是,包括如下步骤:

步骤1)对aadl行为附件各组件进行图元定义;为了解决aadl图形化建模问题,需要对aadl行为附件中涉及到的各组件进行图元定义,使得该组件可在后续建模过程中以图形化的方式展现;

步骤2)使用eclipse插件开发技术、插件扩展点扩展技术实现图元注册;在定义各组件的图元后,需将该组图元在原有扩展点上注册,以实现该组图元的可访问性。然后,将新增的图元及其响应文件以eclipse插件形式集成到现有aadl开发环境osate中;

步骤3)对aadl行为附件图形化修改后检查;aadl行为附件图形化支持图形化显示与建模,包括组件的增加、删除与修改等。其中,修改后的组件属性必须符合aadl行为附件的语法、语义规则,所以需对aadl行为附件图形化进行修改后检查;

步骤4)对aadl行为附件层次化扩展。现有aadl功能行为建模方法中,无法描述工业界广泛存在的层次化功能行为需求,这直接导致系统难以管理大量的功能状态以及功能行为结构信息丢失的后果。因此,本专利通过对aadl行为附件层次化扩展的方式,增加aadl行为附件的层次化描述能力。

前述的一种aadl图形化功能行为建模方法,其特征是,所述步骤1)中aadl行为附件的组成包括行为附件容器、变量、状态、转换;

各组件图元定义如下:

行为附件容器的图元为圆角矩形,作为行为附件内其他元素的父容器,对应行为附件中的behaviorannex类;aadl行为附件规定一个合法的行为附件必须有初始状态initialstate和完成状态completestate,当行为附件容器被添加时,默认给出一个初始状态istate和一个完成状态cstate,行为附件容器存在于线程、线程组、进程、子程序的内部,行为附件其他各元素必须添加在行为附件容器内部;

变量的图元为正方形,表示该行为附件内部的所有变量,变量类型包括整型、单浮点实数型、布尔型、整型数组、实数数组、字符串型;变量对应行为附件中的behaviorvariable类;变量用于组成逻辑表达式作为转换transition的判断条件或组成赋值表达式作为转换完成时的动作;

状态的图元为圆形,表示该行为附件中存在的状态,状态分为初始状态initial、完成状态complete和最终状态fina;aadl行为附件规定每个行为附件中只允许有一个初始状态,其他状态为原子元素,不允许复合状态;

转换的图元为实线箭头,从源source状态发出,到宿destination状态终止,源状态和宿状态可以为同一状态,表示转换的自转换;转换内部附加有转换条件和转换动作,转换条件置于沿箭头方向的箭头上侧,用方括号表示;转换动作置于沿箭头方向的箭头下侧,用花括号表示。

前述的一种aadl图形化功能行为建模方法,其特征是,所述步骤2)中的具体内容为:

所述插件扩展点扩展技术实现图元注册基于xml格式实现:

扩展点"references"用于实现扩展图元的处理操作;其中,<referencebuilder>构建整个图元系统的参考,为其添加参考信息;参考信息即为aadl行为附件的组成内容;<referenceresolver>解析图元的参考,为其添加相应处理操作;

扩展点"businessobjecthandlers"用于实现新增图元注册;其中,<handler>中的class条目是关联图元注册的类,<handler>中应包括行为附件容器类、变量类、状态类、转换类;

扩展点"categories"用于实现调色板中新增类图元添加;其中,<category>表示调色板中的新分类,包括:

id:新分类的标识符;

name:新分类的名称;

order:在调色板中的显示顺序;

扩展点"images"用于实现调色板中新增图元图标添加;其中,<image>标签表示各图标的信息,包括:

id:图元图标唯一标识符;

path:图标位图存储位置;

plugin:路径所属的插件id。

前述的一种aadl图形化功能行为建模方法,其特征是,所述步骤3)中aadl行为附件图形化修改后检查的内容为:

aadl行为附件图形化修改后语义检查:

根据aadl行为附件规定,合法的行为附件变量及状态的语义需符合以下规则:

新增或修改后的变量类型应在上下文中已被声明;

每个行为附件有且仅有一个初始状态;

每个行为附件可有多个完成状态和最终状态;

根据aadl行为附件规定,合法的行为附件转换语义需符合以下规则:每个转换必须有源状态和宿状态;

不允许有从最终状态发出的转换;

从完成状态发出的转换,其转换条件必须是分发条件;

只有从完成状态发出的转换,其转换条件才可以是分发条件;

分发条件中的冻结端口的类型必须与aadl核心模型一致;

只能为定时线程声明分发超时捕捉语句,并且只能在完成状态的一个输出转换中声明;

当用户输入转换的条件或动作时,按上述规则进行语义合法性检查;若合法性通过,则同步修改现有aadl模型及图形化表示;否则,显示转换条件或动作无效警告,并对aadl模型及图形化表示不做修改。

前述的一种aadl图形化功能行为建模方法,其特征是,所述步骤4)的具体内容为:

扩展aadl行为附件元模型,在原有行为附件的基础上,增加复合状态以及其他原子状态;

所述复合状态包括子状态的状态,分为两种类型:and类型和xor类型;

所述and类型表示该复合状态内的各子状态并发执行,即当父状态被执行时,其内部各子状态同时从各自的初始状态开始执行;and类型的复合状态用关键字“concurrent”表示;

所述xor类型表示该复合状态内的各子状态互斥执行,即同一时刻有且仅有一个子状态被执行;xor类型的复合状态用关键字“composite”;

所述原子状态,即非复合状态的状态,有五种类型:入口状态(entry)、出口状态(exit)、初始状态(initial)、完成状态(complete)、普通状态;入口状态和出口状态是一组伪状态,在语义上等价于与该状态直接相连的状态;当父状态被运行时,其内部的子状态默认从入口状态开始运行;当要退出父状态时,默认从其内部的出口子状态退出;初始状态为该状态机的默认位于的状态,完成状态为该状态机结束运行的状态;其他状态为普通状态。

本发明所达到的有益效果:本方法通过aadl元模型扩展实现了aadl功能行为的层次化表达;通过gef(graphicaleditingframework)技术实现了aadl行为附件的完全图形化,并集成到aadl开源工具osate中;aadl功能行为的层次化表达增强了aadl的表达能力;行为附件的图形化丰富了aadl行为附件的建模方式,满足了工程人员在实际建模过程中习惯使用图形化建模的实际需求。

附图说明

图1是基于mvc框架的图形化双向表示图;

图2是aadl行为附件层次化扩展示意图;

图3是aadl行为附件图元到代码的转换;

图4是行为附件代码到图元的转换;

图5是aadl行为附件各组件的图元定义示意图,(a)为行为附件容器的示意图、(b)为变量的示意图、(c)为状态的示意图、(d1)为转换的示意图、(d2)为转换的另一示意图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本发明涉及到一种aadl图形化功能行为建模方法及相应的工具实现,该工具是基于aadl开源工具环境osate使用eclipse插件开发技术实现的。用户可以通过本工具实现对aadl功能行为的图形化建模,也可以通过本工具对已有的aadl行为附件代码进行图形化展示。另外,本发明对现有aadl行为附件进行了语法及语义上的扩展,以丰富aadl功能行为的层次化表达。

总体概述:主要包括两部分,一是aadl行为附件图形化表达;二是aadl行为附件层次化扩展。

aadl行为附件图形化表达包括两个方面,一是aadl行为附件图形化建模;二是对已有aadl行为附件代码进行图形化展示,详细见图1。

aadl行为附件层次化扩展包括增加复合状态以实现层次化表达,增加复合状态内部子状态的同步与互斥关系,以适应工业界的需要,具体见图2。

行为附件图形化实现:行为附件图形化采用mvc(model-view-control)框架设计并实现,如附图1所示。行为附件图形化主要分为两个层面,一是图形化建模,二是行为附件代码的图形化展示。

行为附件图形化建模方面,本发明设计了行为附件容器、行为附件变量、行为附件状态、行为附件转换四个图元,通过扩展点将它们注册,形成可操作的行为附件图形化图元。当用户操作(新增、修改、删除等)aadl行为附件图元时,控制器将为该图元建立(新增操作)或查找(修改、删除操作)参考,然后解析该参考,找到或建立相应的模型,并对其进行修改或添加操作。

行为附件代码的图形化展示方面,当用户选择对已有aadl行为附件代码进行图形化展示时,本工具将调用解析器,对被选择代码中的行为附件部分进行解析,找到总模型中行为附件对应的模型,然后通过控制器中的解析器解析该模型,然后对各部分进行图形化展示。

图元设计方面,采用java注解机制和反射机制实现图元的定义:

@isapplicable注解声明该图元是否可用

@candelete注解返回一个布尔值,表示该图元是否可被删除,或在何种情况下可被删除。

@getpaletteentries注解返回该图元在调色板中的位置及层次信息,并根据传入参数设计该图元在何时可见。

@cancreate注解返回一个布尔值,表示该图元是否可被创建,或在何种情况下可被创建。

@create注解返回一个object类型的对象,在该注解所对应的createbussinessobeject()函数内,定义该图元被添加时的相应操作,如声明新的行为附件状态、变量、转换对象,设置默认名等。

@getgraphic注解返回一个graphic对象,即该图元在画布上的展示方式,其在graphics类中已被定义。

@validatename注解返回一个string类型,即该组件被新建时,系统给出的默认合法名称,当名称重复时,系统默认在改组件名后加数字以区别。

@getname注解返回一个string类型,即该组件的名称。此注解的返回值供其他函数使用。

@setname注解无返回值,此注解用来将validatename的值上传到组件图形显示上。

@handledoubleclick注解无返回值,此注解用来添加该图元的双击相应事件,如行为附件容器内部存有该行为附件的变量、状态及转换等,当双击该行为附件容器时,展示这些变量、状态及转换。

控制器中的建立或查找参考函数,返回一个string类型的数组,数组内存有该参考的类型(容器、变量、状态或转换)、合法的参考名(参考名唯一)、参考对象。

参考解析器在接收到参考函数传来的string数组后,解析该数组,从模型中找到与该参考匹配的模型,并返回给系统。

具体地本建模方法用于对aadl功能行为进行图形化建模及表达,形成可视化的aadl功能行为模块,步骤为:

1)aadl行为附件各组件的图元定义:

包括:aadl行为附件涉及元素包括:行为附件容器behavior_specification、变量variables、状态states、转换transitions。

为各元素定义图元如下:

如图5(a)所示,“行为附件容器”图元为圆角矩形,它是行为附件内其他元素的父容器,对应行为附件中的behaviorannex类。aadl行为附件规定一个合法的行为附件必须有初始状态(initialstate)和完成状态(completestate),所以当行为附件容器被添加时,默认给出一个初始状态(istate)和一个完成状态(cstate),行为附件容器可以存在于线程、线程组、进程、子程序等内部,行为附件其他各元素必须添加在行为附件容器内部。

如图5(b)所示,“变量”图元为正方形,它表示该行为附件内部的所有变量。变量类型可以是整型、单浮点实数型、布尔型、整型数组、实数数组、字符串型等。变量对应行为附件中的behaviorvariable类。变量可以组成逻辑表达式作为转换(transition)的判断条件或组成赋值表达式作为转换完成时的动作。

如图5(c)所示,“状态”图元为圆形,它表示该行为附件中存在的状态。状态分为初始状态(initial)、完成状态(complete)和最终状态(fina)。aadl行为附件规定每个行为附件中只允许有一个初始状态,其他状态为原子元素,不允许复合状态,这与工业界的实际应用情况不符,所以本专利中权利5进行了aadl行为附件层次化扩展。扩展后的行为附件状态允许复合状态(compositestate),可以通过复合状态进行层次化描述。状态对应行为附件中的behaviorstate类。

如图5(d1)(d2)所示,“转换”图元为实线箭头,它从源(source)状态发出,到宿(destination)状态终止。源、宿状态也可是同一状态,即自转换。转换内部附加有转换条件和转换动作,转换条件置于箭头上侧(左侧),用方括号([])表示;转换动作置于箭头下侧(右侧),用花括号({})表示。

2)使用eclipse插件开发技术、插件扩展点扩展技术实现图元注册:所述的插件扩展点扩展技术实现图元注册是基于xml格式实现的:

扩展点"references"是实现扩展图元的处理操作的扩展点。其中,<referencebuilder>构建整个图元系统的参考,为其添加参考信息。参考信息主要包括行为附件容器(behaviorannex)、变量(behaviorvariable)、状态(behaviorstate)、转换(behaviortransition)等。<referenceresolver>解析图元的参考,为其添加相应处理操作。

扩展点"businessobjecthandlers"是实现新增图元注册的扩展点。其中,<handler>中的class条目是关联图元注册的类,<handler>中应包括行为附件容器类、变量类、状态类、转换类。

扩展点"categories"是实现调色板中新增类图元添加的扩展点。其中,<category>表示调色板中的新分类包括:

id:新分类的标识符;

name:新分类的名称;

order:在调色板中的显示顺序。

扩展点"images"是实现调色板中新增图元图标添加的扩展点。其中,<image>标签表示各图标的信息,包括:

id:图元图标唯一标识符;

path:图标位图存储位置;

plugin:路径所属的插件id。

3)aadl行为附件图形化修改后检查:

aadl图形化显示与aadl模型一致,用户可在图形化显示中选中某图元,并对其属性进行修改,在修改完成后,系统将自动对其修改进行修改后检查。行为附件图形化修改后检查包括:

aadl行为附件图形化修改后语义检查:

根据aadl行为附件规定,合法的行为附件变量(variable)及状态(state)语义需符合以下规则:

新增或修改后的变量类型应在上下文中已被声明。

每个行为附件有且仅有一个初始状态(initialstate)。

每个行为附件可有多个完成状态(completestate)和最终状态(finalstate)。

根据aadl行为附件规定,合法的行为附件转换(transition)语义需符合以下规则:

每个转换(transition)必须有源状态(sourcestate)和宿状态(destinationstate)。源、宿状态可相同。

不允许有从最终状态(finalstate)发出的转换。

从完成状态(completestate)发出的转换,其转换条件必须是分发条件(dispatchcondition)。

只有从完成状态(completestate)发出的转换,其转换条件才可以是分发条件(dispatchcondition)。

分发条件(dispatchcondition)中的冻结端口(frozenport)的类型必须与aadl核心模型一致。

只能为定时线程声明分发超时捕捉(dispatch_relative_timeout_catch)语句,并且只能在完成状态(completestate)的一个输出转换中声明。

当用户输入转换的条件或动作时,程序应按上述规则进行语义合法性检查。若合法性通过,则同步修改现有aadl模型及图形化表示;否则,弹出转换条件或动作无效警告,并对aadl模型及图形化表示不做修改。

4)aadl行为附件层次化扩展:aadl行为附件(behaviorannex)是aadl语言的重要的组成部分之一。aadl行为附件v2.0包括三部分:变量(variables)、状态(states)、转换(transitions)。行为附件通过自动机的形式描述aadl功能行为,通过状态变迁描述组件内部的功能行为执行。但aadl行为附件中的状态为原子状态,其内部不能嵌套其他元素,这不符合工业界现有的需求需要。

扩展后的部分aadl行为附件语法规则如下所示:

behavior_annex::=

[variables{behavior_variable}+]

[states{behavior_state}+]

[transitions{behavior_transition}+]

{[concurrent]compositecomposite_state}*

behavior_state::=

behavior_state_identifier{,behavior_state_identifier}*

:behavior_state_kindstate;

behavior_state_kind::=

[initial][complete][final][composite]

composite_state::=

statebehavior_state_identifier

[variables{behavior_variable}+]

[states{behavior_state}+]

[transitions{behavior_transition}+]

{compositecomposite_state}*

endbehavior_state_identifier;

其中,composite为复合状态,复合状态中的各子状态的关系为and或xor。and表示各子状态并发执行,即当父状态被执行时,其内部各子状态同时从各自的初始状态开始执行。xor表示各子状态互斥执行,即同一时刻有且仅有一个子状态被执行。

本发明的aadl行为附件层次化扩展包括:

扩展了行为附件,增加了复合状态声明。当某状态被声明为复合状态时,该状态可以在其内部声明变量、状态、转换以及其他的复合状态等。

在状态种类方面的扩展。扩展了复合状态(compositestate),使得行为附件可以层次化表达。

扩展了复合状态内部的表达类型,可以是并发(concurrent)关系,也可以是互斥关系。

修改行为附件元模型的词法解析器、语法分析器等,以实现扩展后的层次化模型合法化:

在词法分析方面,对应aadlbaparser类中,添加了对concurrent、composite、state…end等关键字的识别与解析,添加了高亮操作。

语法分析方面,修改了部分行为附件约束,使得新增层次化在语法方面的合法化,并在图形化方面添加了对应复合状态图元的双击事件。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1