1、ADL;全生命周期,综述 嵌入式实时系统广泛应用于航空航天、汽车控制、机器人、工业过程控制设备、医疗设备等领域,这些系统具有资源受限、实时响应、容错、专用输入输出硬件等特点,对性能、可靠性等性质有较高的要求1,文献2称之为性能关键系统(Performance Critcial Systems, PCS)。由于计算精度、实时响应的要求,这类系统变得越来越复杂,如何设计与实现高可靠、高质量的复杂嵌入式实时系统,并有效控制开发时间与成本,成为现在学术界和工业界的热门话题。软件体系结构是控制软件复杂性、提高软件质量、支持软件开发和复用的重要手段之一。研究复杂嵌入式实时系统的体系结构,不仅可以为方便软件
2、工程师和控制、机械工程师之间的交流与协作,而且可以在早期阶段对系统进行分析与验证,有助于保证系统的质量属性。UML以及C2、Darwin、Wright、Aesop、Unicon、Rapide等ADLs不是专门面向嵌入式实时系统领域,尚不能解决该领域的时限响应、并发处理等特定需求。为了能够对嵌入式实时系统建模与分析,OMG先后定义了UML profile for SPT(Schedulability, Performance, and Time, SPT3),UML profile for Qos/FT( Quality of Service and Fault Tolerance, Qos/F
3、T4)。但这些方法还是很难支持基于模型、体系结构驱动的嵌入式实时系统设计与开发5。2004年,SAE(Society of Automotive Engineers)组织提出嵌入式实时系统体系结构分析与设计标准AADL(Architecture Analysis and Design Language)6。AADL借鉴了UML、MetaH7及多种ADLs的优点,目的是提供一种标准的、足够精确的方式,设计与分析嵌入式实时系统的软件、硬件体系结构及其性能关键属性。在嵌入式实时系统领域,还有其他体系结构描述语言:UML profile Marte(Modeling and Analysis of R
4、eal-Time and Embedded systems, Marte8)是OMG最近提出的嵌入式实时系统体系结构描述语言标准,Marte提供多模型多分析的模式,容易导致各种模型之间的不一致性,且语言本身还不成熟。ESAT-ADL9是专门面向汽车嵌入式电子系统的体系结构描述语言。AADL以语法简单、语义精确、功能强大的优点,日益受到学术界和工业界的广泛关注和支持。1 AADL简介AADL是一种体系结构描述语言,主要是用于对嵌入式实时系统进行建模。它在很多项目中都充当了核心的角色,像COTREFarines et al.,2003a,ASSERTASSERT, 2006,TOPCASEDFar
5、ail et Gaufillet, 2005等等。AADL 的第一个版本于2004年11月发布,第二个版本正在制定中。 AADL 标准定义了三种模型描述的方式:文本化,XML 和 图形化。正是由于这种多样化的描述方式,AADL 可以被许多不同的工具所使用。对UML的支持同样允许我们在UML的工具中插入AADL。 作为一种体系结构描述语言,AADL 通过描写构件和连接来建立系统的体系结构。一个AADL的描述由对一系列构件的描述组成,通过对这种描述的实例化来建立系统体系结构的模型。1.1 构件描述 AADL的构件被定义成两部分:类型和实现。 一个AADL的构件拥有一个类型(component ty
6、pe)以及对应的零个,一个或者很多个实现(component implementation)。 构件的类型描述了外部的接口(进出端口,属性等)。继承的机制允许我们通过对一个已知类型的扩展定义一个新的类型。构件的实现(component implementation)描述了构件的内部结构(子构件,其他的属性等)。一个构件的类型可以有多个实现,和构件类型一样,一个实现同样可以扩展为其他的实现。1.2 构件的种类 AADL 定义了很多构件的种类, 总的来说可以分成三大类:软件构件,硬件构件以及组合构件。每个种类中构件的语义和组合规则都被严格地定义。 软件构件 定义了系统体系结构中的应用元素。 数据(
7、data) 代表了在构件之间能够存储或者交换的那些结构数据。 线程(thread) 是软件应用程序的组成元素; 线程组(thread group) 允许集中线程用来建立系统的层次结构。 进程(process) 定义了执行线程的内存空间。 子程序(subprogram) 用来对指定程序语言的过程进行建模,例如ADA或者C。 硬件构件(或者叫执行平台构件) 对硬件元素进行建模。 总线(bus) 用来描述各种类型的连接网络以及总线等。 内存(memory) 代表了所有的存贮设备:硬盘,读写存储器等等。 处理器(processor) 用来描写含有调度程序的微处理器。 外设 (device) 代表了系统
8、体系结构内部忽略的元素,例如传感器。 组合构件(system) 用来集中各种不同的构件(软件和硬件),在逻辑上以实体的形式建立系统的体系结构。1.3 特征 构件的特征(features)在构件类型(type)中声明,以这样的方式,构件类型的所有实现(implementation)给其他构件提供同样的接口。AADL存在很多种的特征:交互的进出端口(port),接口子程序(subprogram),子程序的参数(parameter),以及子构件的存取。它们之间通过定义在实现(implementation)中的连接(connection)来完成。1.4 属性 属性(property)是AADL组成中重
9、要的一个方面,它不但能够描述AADL实体的不同的特性,而且能够描述应用在体系结构中的约束条件,进而验证系统的可靠性,例如,属性被用来规定子程序的执行时间,线程的周期,数据或事件端口的等待队列协议等。属性的声明集中在属性集(property sets)中,有三种声明方式:类型,常量和属性名。一些属性已经定义在AADL标准里,用户可以根据自己的需要定义新的属性1.5 扩展 当定义新的属性不能满足用户需要时,AADL又引入了附件(annex)的概念。附件是另一种对描述的元素添加信息的方式,和属性的不同,它仅仅能够使用在构件的声明中,并且拥有自己独立的语法规则。附件的使用允许我们扩展AADL的语法规则
10、以用于描述构件的动态行为。2 AADL的研究现状在学术和工业界的共同努力下,AADL的研究已经渗透到系统全生命周期的各个阶段。AADL的研究与传统软件工程、软件体系结构的研究一样,AADL的研究首先关注全生命周期的设计阶段,然后过渡到设计之后的实现、后开发阶段,最后再关注设计之前的需求分析阶段,从而成为覆盖全生命周期的整体框架。表1从系统全生命周期的角度,对现有的AADL研究进行了分类与总结。 Table 1 Research and practice of AADL in the system life cycle表1 系统全生命周期中AADL的研究与应用 Requirement phase
11、System level requirements : system decomposition and architectural constraintsTiming requirementsDesign phaseFunctionality and semantics extension of AADL:behavior annex, error model annex,ARINC653 annex and UML annexArchitecture Description using AADLAnalysis and Verification of AADL Model: Dependa
12、bility Analysis, Schedulability Analysis, Model Checking and SimulationImplementation phaseModel transfermationCode generation: C,ADA,AutoSARComponents CompositionPost-development phaseAADL components are split into specification and implementation, which can help in modifying implementationsDynamic
13、 architectureArchitecture reconstruction2.1需求阶段的AADL研究 在需求阶段研究AADL,主要有如下两种:用AADL的基本元素和描述手段在较高抽象层次规约系统需求与问题;研究基于其他描述方法的需求规约自动或半自动地转换到AADL模型。AADL提供一种面向体系结构的需求工程方法,将软件体系结构的概念引入到需求分析阶段,有助于保证需求规约和设计之间的一致性和可追踪性。AADL用构件和连接子的概念来对系统级别的需求进行形式化规约,得到系统的层次组织结构、构件的需求规约、连接子的需求规约以及系统约束的需求规约等,例如构件接口需求规约、可靠性需求规约、实时任务
14、的时间需求规约、资源需求规约等。AADL能够同时获取与描述功能需求和非功能需求,对于嵌入式实时系统,非功能需求显得尤为重要。在设计阶段,功能与非功能需求的实现将会被验证与分析。由于UML、XUML、SysML等描述语言已经广泛应用于需求的描述,因此AADL结合这些描述语言的优势是必要的,从需求模型到AADL模型的转换成为重要的研究内容。文献 采用UML作为需求模型,并提出结构化转换(Structural transformation)作为需求模型到AADL模型转换的规则,这些规则包括UML类转换到AADL Component Type、UML类之间的组合连接(Composition Links
15、)转换到AADL Subcomponent、UML类之间的直接连接(Directed Associations)转换到AADL Port等。文献 研究了将XUML和AADL集成到统一的模型驱动开发过程(MDD),通过一些经验规则来完成需求模型到AADL模型的转换。SysML是UML在系统工程领域的改进,增加了需求图、参数图,并修改了活动图和配置图,SysML能够更好的描述系统层次的需求,文献 采用SysML作为需求模型,并研究了SysML到AADL的模型转换。总体上,需求阶段的AADL研究还处于初步阶段。如何保证模型转换的可追踪性是需求模型到AADL模型的关键。现有的需求模型到AADL模型的转换大部分只涉及如何根据需求模型构件AADL模型,但很少涉及模型转换的可追踪性。传统软件体系结构领域,采用表格 、Use Case Map 、“特征责任构件”映射关
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1