AADL模型的代码自动生成及集成技术

合集下载

AADL综述

AADL综述

AADL:嵌入式实时系统体系结构设计与分析语言综述摘要:结构分析和设计语言(architecture analysis and design language)是嵌入式实时系统的一种体系结构描述语言标准,广泛应用于航空宇航工业中对安全关键应用系统模型的建模。

本文首先归纳了AADL的发展历程及其主要建模元素。

其次,介绍了模型检测方法的研究和应用,并就航电系统与模型检测方法做了研究和分析。

最后,探讨了AADL 模型转化为形式化模型,并用模型检测方法进行验证和分析的方法和可行性。

关键字嵌入式实时系统AADL 建模形式化方法模型验证1.引言嵌入式实时系统广泛应用于航空航天、汽车控制、机器人、等安全关键系统领域。

由于计算精度、实时响应的要求的提高,系统变得越来越复杂,如何设计与实现具有高可靠性、高质量的复杂嵌入式实时系统,同时有效的控制开发的效率和成本,成为学术界和工业界共同的话题。

模型驱动开发方法(model driven develop- ment,简称MDD)能够在早期阶段对系统进行分析与验证,有助于保证系统的质量属性,并有效控制开发时间与成本。

而质量属性是由系统体系结构决定的[1]。

因此,基于体系结构模型驱动(model-based architecture-driven)的设计与开发方法成为复杂嵌入式系统领域的重要研究内容。

其中一个重要的方面就是研究合适的体系结构描述语言。

常用的体系结构描述语言主要有UML(unifi-ed modeling language) 和ADL (architecture description language)。

UML侧重描述系统的软件体系结构,为了支持嵌入式实时系统的非功能属性分析,OMG(Object Management Group)先后定义了UML Profile for SPT(schedulability,perfor-mance,and time,简称SPT)[2],UML Profile for Qos/FT(quality of service and fault tolerance,简称Qos/FT)[3]以及UML Profile MARTE(modeling and analysis of real-time and embedded sys-tems)[4],它们继承了UML 的多模型多分析方法,因此模型之间可能存在不一致性;而C2,Darwin,Wright,Aesop,Unicon,Rapide 等ADL都是通用领域的软件体系结构描述语言,难以满足软硬件协同设计、实时响应、资源受限等特定需求;MetaH 是面向航空电子系统的ADL,可以用于嵌入式实时系统体系结构描述与分析,但MetaH 在支持运行时体系结构描述、可扩展、与其他ADL 兼容以及复杂系统设计等方面有所欠缺。

AADL模型代码自动生成技术研究

AADL模型代码自动生成技术研究
ATE. Atte e h nd,i ho d t e e cin y o he g e ao h o g n e a ts we h f e c ft en r trt r u h a x mpl. i e
Ke r s a c i cu e a ay i n e in ln u g ;mo ei g t o ;c d u o t e e ain tc n lg ;ma p n u e y wo d : r ht t r n lssa d d s a g a e e g d l o l o e a tmai g n rt e h oo y n c o p igrls
( . colfSf ae n e i et n c ne& Tcnl yo hn ,C eg u60 5 ,C ia 2 C re yt Rsac D v— 1 Sho ow r,U ir t o o t v sy fEl r iS i c co c e ehoo g fC ia hn d 10 4 hn ; . oe ks sm e r t e e h& ee l metCne,C eg u6 0 5 ,C i o n et p r hn d 10 1 h n a)
Co e a tmai e eain tc n lg fAADL mo es d u o tc g n rto X e q n 。 ,GUIS e g 1 ,L e ,L iq o g I u — i ’ h n .i n UO L i UO Hu — i n
刘 雪琴 , 盛霖 , 桂 罗

蕾 , 罗惠琼
(. I 电子科技 大学 软件 学院 , 成都 60 5 ; . 京科银 京成 技术 有 限公 司 成都研 发 中心 , 都 605 ) 104 2 北 成 10 1

AADL的代码生成工具OCARINA的安装和使用教程

AADL的代码生成工具OCARINA的安装和使用教程

AADL的代码⽣成⼯具OCARINA的安装和使⽤教程OCARINA是法国ENST开发的AADL⾃动⽣成代码⼯具,能够将AADL模型⾃动⽣成POLYORB中间件及其上的C、ADA代码。

下⾯将详细介绍OCARINA的安装和使⽤⽅法。

⼀、Ocarina源码安装教程1.安装ada编译器因为ocarina是⽤Ada开发的,所以需要⽤Ada的编译器才能运⾏。

