初探一种构件化嵌入式软件设计模型验证工具

上传人:aa****6 文档编号:31318578 上传时间:2018-02-06 格式:DOCX 页数:18 大小:39.02KB
返回 下载 相关 举报
初探一种构件化嵌入式软件设计模型验证工具_第1页
第1页 / 共18页
初探一种构件化嵌入式软件设计模型验证工具_第2页
第2页 / 共18页
初探一种构件化嵌入式软件设计模型验证工具_第3页
第3页 / 共18页
初探一种构件化嵌入式软件设计模型验证工具_第4页
第4页 / 共18页
初探一种构件化嵌入式软件设计模型验证工具_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《初探一种构件化嵌入式软件设计模型验证工具》由会员分享,可在线阅读,更多相关《初探一种构件化嵌入式软件设计模型验证工具(18页珍藏版)》请在金锄头文库上搜索。

1、初探一种构件化嵌入式软件设计模型验证工具1.引言 嵌入式计算系统已经广泛的应用于生活中的各个领域,如:交通、能源、医疗、控制、通信、军事等。近年来随着计算机硬件性能的不断提高,嵌入式系统中软件的规模和复杂性不断增加,使软件对整个系统的影响逐渐占据了统治地位。关键系统中的嵌入式软件失效将会导致生命与财产的重大损失。因此,嵌入式软件通常具有极高的功能可靠性、严格的实时性等要求,如何保证系统同时满足给定的功能和非功能需求已成为当前高可信嵌入式计算领域中的研究热点。目前,工业界已有一些比较有效的嵌入式软件测试和调试方法(如:在处理器中嵌入 IcE 功能,调试代理软件,jTAG 模拟等) 。但从软件工程

2、的角度来看,这些方法都是在系统的开发中后期阶段所使用,而在嵌入式软件设计与分析的前期阶段还缺乏有效的方法和工具对系统设计进行分析与验证。 本文基于接口自动机模型对构件化嵌入式软件设计(cBESD:component-BasedEmbeddedSoftwareDesigns)的分析与验证方法展开进一步研究,在 Eclipse 开放平台上实现了一个 cBESD 的模型分析与验证原型工具 T-cBESD(aToolforcomponent-basedEmbeddedSoftwareDesigns) 。该工具的目的是应用于构件化嵌入式软件开发的设计建模阶段,对设计者所关心的系统重要功能性质以及与时间相

3、关的实时行为性质进行严格形式化分析和验证,提高系统可靠性的可信度。本文内容安排如下:第 2 节中给出了非实时功能行为验证以及实时功能行为验证的理论基础,包括:描述系统动态行为的多种接口自动机模型,基于场景的系统规约描述模型,以及形式化分析与验证的抽象算法等。在第 3 节中给出了原型工具 T-cBESD 的基本设计思想,非实时功能行为验证模块以及实时功能行为验证模块的设计与实现,包括:工具输入输出接口设计、状态空间数据结构设计、基于场景的系统规约模型的输入预处理、具体验证算法的设计与实现等。第 4 节中给出了应用实例研究;最后是相关工作比较和结束语,对本文中原型工具的特点、意义以及进一步的工作进

4、行简要讨论。2.工具的理论基础软件工程中的构件化设计方法学通过复用和组合软件模块来构造系统,从而提高系统开发效率和可靠性。通常,一个复杂的嵌入式系统由多个计算子系统构成,其软件系统也具有较高的构件化特征,因此,构件化的设计已成为解决嵌入式软件设计复杂性问题的一种手段。与此同时,构件接口之间的交互场景也成为体现系统行为复杂性的一个重要方面。 本文中所讨论的原型工具就是使用形式化的接口自动机模型来对系统构件接口动态行为进行设计建模,并使用UmL 交互概观图模型来描述多种基于场景的构件交互行为规约,然后应用形式化分析算法对设计模型是否满足系统规约进行分析和验证。2.1 建模系统构件以及组合行为 接口

5、自动机(interfaceautomata,简称 IA)是用来刻画软件构件接口交互行为时序特征的一种形式化语言。它描述了一个构件被使用的时候其对外界环境的输入假设和输出保证,即构件内方法被调用的先后次序以及构件对外环境输出调用信息或结果的次序。输入动作可以用来建模:1)构件内可以被调用的方法或过程;2)通信信道的接收端;3)调用外部过程的返回等。输出动作可以用来建模:1)对其他构件中的方法或过程的调用;2)通信信道的发送消息端;3)构件中方法或过程的调用结束时的返回;4)构件中方法或过程执行中出现的异常返回,等。内部动作则表达了两个构件在组合过程中的同步交互行为。考虑到嵌入式软件的实时性建模需

