理论教育 汽车嵌入式系统手册:建模语言解析

汽车嵌入式系统手册:建模语言解析

时间:2023-08-26 理论教育 版权反馈
【摘要】:以下讨论的目的是提供建模语言特征概述,内容包括提供的经典抽象、抽象之间的关系、模型之间的关系以及行为模型。图10.3 研发者可用的建模语言的说明采用语法和语义定义建模和编程语言,它们在抽象语法、具体的语法和其解释上可以展现得更详细[79]。

汽车嵌入式系统手册:建模语言解析

以下讨论的目的是提供建模语言特征概述,内容包括提供的经典抽象、抽象之间的关系、模型之间的关系以及行为模型。对于调查和不同建模语言的细节,读者可以参考文献[4、21、53、69]。反映各种广泛的嵌入式系统如图10.3所示,今天我们发现众多的编程和建模语言在嵌入式系统开发中使用。

编程语言构成了一种特殊的建模语言,它们侧重于构造程序方面提供详细的系统设计支持。因为程序是实际行为的一个抽象,所以用C或Java编写程序,例如代表一个模型。程序的实际执行将产生时序行为和取决于硬件平台的计算精度(且也依赖于编译器和链接库)。但是,当编程语言涉及为嵌入式系统表达一些感兴趣的品质和属性时,它只能提供有限的抽象[72]

978-7-111-52251-5-Part03-50.jpg

图10.3 研发者可用的建模语言的说明

采用语法和语义定义建模和编程语言,它们在抽象语法、具体的语法和其解释上可以展现得更详细[79]。抽象语法定义概念、关系、完整性约束以及语言中的模型组成原则,从而确定所有可以建造的语法正确的模型。具体语法定义了:可视化的形式,图形、文字,或两者兼而有之。诠释定义了语言实体的含义和所得到的模型,也就是它们的语义。语言的抽象和具体语法的定义有时也被称为它们的元模型。元—元模型是一种建模语言,它可以用来定义不同元模型。这个术语被对象管理组织(OMG)使用,见参考文献[36],并由元对象设施(MOF)的定义举例验证(OMG的[107]),而UML2的定义是基于MOF的。

从外部的视角来看,造型语言可以从关注点和它们打算支持的开发活动的特点来表示。这些不同的目的应体现在建模语言提供的抽象、属性和相互抽象关系上。抽象、属性和关系共同定义的结构和行为概念,都可以在语言中捕获到。下面将描述在嵌入式系统中常见类型的建模语言。

10.4.1.1 抽象类型

可以在嵌入式系统建模语言中找到许多抽象[21、53]。典型的抽象包括“功能”——代表高层次规范方面系统的功能或逻辑上独立于任何实现技术的功能;“软件平台”——代表硬件单元以及中间件和操作系统的系统解决方案;“数据”——代表信息单元(信号、标记、事件);“交流”——代表机制以及针对其他抽象之间的信息交流的物理介质;“系统”——代表完整的系统以及配置属性;“一般的抽象”,它可以被认为是任何其他类型曾经专用的或取决于它们的使用背景。

10.4.1.2 抽象属性

抽象属性可以划分成结构接口、行为的语义和约束。结构接口属性处理抽象的组织(抽象的概念是什么)有关的问题,比如大小、形状和I/O。结构接口属性涉及一个抽象与其他抽象的交互接口。与行为有关的属性定义了一个抽象是做什么的以及如何做。这包括要定义一系列问题,如触发(事件与时间触发,自主进行)、持久性(创建/销毁)、定时(如持续时间)、转换/逻辑以及存储。行为也可以被约束控制。另一个方面是抽象概念的非期望行为。任何支持一般行为描述的语言可以使用同样的方法来描述错误行为。在某些情况下,提供显式构造用于错误描述。

由建模语言提供的时间、数据和空间的观点体现在抽象的属性,并产生不同类型的模型,例如连续或离散时间模型。类似时间处理,数据可能有连续值范围(或近似通过浮点值来实现)或离散化。嵌入式系统中离散化的一个相关例子是量化变量,例如,由于传感器、I/O设备、计算或通信的有限分辨率。时间和数据的组合可以被用来创建静态或动态的模型[3]。空间维数处理在空间中变化的属性,如力学张力、温度或电磁场,相应的属性用偏微分方程来描述。在所谓的集总模型中,物理上分布的属性被集中起来,并近似由单一变量来表示,例如点质量。