在安装GCC的基础上,还需要安装gcc-gnat和GNAT.Ocarina⽀持编译器版本:gcc-gnat 4.4.0以上 GNAT 2006以上,因此⽼系统(⽐如redhat9等)就不适⽤了GNAT⽬前最新版本见下载后tar压缩,执⾏doinstall即可安装。

⽽对于gcc-gnat⼀般还需要依赖包libgnat,在linux盘中可以找到(如果找不到,可以在⽹站下载),先⽤rpm命令安装libgnat 后,再安装gcc-gnat,到此编译器安装完成。

2.Ocarina的安装我下载的是ada源码,所以源码安装⼀般都是先configure,再make,再make install。

下⾯是详细的命令(>是命令提⽰符,不需要输⼊):>tar -xzvf ocarina-2.0w-suite-src-20120203.tar.gz>cd ocarina-2.0w>./configure --enable-debug --prefix=/where/you/want/ocarina/to/install>make>make install3.Ocarina的使⽤#⾸先配置Ocarina的环境变量>export PATH=$PATH:/where/you/intall/ocarina/bin#使⽤Ocarina,将aadl⽂件转换成代码(必须在aadl⽂件⽬录下进⾏)>ocarina -g generator_name -f list_of_aadl_files#generator_name是指Ocarina⽀持的三种中间件,可以是polyorb_hi_ada, polyorb_hi_c或pok-c#-f后⾯可以有多个aadl⽂件,⽀持批量⽣成4.Ocarina安装过程中可能出现的问题4.1./configure阶段提⽰找不到ada编译器解决⽅案:在出现的信息中查找,哪个编译器不存在,在下载对应版本安装4.2../configure阶段提⽰找不到C头⽂件,即“What is the location of the directory of C header files that match your running kernel?”,这是当前kenel与kernel_devel版本不匹配,这种⽹上解决⽅案很多⼆、Ocarina的⼆进制版本安装相⽐于源码安装,binary版本省略了编译环节,也就省略了下载安装编译器的步骤,只需要解压并进⾏简单配置即可⽤。

AADL文献综述

AADL文献综述

AADL:一种复杂嵌入式实时系统体系结构设计与分析语言摘要:近年来,软件体系结构逐渐成为复杂嵌入式实时系统设计与开发中的关键技术之一。

而作为该领域的体系结构设计与分析语言标准,AADL日益受到学术与工业界的关注,并发展成为一个重要的研究方向。

分析与归纳了AADL的发展历程及其主要研究内容,从系统全生命周期的角度,综述了AADL在不同阶段的研究与应用,并对AADL的工业应用进行了概述。

最后,探讨了AADL的发展趋势.关键词:嵌入式实时系统;AADL;UML;ADL;全生命周期,综述嵌入式实时系统广泛应用于航空航天、汽车控制、机器人、工业过程控制设备、医疗设备等领域,这些系统具有资源受限、实时响应、容错、专用输入输出硬件等特点,对性能、可靠性等性质有较高的要求[1],文献[2]称之为性能关键系统(Performance Critcial Systems, PCS)。

由于计算精度、实时响应的要求,这类系统变得越来越复杂,如何设计与实现高可靠、高质量的复杂嵌入式实时系统,并有效控制开发时间与成本,成为现在学术界和工业界的热门话题。

软件体系结构是控制软件复杂性、提高软件质量、支持软件开发和复用的重要手段之一。

研究复杂嵌入式实时系统的体系结构,不仅可以为方便软件工程师和控制、机械工程师之间的交流与协作,而且可以在早期阶段对系统进行分析与验证,有助于保证系统的质量属性。

UML以及C2、Darwin、Wright、Aesop、Unicon、Rapide等ADLs不是专门面向嵌入式实时系统领域,尚不能解决该领域的时限响应、并发处理等特定需求。

为了能够对嵌入式实时系统建模与分析,OMG先后定义了UML profile for SPT(Schedulability, Performance, and Time, SPT[3]),UML profile for Qos/FT ( Quality of Service and Fault Tolerance, Qos/FT[4])。

基于AADL结构分析与设计语言仿真建模技术

基于AADL结构分析与设计语言仿真建模技术

基于AADL 的模型设计与仿真分析技术AADL (Architecture Analysis and Design language )是一种应用于嵌入式系统领域的体系结构建模语言,支持航空、航天、汽车等领域复杂实时的安全关键系统的设计与分析。

AADL 具有语法简单、功能强大、可扩展等优点,能够对嵌入式软件的功能和非功能属性进行建模与描述,在开发早期对系统进行分析与验证。