6、求,需要对 IA 进行实时语义的扩展,以增强接口自动机对实时系统的描述能力。直观上,对接口自动机每一个转换添加时间区间约束,以表示此转换发生的最小、最大时限;扩展后的模型称为实时接口自动机。我们使用接口自动机的组合状态空间来表达多构件系统的组合行为;自动机组合状态空间中每一条可能的状态转换序列用来表达多构件系统的一个组合行为轨迹。基本IA 和扩展的 RTIA 组合状态空间的定义略有不同,以下只给出了 RTIA 组合空间(实时接口自动机网络)的定义;不带时间语义的基本接口自动机的组合定义参见文献。2.2 基于场景的交互行为规约 在基于场景的系统规约中,通常将一个系统相对独立的功能模块建模为一个场

7、景描述。这个场景表达了参与其中的各构件之间如何进行交互。进一步的,在系统设计阶段,还会关心有多个简单场景组合起来的复杂场景需求,即需要考虑多个简单场景之间的逻辑关系。 交互概观图(InteractionoverviewDiagrams)是在UmL2 规范中引入的一种用以描述系统中复杂交互场景的动态行为模型。交互概观图本质上是将活动图模型与顺序图模型结合在一起,图中的每一个节点都可以视为一个用顺序图表达的简单交互场景,然后利用活动图所提供的顺序、迭代、并发、选择等操作将多个不同的顺序图场景联系在一起;这样就可以用来表达语义更为丰富的系统交互行为。在本文中所关心的以下几种场景组合一致性问题都可以用

8、交互概观图来有效的描述:1.存在一致性:某个特定的场景 D 是否在系统所有行为中至少出现一次,或者某个指定的场景 D 是否在系统的所有行为中一定不会出现。2.前向强制一致性:当某个条件场景 D1 出现时,则场景 D2 一定会随之在系统后续行为中发生。3.逆向强制一致性:当某个条件场景 D1 出现时,则场景 D2 一定在 D1 之前就在系统的行为中发生。4.双向强制一致性:当两个条件场景 D1、D2 在系统一个行为中先后出现时,则在这两个场景之间一定有 D3 发生。2.3 模型分析与验证算法 基于以上给出的接口自动机系统组合行为模型以及交互场景系统规约模型,可以对 2.2 节中提出的多个基于功能

9、的一致性验证问题进行分析与验证;同时,考虑嵌入式软件设计中的实时需求,以上每个基于功能的一致性验证问题都存在一个相应的带时间约束的版本;即在完成功能性验证的同时,也必须同时满足交互场景中给定的时间约束。在相关研究工作中,对上述几类模型验证问题进行了形式化定义和分析,并分别设计了相应的验证算法。算法的基本思想是对带有不同语义信息的系统组合行为的状态空间进行搜索,将每一个可能的系统行为与基于场景的交互规约进行比较,来判断设计模型是否满足各种系统规约。例如:对于存在一致性验证问题,如果在组合状态空间中顺序图 D 所描述场景中的消息事件序列至少出现一次,则判定系统行为满足 D,其相应的抽象算法框架参见

10、文献中的算法;其中所提到的投影路径是为了处理状态空间中环路的出现导致所检验的系统行为路径可能是无穷长度的问题。对于系统实时行为的验证算法,则需要进一步考虑由于时间的引入所带来的如何将连续时间进行整型化处理,以及带时间约束的投影路径的建立;RTIA-Network 的一致性验证抽象算法框架参见文献。中国代写论文网与您分享论文范文3.T-cBESD 的设计与实现基于以上的理论分析与验证框架,本文设计了一个原型工具 T-cBESD(aToolforcomponent-BasedEmbeddedSoftwareDesigns) 。T-cBESD 的目的是应用于构件化嵌入式软件开发的设计建模阶段,对设计

