基于AADL的软件开发技术研究

减小字体 增大字体 作者:宋翠叶 杜承烈 李 刚  来源:www.zhonghualunwen.com  发布时间:2009-10-13 00:17:57

  0 引言
  
  体系结构分析与设计语言(architectural analysis and design language,AADL)是由美国自动机协会(Society of Automotive Engineers,SAE)于2004年10月颁布的航空标准AS5506[1]。AADL由航电领域的体系结构描述语言 MetaH演化而来,最初被称为航电体系结构描述语言(avionics architecture description language)。AADL为在软件开发过程中采用形式化方法提供了重要的支持,不仅适用于航电领域,也适用于其他应用领域,尤其是各种具有高实时性要求的分布实时嵌入式系统(distri-buted real-time and embedded systems, DRE)[2~4]。
  在软件开发过程中有效使用AADL,需要强大的工具支持[5]。目前,国外对AADL的研究与应用较多[2~4],其主要工具也都来自国外[6],国内对AADL的研究较少。本文旨在通过研究AADL及其相应工具的研究现状,为在软件开发过程中有效使用AADL提供一定的指导作用,同时,也为进一步的工具开发提供依据,从而促进AADL在软件开发中的应用。
  本文对AADL的特性作了简要介绍,以此为下文的基础。以瀑布模型为例,分析了AADL在软件开发中的重要作用及其对相应工具的要求,给出了一种AADL工具集的组成框架。
  
  1 AADL特性简介
  
  如图1所示,AADL是一种基于构件的建模语言,采用结构化的描述来对嵌入式系统的软/硬件进行统一建模[1]。它将构件类型分为十种,包括:进程(process)、线程(thread)、线程组(thread group)、数据(data)和子程序(subprogram)五种应用软件构件;处理器(process)、存储器(memory)、总线(bus)和设备(device)四种硬件构件;一种复合构件系统构件(system)。AADL构件类型与实现均包含了丰富的构件描述子句(description clause),如subcomponents描述子句,描述了构件的组成关系。通过描述子句,AADL不仅提供了系统静态结构的描述支持,还提供了许多运行时语义支持,如消息传递、事件传递、共享构件的同步访问、线程调度协议、时间要求和远程过程调用,以及通过模式及模式转换支持的动态重配置建模。
  AADL还提供了四种精化途径:构件类型扩展、构件类型多种实现、构件实现扩展、构件实现的精化(refines)子句。充分发挥了面向对象的继承的思想,不同的是,AADL将其泛化为扩展关系(extends),不仅支持构件实现继承构件类型,也支持类型之间、实现之间的继承关系。通过以上途径,对系统构件的类型重用、实现重用以及逐步精化的迭代系统设计过程提供了很好的支持。
  AADL本身没有规定系统的集成技术,如操作系统、中间件应用程序接口、总线技术或拓扑,但是通过AADL构件及构件间的交互关系可以描述特定的体系结构拓扑。如文献[7]利用AADL强大的构造能力,提出了一种将应用程序和中间件统一建模的方法。
  除了图1所示的文本建模元素外,AADL还提供了一套对应的图形建模符号。除文本视图外,AADL提供了XML视图和图形视图两种等价视图。三视图的等价性,既满足了对体系结构建模的图形和文本需要,也满足了对模型一致性维护的要求。
  为了便于系统规模的控制和命名问题的解决,AADL还提供了包(package)的建模。AADL对建模元素扩展性的良好支持则是由Annex Library提供的。用户可以定义和使用新的属性和属性集,可以定义新的构件类型描述子句,从而使AADL不断扩展与完善。
  2 AADL在软件开发中的作用
  民航标准DO178B[8]将软件开发过程定义为软件需求过程、软件设计过程、软件编码过程和集成过程。另外,软件的验证过程要贯穿整个开发过程,对开发好的软件要进行配置管理,保证其正确运行。
  如图2所示,瀑布模型是一种典型的软件工程范型,它是一种文档驱动的开发方法,它将软件的开发过程划分为需求分析、软件设计、程序编写、软件测试和运行维护五个基本活动,并且规定了它们自上而下、相互衔接的次序,如同瀑布流水,逐级下落。其开发过程基本符合DO178B对软件开发过程的要求。本节以瀑布模型为例,分析AADL的形式化作用及其对工具的要求。
     该模型的优点是:为项目提供了按阶段划分的检查点; 阶段划分明确,当前一阶段完成并通过验证后,只需要去关注后续阶段。
  该模型也存在明显的缺点:阶段之间产生大量的文档,极大地增加了工作量; 早期的错误可能要等到开发后期的测试阶段才能发现,造成严重的后果,开发风险较大。
  若采用AADL进行体系结构的描述,则可以用系统体系结构的AADL模型来记录需求分析的结果,得到需求模型。随着系统详细设计的展开,通过对AADL模型的逐步精化,最终得到完整的体系结构设计模型,即设计模型。需求模型和设计模型可以分别作为传统意义上的概要设计和详细设计。设计结果由精确的AADL模型来描述,从而得到如图3所示的采用AADL的瀑布模型。
  与传统的瀑布模型相比,这种瀑布模型有以下优点:
  a)采用精确的形式化语法和语义描述需求分析结果和详细设计结果。从需求分析到详细设计的过程即体系结构的精化过程。
  b)AADL模型是结构化、形式化的,因此可以支持代码的自动生成和文档的自动生成。
  c)AADL模型的形式化,使得模型的验证过程可以采用采用形式化方法。
  该开发模型也隐含有以下需求:
  a)设计人员要熟悉AADL,并能熟练准确地使用AADL。
  b)在使用AADL的过程中,手动书写模型和模型验证与分析几乎是不可行的,因此需要建模工具、模型验证工具、自动化产生工具等一系列工具作为辅助。
  
  3 AADL工具集框架模型
  
  文献[6]指出了一些可能用到的AADL工具类型。结合文献[6],本章给出了一种详细的AADL工具集组成框架。图4为使用OSATE建模工具开发的该框架的AADL模型图。如图4所示,该框架用于支持从体系结构设计到代码和文档生成的开发过程。

[1] [2] [3]  下一页

Tags:

作者:宋翠叶 杜承烈 李 刚
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论