AADL 组件类别AADL 提供了标准化的文本和图形描述,是一个用以区分各类组件接口规范、组件实现蓝图以及组件实例之间的区别的组件基建模语言。

组件由组件类型和组件实现两种方式描述。

组件类型定义了组件与外界联系的接口,如特征、流应用、模式、属性等;组件实现定义了组件的内部结构,如子组件、连接、流等。

系统建模中常用的组件如下[1]:应用 软件process (进程) 受保护的地址空间 thread (线程) 进程中与执行、调度相关的组件 data (数据) 源代码、数据或数据类型 执行平台processor (处理器)调度和执行线程及虚拟处理器memory (存储器) 存储数据和程序 bus (总线) 实现执行平台组件间的交互 device (设备)表示与外部环境接口的传感器等其他组件 复合system (系统)抽象代表包括软件、执行平台或系统组件的复合体图 1 AADL 核心组件systemvirtualprocessorprocessor memorydevice virtual busbus abstractsubprogramprocess thread group groupsubprogram datathread HWSWAADL 建模过程模型驱动体系结构MDA (Model Driven Architecture )将模型分为两种:平台无关模型PIM (Platform Independent Model),描述从执行平台抽象的功能和结构;平台相关模型PSM (Platform Specific Model),描述特定执行平台上的功能和结构。

基于AADL和SCADE的模型驱动软件设计

基于AADL和SCADE的模型驱动软件设计

第18卷 第6期太赫兹科学与电子信息学报Vo1.18,No.6 2020年12月 Journal of Terahertz Science and Electronic Information Technology Dec.,2020文章编号:2095-4980(2020)06-1117-05基于AADL和SCADE的模型驱动软件设计刘芮滦,邓杨,龚彬(中国工程物理研究院电子工程研究所,四川绵阳 621999)摘 要:模型驱动开发逐渐应用于嵌入式系统的软件设计,在软件设计阶段重点关注的是软件的架构模型和详细功能模型。

用于嵌入式系统软件建模的语言和工具很多,其中结构分析与设计语言(AADL)模型可以构建嵌入式软件的架构,高安全性应用开发环境(SCADE)模型可以描述嵌入式软件的逻辑功能,将两者统一使用可以满足嵌入式软件概要设计和详细设计的建模需求。

针对某飞行器控制系统,本文分别使用AADL和SCADE对飞行器控制系统软件架构和功能进行建模,利用KCG工具从SCADE模型自动生成C代码,通过手工代码和自动生成代码的集成完成控制系统部分软件设计。

实际应用表明,采用AADL和SCADE相结合的建模方法适用于模型驱动开发在嵌入式软件设计中应用。

关键词:AADL模型;SCADE模型;模型驱动开发;嵌入式系统;自动代码生成中图分类号:TN967.6;TP391.9文献标志码:A doi:10.11805/TKYDA2019233Model driven software development based on AADL and SCADELIU Ruiluan,DENG Yang,GONG Bin(Institute of Electronic Engineering,China Academy of Engineering Physics,Mianyang Sichuan 621999,China)Abstract:Model-driven design has been used in embedded system software design. The software architecture model and detailed functional model are the focuses in the software design stage. There aremany languages and tools for the embedded system software modeling. The architecture of embeddedsoftware can be built by the Architectural Analysis and Design Language(AADL) model, and the logicfunction of embedded software can be described by the Safety Critical Application DevelopmentEnvironment(SCADE) model. The integration of the two models can meet the modeling requirements ofoutline design and detailed design of embedded software. AADL and SCADE are adopted to model thearchitecture and function of the software of an aircraft control system, KCG tool is utilized to auto generateC code from SCADE model, and the aircraft control system software is partly designed through theintegration of handmade and auto-generated codes. Actual application indicates that AADL associatedwith SCADE is suitable for model-driven design applied in the embedded software design.Keywords:AADL;SCADE;model-driven design;embedded system;auto code generation随着科技的进步,嵌入式系统的应用已无处不在,嵌入式软件开发方式也得到长足发展。

AADL模型的代码自动生成及集成技术

AADL模型的代码自动生成及集成技术

