AADL(Architecture Analysis and Design Language) 结构分析和设计语言 您所在的位置:网站首页 编程形式化方法语言的特点有哪些 AADL(Architecture Analysis and Design Language) 结构分析和设计语言

AADL(Architecture Analysis and Design Language) 结构分析和设计语言

2024-07-18 00:35| 来源: 网络整理| 查看: 265

在这里插入图片描述

文章目录 一、AADL的诞生二、AADL简介2.1 构件描述2.2 构件的种类2.2.1 软件构件2.2.2 硬件构件2.2.3 组合构件 2.3 特征2.4 属性2.5 扩展 三、AADL的研究现状3.1 需求阶段的AADL研究3.2 设计阶段的AADL研究3.2.1 AADL语言扩展3.2.2 AADL形式语义3.2.3 AADL模型分析与验证 3.3 实现阶段的AADL研究3.3.1 基于AADL的模型驱动开发3.3.2 代码生成 3.4 部署与后开发阶段的AADL研究

一、AADL的诞生

UML等ADLs(结构描述语言)不是专门面向嵌入式实时系统领域,尚不能解决该领域的时限响应、并发处理等特定需求。 2004年,SAE(Society of Automotive Engineers)组织提出了嵌入式实时系统体系结构分析与设计标准AADL(Architecture Analysis and Design Language)。AADL借鉴了UML等多种ADLs的优点,目的是提供一种标准的、足够精确的方式,设计与分析嵌入式实时系统的软件、硬件体系结构及其性能关键属性。 AADL以语法简单、语义精确、功能强大的优点,日益受到学术界和工业界的广泛关注和支持。

二、AADL简介

AADL是一种体系结构描述语言,主要是用于对嵌入式实时系统进行建模。AADL标准定义了三种模型描述的方式:文本化、XML和图形化。这是由于这种多样化的描述方式,AADL可以被许多不同的工具所使用。 作为一种体系结构描述语言,AADL通过描写构件和连接来建立系统的体系结构。一个AADL的描述由对一系列构件的描述组成,通过对这种描述的实例化来建立系统体系结构的模型。

2.1 构件描述

AADL的构件被定义成两个部分:类型和实现。一个AADL的构件拥有一个类型以及对应的零个,一个或者很多个实现。构件的类型描述了外部的接口(进出端口,属性等)。继承的机制允许我们通过对一个已知类型的扩展定义一个新的类型。构件的实现描述了构件的内部结构(子结构,其他属性等)。一个构件的类型可以有多个实现,和构件类型一样,一个实现同样可以扩展为其他的实现。

2.2 构件的种类

AADL定义了很多构件的种类,总的来说可以分成三大类:软件构件、硬件构件和组合构件。每个种类中构件的语义和组合规则都被严格地定义。

2.2.1 软件构件

定义了系统体系结构中的应用元素

数据 代表了在构件之间能够存储或者交换的那些结构数据线程 是软件应用程序的组成元素线程组 允许集中线程用来建立系统的层次结构进程 定义了执行线程的内存空间子程序 用来对指定程序语言的过程进行建模 2.2.2 硬件构件

也叫执行平台构件,对硬件元素进行建模

总线 用来描述各种类型的连接网络以及总线等内存 代表了所有的存贮设备,硬盘,读写存储器等处理器 用来描写含有调度程序的微处理器外设 代表了系统体系结构内部忽略的元素 2.2.3 组合构件

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

2.3 特征

构件的特征在构件类型中声明,以这样方式,构件类型的所有实现给其他构件提供同样的接口。AADL存在很多种特征:交互的进出端口,接口子程序,子程序参数,以及子构件的存取。它们之间通过定义在实现中的连接来完成。

2.4 属性

属性是AADL组成中一个重要的方面,它不但能够描述AADL实体的不同特性,而且能够描述应用在体系结构中的约束条件,进而验证系统的可靠性。例如,属性被用来规定子程序的执行时间,线程的周期,数据或事件端口的等待队列协议等。属性的声明集中在属性集中,有三种声明方式:类型、常量和属性名。一些属性已经定义在AADL标准里,用户可以根据自己的需要定义新的属性。

2.5 扩展

当定义新的属性不能满足用户需要时,AADL又引入了附件的概念。附件是另一种对描述的元素添加信息的方式,和属性不同,它仅仅能够使用在构件的声明中,并且拥有自己独立的语法规则。附件的使用允许我们扩展AADL的语法规则以用于描述构件的动态行为。

三、AADL的研究现状

AADL的研究已经渗透到系统全生命周期的各个阶段。AADL的研究与传统软件工程、软件体系结构的研究一样,AADL的研究首先关注全生命周期的设计阶段,然后过渡到设计之后的实现、后开发阶段,最后在关注设计之前的需求分析阶段,从而成为覆盖全生命周期的整体框架。

3.1 需求阶段的AADL研究

在需求阶段研究AADL,主要有以下两种:用AADL的基本元素和描述手段在较高抽象层次规约系统需求与问题;研究基于其他描述方法的需求规约自动或半自动地转换到AADL模型。 AADL提供一种面向体系结构的需求工程方法,将软件体系结构的概念引入到需求分析阶段,有助于保证需求规约和设计之间的一致性和可追踪性。AADL用构件和连接子的概念来对系统级别的需求进行形式化规约,得到系统的层次组织结构、构件的需求规约、连接子的需求规约以及系统约束的需求规约等。AADL能够同时获取与描述功能需求和非功能需求,对于嵌入式实时系统,非功能需求显得尤为重要。在设计阶段,功能与非功能需求的实现将会被验证与分析。 总体上,需求阶段的AADL研究还处于初步阶段,如何保证模型转换的可追踪性是需求模型到AADL模型的关键。现有的需求模型到AADL模型的转换大部份只涉及如何根据需求模型构件AADL模型,但很少涉及模型转换的可追踪性。

