英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
嵌入式系统中基于可执行模型方法的比较
Julie Street Fant Hassan Gomaa Robert G. Pettit IV
摘要:嵌入式系统的设计与构建是一个具有挑战性的问题。设计人员必须确保软件架构满足其功能需求,同时,由于嵌入式系统经常有实时约束,也必须满足其性能需求。嵌入式系统的设计是否满足功能和性能要求通常是很难确定的。为了帮助增加嵌入式软件架构的信心,设计人员经常转向基于可执行模型的方法来评估他们的系统。有许多不同的方法来设计和分析实时嵌入式系统。本文旨在通过比较两种不同的基于可执行模型的设计和验证实时嵌入式系统的方法,即状态机和有色Petri网,来帮助设计者做出选择。采用7种不同的比较标准对两种方法进行了比较,并给出了一个巡航控制系统的实例研究。
关键词:UML、状态机、彩色Petri网、软件架构、实时嵌入式系统
1.介绍
设计和构建嵌入式系统是一个具有挑战性的问题。设计人员必须确保软件架构满足其功能需求,同时,由于嵌入式系统经常有实时约束,也必须满足其性能需求。然而,仅仅通过检查软件架构设计来确定它是否会满足其功能和性能需求是困难的。因此,设计师常常求助于可执行的基于模型的技术为他们的设计增加信心。有许多不同的方法来设计和分析实时嵌入式系统,分析技术的例子包括可执行仿真建模[1]和实时调度方法,如速率单调分析(RMA)[2]。本文旨在通过比较两种不同的基于可执行模型的设计和验证实时系统的方法来帮助设计者选择分析技术。这些方法包括有色Petri网(CPN)方法[3-5]和基于状态机的方法[6-10]。在7个不同的比较标准下对这两种方法进行了比较,并给出了使用基于COMET UML的并行实时系统[6]、[7]设计方法开发的巡航控制系统的实例研究。
本文组织如下,首先讨论了与本文相关的工作,然后对每个基于可执行模型的方法进行了简要概述。接下来,将每种方法与一组比较标准进行比较。最后,对本文的主要结论和今后的工作进行了说明。
2.相关工作
本节讨论的相关工作是针对实时嵌入式系统的基于可执行模型的方法,它允许实时设计在实现之前进行动态分析。
一组相关工作包括使用可执行模型构建实时嵌入式系统的方法,这些论文描述了如何利用可执行模型来构建和分析实时嵌入式系统。基于状态机的方法包括Selic等人的[11],他们描述了一种全面的基于可执行状态机的方法,以及Harel statecharts,后者是一种广泛使用的基于分层状态机的方法[12],[6-8]。基于状态图的设计方法在[12],[6-8]和[13]中有描述。其他可执行的建模方法包括基本Petri网[14],彩色Petri网(CPNs)[3],[15],以及用于建模工业嵌入式系统的功能块建模方法,如IEC 61499[16]和CNets[17],这些都是基于CPNs的。
3.基于可执行模型的方法概述
本节简要概述实时系统的状态机建模和CPN方法。
A.有色佩特里网
在我们使用CPN建模实时嵌入式软件体系结构的方法中,我们从用UML捕获的并发软件体系结构模型开始, 然后我们使用一组基于COMET方法[6]的行为设计模式(例如边界、实体、控制)对体系结构模型中的UML对象进行分类,并将相应的构造型分配给对象。
在对象上注释了其他功能和性能规范,以方便使用底层CPN模型对并发行为进行建模。然后,每个识别的行为设计模式都有一个对应的模板,表示为CPN段,它与UML对象配对,并被实例化以基于对象规范[5]捕获特定的行为特征
B.状态机
状态机是一种具有有限数量状态的概念机。状态转换是由输入事件引起的状态变化。为了响应一个输入事件,有限状态机可能会转换到一个不同的状态。下一个状态取决于当前状态和输入事件。状态转换也可能产生输出操作。
尽管整个嵌入式系统可以通过状态机建模,但在面向对象的分析和设计中,状态机被封装在一个与状态相关的控制对象中。在面向对象模型中,系统的状态依赖视图是通过一个或多个状态机来定义的,其中每个状态机被封装在自己的对象中。状态机的输入事件通常表示来自外部环境的输入,而输出操作用于控制其他对象或外部环境。对象的状态机通过状态图、状态转换图或状态转换表来描述。
4.比较
在7个不同的比较标准下对两种可执行模型的嵌入式系统方法进行了比较。本节描述比较标准,然后解释基于可执行模型的方法相对于标准的好处和限制。
A.控制和测序
对于嵌入式系统来说,第一个重要的标准是所选方法如何能够支持控制和排序。具体来说,它是如何建模问题域和解决方案域、建模与I/O设备的接口、建模主动和被动对象以及建模控制对象的。本小节比较了技术对控制和排序的支持程度。
Petri网[20]是离散事件建模的一种形式,对顺序控制流的建模有很好的支持。通常,Petri网由保存令牌的位置和控制令牌从一个地方到另一个地方的流动的转换组成。彩色Petri网[21]是基本Petri网形式的扩展,添加了层次结构、数据结构(以彩色令牌的形式)和控制令牌流的转换的更高级别逻辑的功能。控制流和事件顺序是CPN模型的最大优点之一。此外,使用层次结构特性、数据丰富的标记和转换上的逻辑控制,cpn可以用于在宏观级别建模并发的对象到对象序列,以及在微观级别建模对象内部的函数行为。
状态机还为控制和排序提供了很好的支持。它们提供了一种对依赖状态的控制对象建模的方法。可以在状态机中捕获控制对象的内部行为。这个视图将捕捉控件对象如何响应不同的事件。图1演示了使用执行巡航控制状态机的巡航控制对象对控制对象建模。巡航控制对象在不同的状态下应采取不同的控制动作,如加速和巡航。
图1巡航控制对象状态机
Cruise Control对象应该执行的操作被捕获为状态转换、进入或退出操作或在给定状态内执行的活动的操作。到不同控制状态的转换由Cruise control对象接收到的事件触发。例如,当驾驶员在加速位置使用巡航控制杆时,就进入加速状态,从而产生加速事件。这导致巡航控制对象加速汽车,如果刹车没有按下。当驾驶员松开巡航控制杆,触发巡航事件,导致状态机过渡到巡航状态时,这种状态就会退出。
B.并发性
本小节描述所选的基于可执行模型的方法对并发性的支持程度。并发性是嵌入式系统中一个非常重要的特性。这是因为如果并发没有得到正确的处理,那么它可能会导致严重的问题,比如死锁。并发性通常是Petri网的另一个强项,对CPN也是如此。在一个Petri网中,当转换的每个输入位置上都有一个令牌时,就可以触发转换。可以使用的令牌数量没有限制,因此可以建模的并发级别没有限制。使用CPN我们可以将转换逻辑与数据丰富的彩色令牌组合在一起,从而对何时触发转换进行更大的控制,而不是仅仅在令牌存在的情况下启用转换。在我们使用CPN模板对活动(并发执行)UML对象建模的方法中,每个活动(即并发)对象的模板都有一个“控制”令牌,表示该对象的控制线程。将此控制令牌与消息/数据令牌配对允许我们将并发性限制在所需的级别,例如强制执行规则,即对象在接受下一个输入之前将一个输入处理到完成。此外,我们可以添加令牌、位置和转换来建模底层平台特征,如处理器或核心的数量;或操作系统调度器的行为。对并发性的强大支持以及在CPN模型中几乎任何级别上建模并发性的灵活性,使得CPN形式对于建模系统中的并发性非常有用。
原始的有限状态机概念(如状态转换图和状态转换表中所描述的)不支持并发性。由Harel[12]引入的状态图(后来被UML采用)通过使用正交区域允许状态机内的并发。最初的Harel状态图概念使用带有典型的几个正交区域的状态图对整个嵌入式系统进行建模,从而允许更多的并发性。当UML采用statecharts为面向对象系统建模时,每个statecharts都被封装在一个对象中。这种方法与通信状态机模型兼容,该模型特别适合于实时嵌入式系统,因为它支持并发性和状态相关控制。使用这种方法,并发组件的体系结构由(或对象),每个对象执行一个状态机,这样输入消息对象对应于输入事件的状态机的内部状态机和输出操作对应的输出消息状态依赖的控制对象
在巡航控制系统中,存在多个并发对象。除了巡航控制对象(按需激活)之外,还有并发输入对象(如巡航控制杠杆接口),它是事件驱动的,以及并发输出对象(如节气门接口),它是周期性的。
C. 消息通信
在这个比较中检查的第三个标准是基于可执行模型的方法支持消息通信的能力。在嵌入式系统中,通信可以是异步的也可以是同步的。消息通信还需要支持数据交换。下面描述了每个基于可执行模型的方法对消息通信的支持程度。
基本的Petri网形式主义在消息传递能力方面非常有限。令牌没有与之相关联的元数据来表示数据结构或消息,转换在传递令牌时所拥有的唯一控制只是在启用和随后触发转换之前依赖于输入位置呈现的令牌数量。但是,对于CPN,有色令牌(可以采用更高级别数据结构的形式)的引入显著提高了CPN模型的消息传递能力。使用CPN,有色令牌可以根据对象之间的消息通信的需要建模尽可能多的信息(例如,带有数据类型的完整消息结构)或尽可能少的信息(例如,简单的消息名称)。转换可以使用CPNML铭文语言[15]表示的处理逻辑来控制消息的处理,并将输入消息转换为中间数据结构,以便在对象模板中进行处理,然后将输出消息形成到其他对象模板。使用位置、转换(带有控制逻辑)和彩色标记的组合,几乎可以对任何同步和异步通信的变体进行建模。
尽管状态机不直接合并消息通信,但它们可以构成通信状态机方法的基本部分,该方法提供了对组件消息传递的支持。通过这种方法,封装状态机的并发对象可以使用对象之间的异步和同步通信彼此通信。消息到达对象时,可以触发内部状态机中的转换。异步通信在嵌入式系统中提供了更大的灵活性,因为生产者对象,例如输入设备驱动程序,不会被挂起,等待消费者的响应或确认。但是,当需要响应时(带响应的同步通信),或者当生产者和消费者之间的队列不希望增长时(不带响应的同步通信),则需要同步消息通信。
图1中的巡航控制实例说明了使用状态机的异步消息通信。在本例中,巡航控制对象状态机接收来自巡航控制杠杆接口对象状态机的异步消息作为输入。当驾驶员将巡航控制杆插入加速、巡航、恢复或关闭位置时,这些消息将作为巡航控制杆对象状态机的输出发送。在巡航控制对象的状态机上,异步消息被建模为称为Accel、Cruise、Resume和Off的转换。当巡航控制对象的状态机接收到其中一个异步消息时,它将根据其当前状态进行适当的转换。例如,巡航控制对象处于加速状态,接收到巡航异步消息,则从加速状态过渡到巡航状态,如图1所示。一旦处于这种状态,巡航控制对象将保持当前速度,直到它从巡航控制杠杆对象接收到加速异步消息或从制动对象接收到Brake_Pressed异步消息。
D. 设计模式
比较这些方法的另一个标准是它们对设计模式的使用。设计模式是“通信对象和类的描述,定制这些对象和类以解决特定上下文中的一般设计问题”[22]。实时控制模式的例子包括集中控制、分布式控制和分级控制[7]。
CPN可以用作并发设计模式的行为模板,然后这些模式可以相互连接,为可执行设计建模。开发了两种CPN模板,组件模板和连接器模板。CPN组件模板的开发是为了支持具有以下行为模式的并发组件:异步(即非周期)I/O,周期I/O,非周期算法,周期算法,控制,等等[5]。图2给出了一个组件模板的示例。开发CPN连接器模板是为了支持并发组件之间不同类型的通信和同步,包括异步通信、同步通信和对被动对象[5]的互斥访问。图3给出了一个连接器模板的示例。CPN模板的设计使组件模板可以与连接器模板相互连接。例如,要对向控制组件发送异步消息的非周期I/O组件建模,需要将非周期组件模板连接到异步连接器模板,而异步连接器模板又连接到控制组件模板。
状态机还可以用于为设计模式建模。这是通过使用通信状态机对并发组件建模来实现的。设计模式中的每个组件都使用状态机建模。状态机可以通过(通过它们内部的组件)向其他状态机发送消息来相互通信。到达组件的消息可以触发内部状态机中的状态更改,并导致要执行的操作。
例如,巡航控制的案例研究是基于集中控制设计模式。这个模式包含一个控制组件,它通过概念性地执行一个状态机来提供对系统的整体控制。此外,该设计模式有几个直接与硬件[7]接口的输入和输出组件。通过通信状态机可以支持此模式。例如,在巡航控制体系结构中,巡航控制对象是集中控制器。它的内部行为和控制逻辑被捕获在一个状态机中,如图1所示。巡航控制对象接收来自三个直接与硬件交互的输入组件的输入,它们是巡航控制杆接口、刹车接口和引擎接口对象。组件也被建模为状态机。来自输入组件的状态机向巡航控制对象的状态机发送输入,该状态机导致巡航控制对象改变状态并执行适当的动作来响应事件。巡航控制对象负责向节气门接口对象发送输出,节气门接口对象直接与节气门硬件接口。节流接口对象的行为也使用状态机建模。油门
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[257920],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。