AADL模型的代码自动生成及集成技术
陶勇;桂盛霖;马亮;尹立孟
【期刊名称】《计算机工程》
【年(卷),期】2009(035)008
【摘要】体系结构分析设计语言(AADL)是一种基于模型驱动体系结构的建模语言,针对如何将AADL模型自动生成框架代码的问题,提出AADL模型元素同C语言元素间的转换规则,设计AADL模型转换为C语言框架代码的自动代码生成器Generator.实例证明了AADL模型自动转换为可执行C代码的有效性.
【总页数】3页(P59-61)
【作者】陶勇;桂盛霖;马亮;尹立孟
【作者单位】电子科技大学计算机科学与工程学院,成都,610054;北京科银京成技术有限公司成都研发中心,成都,610051;电子科技大学计算机科学与工程学院,成都,610054;北京科银京成技术有限公司成都研发中心,成都,610051;电子科技大学计算机科学与工程学院,成都,610054;北京科银京成技术有限公司成都研发中心,成都,610051;北京科银京成技术有限公司成都研发中心,成都,610051
【正文语种】中文
【中图分类】TP311
【相关文献】
1.AADL模型代码自动生成技术研究 [J], 刘雪琴;桂盛霖;罗蕾;罗惠琼
2.基于MDE的模型转换研究:从AADL模型到Fiacre模型 [J], 刘玮;
3.AADL模型的ada代码自动生成及集成技术 [J], 李建一;桂盛霖;尹立孟;罗惠琼
4.一种SysML模型到AADL模型的自动转换方法 [J], 马燕燕; 杨志斌; 江国华
5.基于AADL的航天嵌入式软件Ada代码自动生成方法 [J], 冯思喆; 杨志斌; 薛垒因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)规则 2:AADL 语言中的 data 组件类型与 C 中具体变 量类型相对应,将模型中出现的数据类型保存在 data.h 中, 通过引用该文件,整个工程都可以使用其中的数据类型。当 该数据组件作为线程或进程的子组件,在进程或线程被实例 化以后,在对应的<组件实例名.c>中实例化一个该数据类型 的变量。
features 参数名 1: in parameter 数据类型;
end 子程序类型名 1; subprogram 子程序类型名 2
features 参数名 2: in parameter 数据类型;
end 子程序类型名 2; thread 线程类型名
features 端口名 1: in data port 数据类型;
end 线程类型名.线程实现名;
对应生成如下代码:
<线程类型名.h>
—60—
<线程类型名_线程实现名.h>: #ifndef 线程类型名_线程实现名_H #define 线程类型名_线程实现名_H #include "线程类型名.h" void 线程类型名_线程实现名(void *arg ); void 线程类型名_线程实现名_call(void ); #endif <线程类型名_线程实现名.c>: #include "线程类型名_线程实现名.h" #include "子程序调用名 1.h" #include "子程序调用名 2.h" Parameters arg1 = {&(子程序调用名 1_feature .子程序 in 参数 名 1), &(子程序调用名 1_feature .子程序 out 参数名 2 )}; Parameters arg2 = {&(子程序调用名 2_feature.子程序 in 参数 名 1), &(子程序调用名 2_feature.子程序 out 参数名 2), }; void 线程类型名_线程实现名(void *arg ) {
Parameters *threadparams = (Parameters *)arg; arg1.P1 = threadparams->P1;//关联 arg2.P1 = threadparams->P1;//关联 线程类型名_线程实现名_call( ); } void 线程类型名_线程实现名_call (void ) { 子程序调用名 1 (&arg1); 子程序调用名 2 (&arg2); }
Code Automatic Generation and Integration Technology of AADL Model
TAO Yong1,2, GUI Sheng-lin1,2, MA Liang1,2, YIN Li-meng2
(1. School of Computer Science and Engineering, University of Electronic Science and Technology of China, Chengdu 610054; 2. Chengdu Research & Development Center, Bejing Coretek Technology Co., Ltd., Chengdu 610051)
需求
建模
模型
代码 生成
代码
平台无 关模型
平台相 关模型
图 1 使用 MDA 方法的软件开发过程
在传统的嵌入式软件开发过程中,缺乏对整个系统体系 结构的精确预算,虽然单个功能模块的非功能属性相对容易 实现,但在系统集成后如何满足整个系统的非功能属性对于 开发人员是一个巨大挑战。要解决这些问题,可以采用 MDA 方法在系统实现前建立模型,在模型级对整个系统的体系结 构[2]进行非功能属性规约和验证,消除可能出现的问题,降 低开发成本。体系结构分析设计语言(Architecture Analysis and Design Language, AADL)[3]是一种基于 MDA 方法的体系 结构建模语言。AADL 模型不关心具体的功能实现,描述的
当线程实例化时,生成<线程实例名. h>:
#ifndef INCLUDE_线程实例名 #define INCLUDE_线程实例名 #include "线程类型名_线程实现名.h" void 线程实例名(void *arg ); #endif <线程实例名. c>: #include "线程实例名.h" 线程类型名_feature 线程实例名_feature={0,0}; void 线程实例名( void *arg)
—59—
UML[4], Simulink[5]等模型语言到代码的转换方法研究以及 MDA 代码生成技术[6]制定了 AADL 语言到 C 语言的元素转 换规则。具体规则如下:
(1)规则 1:AADL 中的组件类型和实现对应转换为<组件 类型名.h>和<组件类型名_组件实现名.h>以及<组件类型名_ 组件实现名.c>。当该组件被实例化时,对应生成<组件实例 名.h>和<组件实例名.c>。
(5)规则 5:AADL 中的端口关联对应组件端口或参数之 间的地址传递。
(6)规则 6:AADL 中 thread 组件转换为 C 代码中与平台 结合的 task 的入口点函数。该函数为进程创建线程后的执行 函数。代码如下:
data 数据类型 properties
Language_Support::Data_Format=>int; end 数据类型; subprogram 子程序类型名 1
(3)规则 3:AADL 语言 features 中的事件数据端口在 C 中对应为包含数据和事件 2 个子类型的结构体。其中,数据 子类型是一个端口类型的指针;事件子类型是一个指向事件 的字符指针。该端口在对应的<组件类型实例名.c>中实例化。
(4)规则 4:AADL 中的 subprogram 在 C 中对应调用函数, 将函数的声明定义在.h 文件中,函数的实现定义在.c 文件中, 该函数的实现部分调用由开发人员根据具体的功能需求编写 的功能函数。子程序的特征则作为函数的参数。
(1. 电子科技大学计算机科学与工程学院,成都 610054;2. 北京科银京成技术有限公司成都研发中心,成都 610051)
摘 要:体系结构分析设计语言(AADL)是一种基于模型驱动体系结构的建模语言,针对如何将 AADL 模型自动生成框架代码的问题,提 出 AADL 模型元素同 C 语言元素间的转换规则,设计 AADL 模型转换为 C 语言框架代码的自动代码生成器 Generator。实例证明了 AADL 模型自动转换为可执行 C 代码的有效性。 关键词:嵌入式软件;模型驱动体系结构;转换规则;代码自动生成
1 背景介绍
嵌入式软件的规模及复杂性的不断增长导致开发时间和 开发费用急速增长,如何快速有效地开发嵌入式软件成为目 前 急 待 解 决 的 问 题 。 模 型 驱 动 体 系 结 构 (Model Driven Architecture, MDA)是一种具有生命力和应用前景的开发方 法。使用 MDA 方法的软件开发过程如图 1 所示,其中,模 型是研究的中心。在嵌入式软件产业中已有许多面向功能的 建模工具,如 Simulink, SCADE[1], UML 等。
AADL 中的组件是通过类型(type)和实现(implementation) 来定义的。组件类型规定了组件的功能接口。组件实现规定 了组件的内部结构。AADL 中有 3 类组件:应用软件组件, 执行平台组件和复合组件。应用软件组件包括线程(thread)、 进程(process)、数据(data)、子程序(subprogram)等。执行平台 组件包括处理器、内存、外设、总线。复合组件包含系统、 系统对软件组件和执行平台组件进行结构化建模。软件工程 师协会开发的开源 AADL 工具环境(Open Source AADL Tool Environment, OSATE)是一个基于 eclipse 的 AADL 语言编辑 工具,该工具支持对 AADL 语言进行编辑、语法检查、安全 检查等,还可以通过添加插件的方式增加该工具的功能。
}
(7)规则 7:AADL 进程对应 C 中的 main 函数,进程负 责线程的初始化,在 Windows 平台中,线程的创建函数为 CreateThread()。
AADL 中的进程组件代码如下:
process 进程类型名 end 进程类型名; process implementation 进程类型名.进程实现名
end 线程类型名; thread implementation 线程类型名.线程实现名
calls
{ 子程序调用名 1: subprogram 子程序类型名 1; 子程序调用名 2: subprorameter 端口名 1 ->子程序调用名 1.参数名 1; parameter 端口名 1 ->子程序调用名 2.参数名 2;
【Abstract】Architecture Analysis and Design Language(AADL) is a modeling language based on Model Driven Architecture(MDA). Aiming at how to automatically generate executive framework code of AADL models, this paper presents conversion rules from AADL model elements to C language elements and designs a tool of automatic code generator “Generator” that converts AADL models into C language framework code. The example proves the effectiveness of converting AADL model to C code. 【Key words】embedded software; Model Driven Architecture(MDA); conversion rules; code automatic generation
相关文档
最新文档