3.2 设计阶段的AADL研究

设计阶段的AADL研究是最早被关注的,这个阶段的研究也是最丰富和成熟的。主要包括AADL本身的功能和语义完善、基于AADL的体系结构描述以及AADL模型分析与验证方法等。AADL语言功能和语义的完善,首先是为了适应更多特定领域的需求,其次是为了更好的设计、分析与验证系统的体系结构。

3.2.1 AADL语言扩展

AADL提供了两种扩展方式:引入新属性或符号;经核准的子语言扩展。对于第一种方式,AADL标准允许用户或工具提供商为各种构件引入新的属性集,或专用于特殊分析的符号。后者则很严格,需要先提议、发展、投票以及被核准,才能称为AADL语言的一部分,一般以AADL标准附件文档的形式给出,主要包括子语言的语法,并要与AADL标准相符合。 AADL一般通过规约模式变化来描述事件相应、模式依赖流程来描述子程序调用等行为,而构件的实际行为则要用目标执行语言来描述。

3.2.2 AADL形式语义

在AADL标准中,软件构件、硬件构件、系统构件以及连接的语义都是用自然语言来定义的。构件包括一个类型和一个或多个实现,构件接口、构件交互都给出了完整定义。形式化方法能够给出更精确的语义,同时有助于体系结构规约的验证与分析。因此,研究AADL的形式语义是十分必要的。 由于AADL的构件种类、属性、规则和约束很多,AADL还有很多语义需要形式化。目前AADL通过一些规则来描述构件组合,每种构件都有相应规则,因此构件组合非常复杂,尤其是构件是可以扩展的,更加增加了构件组合的复杂性。所以需要研究AADL构件层次组合的形式语义;AADL构件可以标注非功能属性,AADL标准也只是给出了一些规则,各种构件能够标注什么样的属性,某个属性能否被哪些构件标注。所有属性构成属性集合,根据属性集合可以进行非功能属性分析。AADL属性定义不清晰,主要表现在构件类型与属性关系不清晰以及属性集合与非功能属性分析关系不清晰。

3.2.3 AADL模型分析与验证

在早期进行体系结构分析与验证,能够尽早发现系统设计的潜在错误。主要通过分析与验证AADL模型,预测系统的质量属性。传统的体系结构分析方法一般分为两类:基于形式化、模拟仿真方法;基于场景分析、调查等手段。目前对AADL模型进行分析与验证主要是采用形式化方法。

3.3 实现阶段的AADL研究

从高层的系统体系结构层次到系统实现层次的有效转换,是研究复杂嵌入式实时系统体系结构的意义所在。目前的研究主要包括基于AADL的模型驱动开发以及代码生成。

3.3.1 基于AADL的模型驱动开发

AADL被证明是嵌入式实时系统领域较好的建模语言,而模型驱动开发(Model Driven Development,MDD)正在成为主流的开发过程,AADL与MDD的结合,能够使得AADL得到广泛使用。模型转换是MDD的核心,传统MDD定义了三个层次的抽象:平台独立模型、平台特定模型以及代码。 基于AADL模型驱动开发过程:获得AADL PIM模型,主要是将AADL和UML结合起来使用,将AADL版型标注在UML模型上;利用功能转换规则,转换成AADL PSM;利用非功能转换规则,将PSM转换成AADL分析模型,可以进行可调度、性能分析;转成可执行代码。

3.3.2 代码生成

代码生成主要研究从AADL模型到可执行代码的生成规则、方法、工具以及语义一致性验证等。从软件体系结构到实现的过程中,借助一定的中间技术,体系结构更容易映射成相应的实现。 由于AADL模型的执行环境在实时操作系统之上,因此代码生成可以归纳为以下几类:基于AADL各类应用构件,生成构件对应的源代码;基于AADL的设备构件,研究设备驱动代码的生成技术;研究生成符合各种应用标准的源代码;生成代码框架。 由于体系结构通常是在较高层次规约系统的行为,缺乏实现层次的具体细节,体系结构描述往往只能转换为简单的代码框架。因此,代码生成技术应该和基于AADL的模型驱动开发方法结合起来,通过逐步精化AADL PIM,最终生成完整的可执行的代码。

3.4 部署与后开发阶段的AADL研究

随着分布实时系统与网络的发展,嵌入式软件的部署受到重视。基于软件体系结构的软件部署有助于:提供高层的体系结构视图描述部署阶段的软硬件模型;基于软件体系结构模型可以分析部署方案的质量属性,从而选择合理的部署方案;通过软件体系结构记录软件部署的经验,以便下次复用。 软件部署安装之后的阶段称为后开发阶段,主要包括动态体系结构、体系结构恢复与重构等方面的研究。软件的体系结构由于内部执行或外部环境会导致在运行时会发生改变,即动态体系结构。如何在设计阶段获取体系结构这种动态性,并指导系统在运行时实施这些变化,从而达到系统的自动演化或自适应,这是动态体系结构的主要研究内容。 体系结构恢复与重构主要是对遗留系统的升级和功能增强的需要,因为很多现有遗留系统是没有体系结构或体系结构不合理,所以要进行体系结构恢复和重构。目前基于AADL的体系结构恢复和重构还处于探索阶段,缺乏必要的自动重构工具和方法支持。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有