技术文章

AADL:面向嵌入式系统架构特征的建模语言

时间:2023-06-19

作者·张敏

一、AADL概述

AADL(Architecture Analysis and Design Language)是一种应用于嵌入式系统领域的体系结构建模语言,支持航空、航天、汽车等领域复杂实时的安全关键系统的设计与分析。AADL具有语法简单、功能强大、可扩展等优点,能够对嵌入式软件的功能和非功能属性进行建模与描述,对实时系统的软件及硬件进行标准化的分类,提供精确的语义定义,在开发早期对系统进行分析与验证。

图 1 AADL与其他建模语言关系图

AADL规范表示计算机系统运行时架构的组件模型,它由应用软件(通常是嵌入式的、安全关键的、任务关键的或性能关键的)和执行平台(及计算机硬件)组成和物理系统。组件代表系统的一部分并与其他组件交互。系统由交互的组件分层组成。AADL规范由包声明和属性集声明组成。AADL包(Package)包含组件规范,及AADL组件类型和组件实现,以及功能组件类型和附件库。该标准将数据、子程序、子程序组、线程、线程组和进程定义为应用软件组件类别,将内存、总线、虚拟总线、处理器、虚拟处理器和设备定义为执行平台组件类别,将系统和抽象定义为通用组合组件,它们构成了AADL建模词汇的核心。

图 2 AADL组件类别

AADL使用一种逐步精化的建模方法,不仅可以在不同的阶段进行建模,而且可以从不同的层次进行建模:顶层设计主要描述系统的各个模块及模块间的关系;低层设计主要描述模块的软硬件组成、软硬件与模块、软硬件与软硬件之间的关系。

图 3 AADL建模过程

 

二、AADL组件种类

AADL定义了很多组件种类,主要分为三大类:软件组件、执行平台组件、组合组件。每个种类中组件的语义和组合规则都被严格地定义。

图 4基于AADL的架构模型

(1)软件组件定义了系统体系结构中的应用元素,包含数据、线程、线程组、进程、子程序、子程序组。

图 5应用软件组件类别

(2)执行平台组件定义硬件元素,包含总线、内存、处理器、设备、虚拟总线、虚拟处理器。

图 6执行平台组件类别

(3)组合组件用来采集各种不同的组件(软件和硬件),在逻辑上以实体的形式建立系统的体系结构。

 

三、组件特征

组件的特征在组件类型中声明,组件实现会自动同步类型定义中声明的特征。AADL定义了很多特征,例如:交互的输入/输出端口、子程序参数、子程序访问等。它们之间通过定义在组件实现的端口连接来完成。

图 7组件特征

 

四、扩展的语言

  1. 属性集能够定义新的属性、属性类型和属性常数。AADL具有一组内置型的属性,能够直接用于属性定义中,也可以定义自己的属性类型。属性定义说明允许通过说明一个名称,以及通过规定的一个属性类型去定义一个新属性。属性常数通过符号名来了解属性值。
  2. 附件子语言能够提供模型要素的新类别,允许说明模型要素类别的分类符,定义能够与它们关联的属性,并且将模型要素的实例与组件联系起来。

 

五、AADL语法

基于所设计的AADL模型能够生成AADL代码,AADL是用与上下文无关的语法描述的正式的说明性语言。

图 8 AADL代码示例

 

六、AADL架构建模优势

  1. 使用AADL能够帮助工程师清晰定义嵌入式系统软件的架构组成模型。AADL能够提供一种标准且足够精确(机器可处理)的方式来对嵌入式实时系统(例如航空电子系统或汽车控制系统)的架构进行建模,以分析其属性,并支持其实施的可预测集成。对于使用平台无关要素和平台要素开发体系结构模型是有效的,能够利用语言的定义明确的语义,在早期阶段和整个生命周期进行广泛的定量分析。
  2. AADL重点在于物理系统体系结构、嵌入式应用软件的运行时体系结构与计算机平台之间的交互。它提供了实现系统功能对于软件的影响的深入理解,并提供了对于应用运行时体系结构、诸如操作系统和通信协议一类的运行时基础结构,以及在分布式计算机平台上的部署做出的决策。
  3. 基于AADL构建架构设计模型,为后续系统软件控制逻辑算法详细设计提供了概要基础,其模块组成、模块接口及调用均可直接用于详细设计。

 

 

参考文献:

《使用AADL的模型基工程:SAE体系结构分析和设计语言入门》著:Peter H. Feiler; David P. Gluch; 译:光电控制技术重点实验室。

SAE AS 5506B Architecture Analysis & Design Language (AADL)

 

技术文章

姓名

公司

电话

邮箱