初探一种构件化嵌入式软件设计模型验证工具.docx
- 文档编号:2917920
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:7
- 大小:22.82KB
初探一种构件化嵌入式软件设计模型验证工具.docx
《初探一种构件化嵌入式软件设计模型验证工具.docx》由会员分享,可在线阅读,更多相关《初探一种构件化嵌入式软件设计模型验证工具.docx(7页珍藏版)》请在冰豆网上搜索。
初探一种构件化嵌入式软件设计模型验证工具
初探一种构件化嵌入式软件设计模型验证工具
1.引言
嵌入式计算系统已经广泛的应用于生活中的各个领域,如:
交通、能源、医疗、控制、通信、军事等。
近年来随着计算机硬件性能的不断提高,嵌入式系统中软件的规模和复杂性不断增加,使软件对整个系统的影响逐渐占据了统治地位。
关键系统中的嵌入式软件失效将会导致生命与财产的重大损失。
因此,嵌入式软件通常具有极高的功能可靠性、严格的实时性等要求,如何保证系统同时满足给定的功能和非功能需求已成为当前高可信嵌入式计算领域中的研究热点。
目前,工业界已有一些比较有效的嵌入式软件测试和调试方法(如:
在处理器中嵌入ICE功能,调试代理软件,JTAG模拟等)。
但从软件工程的角度来看,这些方法都是在系统的开发中后期阶段所使用,而在嵌入式软件设计与分析的前期阶段还缺乏有效的方法和工具对系统设计进行分析与验证。
本文基于接口自动机模型对构件化嵌入式软件设计(CBESD:
Component-BasedEmbeddedSoftwareDesigns)的分析与验证方法展开进一步研究,在Eclipse开放平台上实现了一个CBESD的模型分析与验证原型工具T-CBESD(aToolforComponent-basedEmbeddedSoftwareDesigns)。
该工具的目的是应用于构件化嵌入式软件开发的设计建模阶段,对设计者所关心的系统重要功能性质以及与时间相关的实时行为性质进行严格形式化分析和验证,提高系统可靠性的可信度。
本文内容安排如下:
第2节中给出了非实时功能行为验证以及实时功能行为验证的理论基础,包括:
描述系统动态行为的多种接口自动机模型,基于场景的系统规约描述模型,以及形式化分析与验证的抽象算法等。
在第3节中给出了原型工具T-CBESD的基本设计思想,非实时功能行为验证模块以及实时功能行为验证模块的设计与实现,包括:
工具输入输出接口设计、状态空间数据结构设计、基于场景的系统规约模型的输入预处理、具体验证算法的设计与实现等。
第4节中给出了应用实例研究;最后是相关工作比较和结束语,对本文中原型工具的特点、意义以及进一步的工作进行简要讨论。
2.工具的理论基础
软件工程中的构件化设计方法学通过复用和组合软件模块来构造系统,从而提高系统开发效率和可靠性。
通常,一个复杂的嵌入式系统由多个计算子系统构成,其软件系统也具有较高的构件化特征,因此,构件化的设计已成为解决嵌入式软件设计复杂性问题的一种手段。
与此同时,构件接口之间的交互场景也成为体现系统行为复杂性的一个重要方面。
本文中所讨论的原型工具就是使用形式化的接口自动机模型来对系统构件接口动态行为进行设计建模,并使用UML交互概观图模型来描述多种基于场景的构件交互行为规约,然后应用形式化分析算法对设计模型是否满足系统规约进行分析和验证。
2.1建模系统构件以及组合行为 接口自动机(interfaceautomata,简称IA)是用来刻画软件构件接口交互行为时序特征的一种形式化语言。
它描述了一个构件被使用的时候其对外界环境的输入假设和输出保证,即构件内方法被调用的先后次序以及构件对外环境输出调用信息或结果的次序。
输入动作可以用来建模:
1)构件内可以被调用的方法或过程;2)通信信道的接收端;3)调用外部过程的返回等。
输出动作可以用来建模:
1)对其他构件中的方法或过程的调用;2)通信信道的发送消息端;3)构件中方法或过程的调用结束时的返回;4)构件中方法或过程执行中出现的异常返回,等。
内部动作则表达了两个构件在组合过程中的同步交互行为。
考虑到嵌入式软件的实时性建模需求,需要对IA进行实时语义的扩展,以增强接口自动机对实时系统的描述能力。
直观上,对接口自动机每一个转换添加时间区间约束,以表示此转换发生的最小、最大时限;扩展后的模型称为实时接口自动机。
我们使用接口自动机的组合状态空间来表达多构件系统的组合行为;自动机组合状态空间中每一条可能的状态转换序列用来表达多构件系统的一个组合行为轨迹。
基本IA和扩展的RTIA组合状态空间的定义略有不同,以下只给出了RTIA组合空间(实时接口自动机网络)的定义;不带时间语义的基本接口自动机的组合定义参见文献。
2.2基于场景的交互行为规约
在基于场景的系统规约中,通常将一个系统相对独立的功能模块建模为一个场景描述。
这个场景表达了参与其中的各构件之间如何进行交互。
进一步的,在系统设计阶段,还会关心有多个简单场景组合起来的复杂场景需求,即需要考虑多个简单场景之间的逻辑关系。
交互概观图(InteractionOverviewDiagrams)是在UML2规范中引入的一种用以描述系统中复杂交互场景的动态行为模型。
交互概观图本质上是将活动图模型与顺序图模型结合在一起,图中的每一个节点都可以视为一个用顺序图表达的简单交互场景,然后利用活动图所提供的顺序、迭代、并发、选择等操作将多个不同的顺序图场景联系在一起;这样就可以用来表达语义更为丰富的系统交互行为。
在本文中所关心的以下几种场景组合一致性问题都可以用交互概观图来有效的描述:
1.存在一致性:
某个特定的场景D是否在系统所有行为中至少出现一次,或者某个指定的场景D是否在系统的所有行为中一定不会出现。
2.前向强制一致性:
当某个条件场景D1出现时,则场景D2一定会随之在系统后续行为中发生。
3.逆向强制一致性:
当某个条件场景D1出现时,则场景D2一定在D1之前就在系统的行为中发生。
4.双向强制一致性:
当两个条件场景D1、D2在系统一个行为中先后出现时,则在这两个场景之间一定有D3发生。
2.3模型分析与验证算法 基于以上给出的接口自动机系统组合行为模型以及交互场景系统规约模型,可以对2.2节中提出的多个基于功能的一致性验证问题进行分析与验证;同时,考虑嵌入式软件设计中的实时需求,以上每个基于功能的一致性验证问题都存在一个相应的带时间约束的版本;即在完成功能性验证的同时,也必须同时满足交互场景中给定的时间约束。
在相关研究工作中,对上述几类模型验证问题进行了形式化定义和分析,并分别设计了相应的验证算法。
算法的基本思想是对带有不同语义信息的系统组合行为的状态空间进行搜索,将每一个可能的系统行为与基于场景的交互规约进行比较,来判断设计模型是否满足各种系统规约。
例如:
对于存在一致性验证问题,如果在组合状态空间中顺序图D所描述场景中的消息事件序列至少出现一次,则判定系统行为满足D,其相应的抽象算法框架参见文献中的算法;其中所提到的投影路径是为了处理状态空间中环路的出现导致所检验的系统行为路径可能是无穷长度的问题。
对于系统实时行为的验证算法,则需要进一步考虑由于时间的引入所带来的如何将连续时间进行整型化处理,以及带时间约束的投影路径的建立;RTIA-Network的一致性验证抽象算法框架参见文献。
中国代写论文网与您分享论文范文
3.T-CBESD的设计与实现
基于以上的理论分析与验证框架,本文设计了一个原型工具T-CBESD(aToolforComponent-BasedEmbeddedSoftwareDesigns)。
T-CBESD的目的是应用于构件化嵌入式软件开发的设计建模阶段,对设计者所关心的一些系统重要功能性质以及与时间相关的实时行为性质进行严格形式化分析和验证,以提高系统可靠性的可信度。
工具的基本设计原则主要包括以下两个方面:
T-CBESD应当具备跨平台运行、易扩展特征:
即工具应该可以尽可能在多种不同运行平台上运行,并且考虑到在未来工作中,我们将在目前的工作基础上对接口自动机模型进行资源以及能耗等语义描述方面的进一步扩展;因此,选择了面向对象程序设计语言Java作为工具的实现语言。
Java具有良好的跨平台运行特征以及丰富的类库资源,并可以使用面向对象程序设计思想中的类继承等方法对工具进行方便可靠的扩展。
T-CBESD应当具备易使用、易维护特征:
用户可以比较方便的使用工具,或进行调整;因此,选择了工业界广泛使用的开放集成开发环境Eclipse作为工具的运行平台,即使用Eclipse的插件(plug-in)技术来设计和开发T-CBESD。
用户可以很容易在Eclipse环境中通过插件技术来安装、配置和使用工具;同时,在T-CBESD的输入输出接口中所使用的XML语言在Java和Eclipse环境中也是得到完全的支持。
主要的逻辑处理框架包括:
输入输出接口;UML顺序图模型的预处理;自动机组合模型的建立;非实时功能验证算法的实现;实时功能验证算法的实现等。
以下分别给出详细说明。
3.1输入输出接口设计 T-CBESD的输入输出均是以XML文件形式来描述的系统设计模型、系统需求规约以及验证结果信息等。
其中,工具的输入包括:
描述系统设计的接口自动机模型的XML文件和描述系统规约的消息交互序列的XML文件;输出则包括:
描述系统组合行为的接口自动机组合模型的XML文件和包含验证结果信息的XML文件。
这里,最核心部分是接口自动机模型的XML文件格式的设计。
在图3中给出了一个非实时构件基本接口自动机模型的XML文件示例说明;通过XML的树形标签格式,分别定义了自动机名、自动机个数(如果这是一个组合自动机)、状态个数、状态名、后继状态名、转换个数、转换名、转换的出发和到达状态名、动作个数、动作名、动作类型等数据信息,用来完整准确的保存接口自动机模型的语义信息。
此外,对于扩展的实时接口自动机模型,其相应的XML文件格式定义中还包含与动作相关联的时间区间约束标记。
在上述定义的XML文件基础上,就可以使用Java类库中的DOM(文档对象模型)方法很方便的对自动机模型进行解析及生成。
例如:
在T-CBESD中设计了parseXmlDocument()和parseRtXmlDocument()两个类方法来分别对基本接口自动机模型XML文件和实时接口自动机模型XML文件进行解析,并根据Automata,Transition以及State等类定义在内存空间创建相应的自动机对象。
3.2UML顺序图模型的输入预处理 虽然T-CBESD的输入输出定义为标准XML文档格式,但在工具中加入了从UML建模环境RationalRose的顺序图模型到T-CBESD的XML输入文件(描述消息交互序列集)的自动化转换处理。
其原因有二:
其一,现在工业界已存在较为成熟的图形化建模工具,可以快速方便的绘制UML模型图,可以利用这些工具作为T-CBESD的前端,而不用在T-CBESD中重新设计复杂的用户接口来支持图形化建模设计。
其二,在2.2节中提到,一个顺序图场景可能会包含多个不同的消息事件序列;显然,如果让系统设计与分析人员从每一个顺序图中手动的生成所有可能的消息事件序列,这并不是件容易的事情。
因此,需要提供一种从顺序图模型自动化生成所有可能的消息事件集合的方法。
在RationalRose中所生成的顺序图模型文件是MDL格式,需要先转换成XML格式文件,然后进行相应消息序列的抽取。
其处理过程如图5中所示,首先通过在RationalRose中加载XMI插件将MDL格式的文件转换为XML格式;然后对XML文件进行解析,建立文档解析树,提取消息事件节点,并根据顺序图中的事件发生先后顺序构造一个相应的有向无环图(在此,定义了顺序图的参加者类(ElementClass)、消息类(MessageClass)以及结点类(NodeClass)用于图的构造);最后设计了一个拓扑排序算法,对该有向图中的消息事件节点进行拓扑排序,从而得到一个顺序图中所有可能的消息事件序列的集合。
3.3自动机组合模型的建立 接口自动机的组合
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初探 一种 构件 嵌入式 软件设计 模型 验证 工具