11、者所关心的一些系统重要功能性质以及与时间相关的实时行为性质进行严格形式化分析和验证,以提高系统可靠性的可信度。工具的基本设计原则主要包括以下两个方面: T-cBESD 应当具备跨平台运行、易扩展特征:即工具应该可以尽可能在多种不同运行平台上运行,并且考虑到在未来工作中,我们将在目前的工作基础上对接口自动机模型进行资源以及能耗等语义描述方面的进一步扩展;因此,选择了面向对象程序设计语言 java 作为工具的实现语言。java 具有良好的跨平台运行特征以及丰富的类库资源,并可以使用面向对象程序设计思想中的类继承等方法对工具进行方便可靠的扩展。T-cBESD 应当具备易使用、易维护特征:用户可以比较

12、方便的使用工具,或进行调整;因此,选择了工业界广泛使用的开放集成开发环境 Eclipse 作为工具的运行平台,即使用 Eclipse 的插件(plug-in)技术来设计和开发 T-cBESD。用户可以很容易在 Eclipse 环境中通过插件技术来安装、配置和使用工具;同时,在 T-cBESD 的输入输出接口中所使用的 XmL 语言在 java 和 Eclipse 环境中也是得到完全的支持。主要的逻辑处理框架包括:输入输出接口;UmL 顺序图模型的预处理;自动机组合模型的建立;非实时功能验证算法的实现;实时功能验证算法的实现等。以下分别给出详细说明。3.1 输入输出接口设计 T-cBESD 的输

13、入输出均是以 XmL 文件形式来描述的系统设计模型、系统需求规约以及验证结果信息等。其中,工具的输入包括:描述系统设计的接口自动机模型的 XmL 文件和描述系统规约的消息交互序列的 XmL 文件;输出则包括:描述系统组合行为的接口自动机组合模型的 XmL 文件和包含验证结果信息的 XmL 文件。这里,最核心部分是接口自动机模型的 XmL 文件格式的设计。在图 3 中给出了一个非实时构件基本接口自动机模型的 XmL 文件示例说明;通过 XmL 的树形标签格式,分别定义了自动机名、自动机个数(如果这是一个组合自动机) 、状态个数、状态名、后继状态名、转换个数、转换名、转换的出发和到达状态名、动作个

14、数、动作名、动作类型等数据信息,用来完整准确的保存接口自动机模型的语义信息。此外,对于扩展的实时接口自动机模型,其相应的 XmL 文件格式定义中还包含与动作相关联的时间区间约束标记。在上述定义的 XmL 文件基础上,就可以使用 java 类库中的 Dom(文档对象模型)方法很方便的对自动机模型进行解析及生成。例如:在 T-cBESD 中设计了parseXmlDocument()和 parseRtXmlDocument()两个类方法来分别对基本接口自动机模型 XmL 文件和实时接口自动机模型 XmL 文件进行解析,并根据Automata,Transition 以及 State 等类定义在内存空间

15、创建相应的自动机对象。3.2UmL 顺序图模型的输入预处理 虽然 T-cBESD 的输入输出定义为标准 XmL 文档格式,但在工具中加入了从 UmL 建模环境 RationalRose 的顺序图模型到 T-cBESD 的 XmL 输入文件(描述消息交互序列集)的自动化转换处理。其原因有二:其一,现在工业界已存在较为成熟的图形化建模工具,可以快速方便的绘制 UmL 模型图,可以利用这些工具作为T-cBESD 的前端,而不用在 T-cBESD 中重新设计复杂的用户接口来支持图形化建模设计。 其二,在 2.2 节中提到,一个顺序图场景可能会包含多个不同的消息事件序列;显然,如果让系统设计与分析人员从

16、每一个顺序图中手动的生成所有可能的消息事件序列,这并不是件容易的事情。因此,需要提供一种从顺序图模型自动化生成所有可能的消息事件集合的方法。在 RationalRose 中所生成的顺序图模型文件是 mDL 格式,需要先转换成 XmL 格式文件,然后进行相应消息序列的抽取。其处理过程如图 5 中所示,首先通过在RationalRose 中加载 XmI 插件将 mDL 格式的文件转换为XmL 格式;然后对 XmL 文件进行解析,建立文档解析树,提取消息事件节点,并根据顺序图中的事件发生先后顺序构造一个相应的有向无环图(在此,定义了顺序图的参加者类(Elementclass) 、消息类(messageclass)以及结点类(Nodeclass)用于图的构造) ;最后设计了一个拓扑排序算法,对该有向图中的消息事件节点进行拓扑排序,从而得到一个顺序图中所有可能的消息事件序列的集合。3.3 自动机组合模型的建立 接口自动机的组合过程与一般自动机组合的语义存在不同之处。在两个接口自动机组合的状态空间中,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号