在设计关键任务和实时性系统时,设计师必须满足功能性要求和非功能性属性,如性能(吞吐量和服务质量)、保护、可靠性、时间紧迫性、安全和容错等,些系统级特性具体取决于系统架构。随着嵌入式软件系统的硬件多样性和复杂性的不断提高,可以采用模型驱动的开发方法来满足开发早期阶段出现的系统集成问题。基于模型的设计方法的要点之一要选择合适的设计语言来描述具体平台架构。
为了调整系统架构,设计语言必须支持多种分析方法以便进行跨领域的权衡,架构设计语言还必须支持开发过程中的增量分析以及用于系统评估的多级逼真度。这种增量特性允许架构规范在整个生命周期内都有效。
架构分析与设计语言(AADL)是一种可以满足这些要求的可扩展的标准架构描述语言。AADL适合具有挑战性资源约束(如尺寸、重量和功率)、严格实时要求和/或高性能保证等级的嵌入式系统使用,应用场合包括监控、航天、飞行管理、引擎和传动系统控制、医疗设备、工业工艺控制设备和航空等。
AADL是在际汽车工程师协会(SAE)的指导下开发的,已经于2004年11月被批准为工业标准AS5506。为了支持性能分析,AADL定义了时序语义(s
与SysML和UML等其他建模语言相比,AADL为标准的软硬件组件分类提供了强大的语义,这样常用分析方法和良好定义的系统集成就可以根据这些规范实施。专门为嵌入式系统设计的这种语言可以通过用户可定义属性(获得AADL编译器验证的属性子语言支持)和用户定义附录进行扩展。附录扩展经过标准化可供业界广泛使用。另外,在操作模式帮助下AADL还能支持系统动态建模。
AADL支持基于标准XML/XMI定义的模型交换和工具链接。AADL具有标准元模型(meta-model)、图形定义和文本语言属性。AADL UML 2.0规范已经开发成功,并已经开始进入投票阶段。ARINC 653架构的附录也已开始制订。有许多工具支持这种语言,其中有许多是开放源码的工具。开源AADL工具集环境(OSATE)是很重要的一个工具,它基于Eclipse框架,包含文本、XML和图形编辑器以及众多分析工具。这些工具都是开源Eclipse插件,可以进行扩展。
监控系统设计
在本例中让我们先看看用户的要求:用户想要安装一套监控系统来监视远离办公室的三所房屋,在这些位置没有现成的局域网,为了有效地阻止入侵者,检测过程必须快速,最好在2秒钟之内。这个延时标准是一种端到端的系统级性能要求。
一种解决方案是部署三个网络摄像机对这些房子进行监视。摄像机通过无线方式将信息发送到办公室的计算机。然而,无线通信的有限带宽无法适应全部视频流数据,因此我们需要在每个摄像机内嵌入一个视频处理器来对数据流进行压缩和预处理,但这样做会影响到端到端的延时。我们必须评估不同的硬件选择,例如视频处理器和无线芯片。我们也想尝试多种压缩和入侵检测算法,AADL能让我们集中精力满足系统性能要求,从而简化这一过程。
下一步是定义架构。AADL图形符号有助于实现这一过程,如图1所示。值得注意的是,该模型不是任意设计的,而是具有明确定义的正式模型,即使是在较高抽象层次。
图1:用于无线视频监控系统的一种AADL环境框图。
系统构造可以对整个系统和核心子系统(视频检测系统)建模。AADL设备构造可以描述物理组件,如视频摄像机和显示器,因为这些组件不需要捆绑应用软件。我们使用端口组和连接来模拟不同组件之间的通信。摄像机发送的数据流需要穿过视频检测系统。
图2:用于无线视频监控系统的初始AADL模型。
AADL通过利用层次化结构可以用不同的详细程度描述系统。图2显示了高层次的监控应用内容。在架构建立完成后,我们必须详细地定义不同的组件。在介绍详细设计之前,让我们先了解一下AADL中的基本单元,软件单元包括进程、线程、线程组、数据和子程序。它们分别定义为:
进程:受保护的地址空间
线程:一个并行执行单位
线程组:用于组织线程的复合单元
数据:数据类型和静态数据
子程序:可调用的连续可执行代码
在图2中,我们使用软件组件进程、数据、线程和系统组件对视频检测系统的逻辑进行建模。注意,这种模型只是比图1所示的内容向前迈出了一小步。
硬件组件(也称为平台种类)包括了处理器、存储器、总线和器件。在图3中(在AADL结构下方)你可以看到硬件组件的AADL标准图形描述,它们描述了系统的物理特性。在监控系统模型中,硬件平台由CPU(处理器)、存储器和总线确定。
&n
bsp;图3:带有硬件和软件的AADL系统。
组件抽象包括特性、属性和模式:特性定义了接口或输出组件功能;属性描述了特征和组件行为;模式描述了动态组件重配置。
组件之间的交互作用
在定义好组件后,我们需要确定它们之间的关系,AADL本身就支持这一过程。组件交互使用端口(数据和事件输入输出端口)、端口组、子组件(subcomponent)访问、子程序调用、数据交换和共享。它们定义了功能接口和组件之间的通信。在图2中,我们使用数据端口来描述系统与器件之间的交互。
AADL的一个关键特性是能对数据建模和流控制。流定义了通过多个组件和连接的顺序数据或事件。在本例中,我们为三台视频摄像机规定了三种视频流:video_flow1, video_flow2和video_flow3。这些视频流代表了从摄像机到显示器的端到端流动。
我们定义这些流是因为它们在位置上分开的。流规范的目标是支持端到端分析,例如端到端时序和延时,误码传播以及服务质量资源管理等。流的属性定义了性能特点,例如,在监控系统中,特殊流属性一般都会有最大的延时。我们需要检查实际实现情况来
AADL的一个强大特征是能够针对目标系统同时对硬件和软件建模,这有助于工程师规定和评估完整系统的交互效应。在本例中,视频摄像机、无线收发器和处理器的选择将直接影响端到端的延时。
完整的系统模型
图3给出了无线监控系统软硬件的AADL设计,系统利用无线设备提供的无线网络与摄像机通信。处理器按调度属性执行软件组件,并限定存储的存储器。协议反应总线的属性,并一直反馈到分析工具。可以定义像PCI或VME等不同的总线类型,包括这些标准的协议和性能特性。我们还可以定义定制无线链路,使它对CSMA/CA无线链路的特性建模。
因为我们使用时序语义和流程规范描述了关键性能特点之一,因此我们可以评估系统级性能。还可以逐渐增加其他结构细节或属性,以扩充我们定义关键内容时的分析形式。我们还能在所有开发阶段实施评估,包括早期结构权衡分析,开发阶段的系统修改和调整,评估现有架构变化带来的影响,以及根据性能模型的自动集成。这样我们就能使用基于组件的结构规范进行评估,并对每个可能的变化进行权衡。我们可以试验硬件和软件组件、通信模型、调度、误差建模、模式动态特性等,并进行结果整合。该语言还可扩展以集成其他建模和分析功能。
工具支持
许多工具支持AADL架构设计和分析。开源AADL工具环境(OSATE)是在开源Eclipse平台之上的一套插件,它提供了一个集成的开发环境用于AADL模型编辑、编译和前端分析。另外,它还包括了使用TOPCASED插件的AADL符号图形编辑器。目前已经开发成功多个分析插件用于执行各种架构的一致性检查、流程和可靠性分析、数据质量和安全分析以及资源调度。