编辑推荐: |
本文介绍了AADL核心组件及组件类别,AADL的建模过程,AADL与其他建模语言关系,希望对您有所帮助。
本文来源于微信号麦禾测试,由火龙果软件Delores编辑,推荐 |
|
AADL(Architecture Analysis and Design language)是一种应用于嵌入式系统领域的体系结构建模语言,支持航空、航天、汽车等领域复杂实时的安全关键系统的设计与分析。AADL具有语法简单、功能强大、可扩展等优点,能够对嵌入式软件的功能和非功能属性进行建模与描述,在开发早期对系统进行分析与验证。
AADL组件类别
AADL提供了标准化的文本和图形描述,是一个用以区分各类组件接口规范、组件实现蓝图以及组件实例之间的区别的组件基建模语言。组件由组件类型和组件实现两种方式描述。组件类型定义了组件与外界联系的接口,如特征、流应用、模式、属性等;组件实现定义了组件的内部结构,如子组件、连接、流等。系统建模中常用的组件如下[1]:
表1 组件类别
图 1 AADL核心组件
AADL建模过程
模型驱动体系结构MDA(Model Driven Architecture)将模型分为两种:平台无关模型PIM (Platform Independent Model),描述从执行平台抽象的功能和结构;平台相关模型PSM (Platform Specific Model),描述特定执行平台上的功能和结构。AADL使用一种逐步精化的建模方法,不仅可以在不同的阶段进行建模,而且可以从不同的层次进行建模:顶层设计主要描述系统的各个模块及模块间的关系;底层设计主要描述模块的软硬件组成、软硬件与模块、软硬件与软硬件之间的关系[2]。
图 2 AADL建模过程
AADL验证技术与工具
基于AADL的验证技术主要包括属性的分析验证(端口连接检查、架构分析、流延迟分析、安全级别检验等)、可调度性分析(检查时间约束、实时可调度性分析和仿真)以及可靠性分析等。自2004年AADL首次发布以来,已经开发了许多建模与验证工具,这些产品包括:
★ OSATE:单一层次结构(声明性模型)、开源工具;
★ STOOD:多级层次结构(实例性模型)、商业工具,具备代码和文档生成;
★ AADL Inspector:AADL的模块化分析框架,包括静态分析工具、Cheddar可调度性分析工具、Marzhin动态模拟器、Ocarina代码生成器以及LMP技术。
图 3 AADL Inspector仿真分析工具主界面
1
LMP
LMP技术已被用于实现如静态规则检查器、代码和文档生成器以及逆向工程工具。Stood工具中,使用LMP技术最成功之一是空客支持DO 178认证过程的定制模型验证的资格。
2
Cheddar
Cheddar是一个实时调度工具,提供架构是否满足其周期性任务性能要求的依据。通过公式(1),计算具有抢占式固定优先级调度任务的最差响应时间:ri为任务i的基于截止时间计算的最差响应时间;hp(i)是该组的优先级高于i的任务;Pi(period)是任务周期时间;Ci(capacity)是任务执行时间;Di(deadline)是任务截止时间。通过公式(2),计算处理器的利用率U:n为处理器内thread的数量,如果处理器利用率小于n(21/n-1),则满足任务时间约束[3]。
3
Marzhin
Marzhin是一个基于多代理内核的模拟引擎,提供实时系统的调度分析结果。每个代理可以包含一个或多个在模拟周期中随机调用的执行单元。在执行时,所有代理一起交互以展示全局行为[4]。
AADL模型设计与仿真分析
1
时空分区模型
AADL通过使用ARINC 653附件,可以对时空分区架构进行建模和分析。使用AADL虚拟处理器来定义分区,使用AADLARINC653附件来指定分区的静态调度。图4为AADL建立的分区系统模型,模拟了一个主时间框架为30ms的二分区系统模型,下图为由Marzhin仿真处理器上的分区以及分区上的每个任务的时序运行结果。
图 4 AADL时空分区模型与Marzhin仿真分析结果
2
流延迟分析模型
AADL语言中采用了连接和流的概念来对组件间的交互行为进行描述,能够表示数据流、控制流或者故障事件流等。AADL工具提供对任务端口间通信的延迟分析功能,该功能根据任务实际运行时间、任务周期、网络带宽等进行计算。
图 5上图为基于AADL图形化组件建立的系统模型与端到端的流模型示意图,模拟了一条消息由传感器至软件,最终发送到两个执行设备的流路径。下图为基于模型的端到端的流延迟分析结果。
图 5 AADL模型与流延迟分析结果
3
故障树分析模型
AADL扩展语言EMA(Error Model Annex)是一种添加组件安全信息的标准,通过描述组件的可靠性信息,如故障状态、故障行为、故障传播等,建立故障模型。将故障模型与AADL架构模型相结合,可以构成完整的嵌入式系统可靠性模型。
故障树分析(Fault-Tree Analysis)通过遍历故障树模型的结构,利用底事件的发生概率,分析顶层错误发生概率。图 6为AADL系统模型与基于EMA的故障描述,下图为基于该模型分析得出的故障树模型及故障发生概率分析结果。
图 6 AADL模型与故障树分析结果
4
基于总线的系统调度模型
实时功能的建模和早期验证是嵌入式应用程序的关键问题,AADL支持由总线连接的多个处理器的建模和全局时序分析。网络的每个节点由在处理器上运行的实时软件描述,并且每个节点间的通信绑定到总线。
图7从左至右依次为AADL系统模型结构图、子系统模型设计图、软件模块设计图。各子系统模型通过总线模型交互,下图为基于Marzhin的全局时序分析结果,展示了各子系统内任务模型基于总线的调度运行情况及数据的交互。
图 7 AADL系统模型与全局时序分析结果
AADL与其他建模语言
Simulink适用于构建控制系统,UML适用于构建概念性体系结构,SysML适用于构建物理系统,而AADL适用于构建嵌入式系统的体系结构。同UML及SysML等建模语言相比,AADL语言能够对实时系统的软件及硬件进行标准化的分类,提供精确的语义定义[5]。
图 8 AADL与其他建模语言关系图
|