第三种抽象属性为约束,它适用于结构和行为的属性。约束指明确定义的边界值、允许/不允许的一组值——一个确定的属性可以采用的、但不需要精确规定属性实际采用的值。

10.4.1.3 行为描述

不同MoC的实现是通过连接抽象与通信、同步关系来实现的。抽象的行为属性、抽象关系以及与它们的语义定义了模型的行为。常见的嵌入式系统的MoC包括:

·离散时间模型(差分方程)。往往是通过离散嵌入式系统中控制器实施/模拟或信号处理算法得到的。(www.daowen.com)

·连续时间模型(微分方程)。这种类型模型的目标瞄准嵌入式系统环境中的物理系统的动态特性。

·离散事件模型(在计算机软件和硬件中的逻辑和实现行为)。

·多任务模型,其特征由触发、同步的平台抽象以及调度活动来表示。优先权和持续时间是这种MoC的重要特征。

多年来已经开发了许多基本MoC的变异体[43]。嵌入式系统中涉及需要共同进行评估的几种类型的MoC,例如,需要经过仿真。许多语言和工具支持若干种MoC在语言中的定义,例如,Simulink和Modelica[83]

10.4.1.4 相互抽象关系

下面总结几种类型抽象之间的关系。关系原则上是有效的,无论抽象是否在同一模型/语言中描述,或由几个模型/语言描述。它们中的许多定义或推断模型之间的依赖关系。一种特殊类型的依赖关系出现在使用两种不同的建模语言/工具表示系统的同一部位。至于属性,约束通常可以针对关系来定义——限制了它们的应用方法。这样的约束,例如可以是不同的临界水平的应用程序不能被分配给相同的处理器(或任务)。

·分解,指的是允许的方式组合抽象以形成一个整体,定义一个抽象与它包含的抽象之间的局部-整体/层次关系。局部-整体关系可以应用到面向行为的和面向结构的抽象中。在任何情况下,都提供从外部访问整体部分的方式,而访问这个整体并不需要可以通过抽象接口。这种机制与信息隐藏和模块化密切相关。在行为分解中,当把部分组成整体时,对行为的影响如持久性控制、排序和触发,也必须定义。

·通信,指针对信息交换或物理相互作用、连接不同抽象的允许方式。行为语义必须为这样的连接定义,包括协议和时序。这个关系与下面的(同步)关系密切相关。

·同步,指的是抽象之间的排序和时序关系。抽象之间的同步常常通过通信来实现,但其他技术也是可能的,其中包括使用预运行调度,以确保软件任务之间的同步。

·共性,指的是抽象之间的共同特点。共性可以通过以下方式取得:①对可以定义的抽象类型分类,根据定义的抽象类型,创建多个实例,并继承共同属性;②共同的配置,其中的模式横跨抽象集合不断地重复;③专业化/通用化,其中一种类型的抽象是基于另一种的,连同一些修改,因此共享没有被修改的属性。

·细化,指的是相同实际系统实体的不同抽象之间的关系。例如,一个功能通过添加原始功能中不存在的实施细节,来细化另外的功能。术语细化可以不同的方式使用,有时指的是这是可能在一种(相同的)语言内表达的,有时也包括涉及的解决方案决策和更详细的抽象的细化,因而使得细化模型可能需要用不同的语言表示(指手段-目的细化)。细化与设计流程紧密相连,其中的实施细节是依次加入的。

·分配,指的是把功能或软件抽象映射到平台/硬件抽象上。它是一种抽象和它们的硬件抽象的空间关系,比如软件与硬件之间的关系。分配关系涉及决定把行为映射到一个或多个硬件组件上。一旦已经决定映射,那么相应的功能/软件可以细化,并考虑映射(这是细化和分配之间的差异)。分配的一个特殊情况就是复制,例如一个软件任务分配给若干个处理器,这会造成冗余的解决方案。

其他依赖关系是指抽象之间的关系,其中一个抽象影响另一个抽象指的是:一个抽象的属性依赖另一个抽象的属性,或一个抽象的存在依赖其他抽象的存在,或采用假设:一个抽象涉及其他抽象。这样一个依赖性的案例是一个控制器,其参数依赖于一个特定的工厂模型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