嵌入式软件系统架构设计与构件化分析方法_第1页
嵌入式软件系统架构设计与构件化分析方法_第2页
嵌入式软件系统架构设计与构件化分析方法_第3页
嵌入式软件系统架构设计与构件化分析方法_第4页
嵌入式软件系统架构设计与构件化分析方法_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式软件系统架构设计与构件化分析方法一、 摘要: . 5二、 SAE AADL 概述. 52.1. 构件抽象 . 52.2. 构架分析 . 6三、 AADL语言抽象 . 83.1.3.2.3.3. 构件 . 8 构件类型 . 9 包、属性集和附录 . 10四、 AADL系统模型和规范. 104.1. AADL文本规范.114.2.4.3.4.4.4.5.4.6.4.7.4.8. 图形化表示. 13 例子详述 . 13 类型声明 . 16 实现声明 . 17 包声明. 19 属性集声明. 19 附录库声明. 194.9. 命名空间 . 204.10. 部分规范. 204.11. 扩展、重定义和

2、部分规范. 20五、 软件组件. 215.1. 进程 . 215.1.1. 文本表示. 225.1.2. 图形化表示 . 235.1.3. 属性. 235.1.4. 约束. 245.2. 线程 . 245.2.1. 文本表示. 245.2.2. 图形化表示 . 255.2.3. 线程实施. 265.2.4. 属性. 275.2.5. 约束. 285.3. 线程组. 285.3.1. 文本表示. 285.3.2. 图形化表示 . 295.3.3. 属性. 305.3.4. 约束. 315.4. 数据 . 315.4.1. 文本表示. 325.4.2. 图形化表示 . 335.4.3. 属性. 3

3、45.4.4. 约束. 345.5. 子程序. 355.5.1. 文本表示. 355.5.2. 图形化表示 . 365.5.3. 属性. 385.5.4. 约束. 39六、 运行平台构件. 396.1. 处理器. 406.1.1. 文本和图形化描述. 416.1.2. 属性. 416.1.3. 约束. 426.2. 存储器. 426.2.1. 文本和图形化描述. 426.2.2. 属性. 436.2.3. 约束. 446.3. 总线 . 446.3.1. 文本和图形化描述. 446.3.2. 属性. 456.3.3. 约束. 456.4. 设备 . 466.4.1. 文本和图形化描述. 466

4、.4.2. 属性. 486.4.3. 约束. 48系统结构与实例 . 49系统抽象 . 497.1.1. 原文和图解表示 . 49 七、 7.1.7.1.2. 约束. 507.2. 系统实例 . 51八、 组件相互作用. 538.1. 端口 . 538.1.1. 端口声明. 538.1.2. 端口连接. 548.1.3. 在系统实例模型连接 . 568.1.4. 端口通信时序. 578.1.5. 即时和时延通信 . 578.1.6. 采样和下采样. 608.1.7. 属性. 618.1.8. 端口及端口连接约束 . 628.2. 端口组. 628.2.1. 端口组及其类型声明 . 628.2.

5、2. 端口组互联 . 648.2.3. 数据端口的聚合 . 658.2.4. 属性. 658.3. 子组件的访问 . 658.3.1. 数据访问声明. 668.3.2. 数据访问连接. 668.3.3. 总线访问及其连接. 688.4. 子程序调用. 718.4.1. 调用时序. 718.4.2. 远程调用. 728.4.3. 属性. 748.5. 子程序中的数据交换和共享 . 748.5.1. 数据值传递交换:参数和连接 . 758.5.2. 引用和全局变量的数据传输. 768.5.3. AADL方法调用 . 78九、 模式. 799.1. 模式说明 . 799.1.1. 子构件和连接的模式

6、结构 . 799.1.2. 调用序列的模式结构 . 829.1.3. 模式说明的属性 . 83十、 流 . 8310.1. 流声明 . 8310.2. 流路径 . 8410.2.1. 通过构件的流的路径 . 8410.2.2. 在构件中首尾相连的流 . 85十一、 属性 . 8611.1. 属性声明 . 8711.2. 属性赋值 . 8711.2.1. 基本的属性联合 . 8711.2.2. 包含的属性联合 . 8811.2.3. 继承的属性联合 . 9111.2.4. 模式或有约束力的属性联合 . 9111.2.5. 属性值 . 9211.3. 定义新的属性 . 9311.4. 属性类声明.

7、 9411.5. 属性名声明. 9511.6. 属性常量声明 . 96十二、 组织说明 . 9712.1. 包 . 9712.2. 设计模式. 9912.2.1. 类扩充 . 99 12.2.2. 实现改进 .100 12.2.3. 实现扩充 .101 12.2.4. 设计模式样例 .102 附录.105构件-子构件之间的关系 .105 允许的特征 .105约束概要.107 已建立的属性类 .109 AADL保留字. 110 类扩充中的改进 . 110 实现声明中的改进. 111一、 摘要:2004年11月,美国汽车工程师协会(SAE)公布的航空航天标准AS5506被命名为结构分析与设计语言(

8、AADL)。AADL是一种建模语言,其早期支持系统的体系结构架设和反复论证系统性能的关键属性,AADL是一个明确界定语义的框架工具,它包括软件抽象,计算硬件和系统组件,其指定和分析实时嵌入式系统及其高可靠性。下述将对AADL语言的概念、结构以及应用进行介绍和说明。二、 SAE AADL 概述SAE的AADL为我们提供了形式化的概念。这些概念从组件及组件间的交互对一个应用系统的构架进行描述和分析。AADL建模过程包括将软件、硬件和系统构件进行抽象。这些抽象包括:1) 指定和分析实时嵌入式系统、复杂混合系统和具有专用性能特性系统;2) 软件与可计算硬件元素的对应关系。另外,AADL的有效性也体现在

9、对基于模型分析和对复杂实时嵌入式系统建立规范的操作上。2.1. 构件抽象在AADL标准中,一个构件的特征包括:身份标识(一个唯一的名称和运行要素)、与其他构件的接口、固有性质(构件在其构架体系中的一些关键特性),以及子构件及其交互关系。除了接口和内部结构元素之外,也可以给一个构件和系统构架定义其他的抽象模型。例如:可以被识别、能与特殊构件交互、互联及分析的抽象信息或控制流。这些添加进去的抽象模型元素可以通过AADL语言向用户提供的可补充附录规范加入到AADL的核心语义中。AADL构件抽象可以概括为以下三种类型:应用软件a) 线程:可以并发执行并可组合到线程组中;b) 线程组:抽象为一组线程、数

10、据和线程组的集合;c) 进程:一块受保护的地址空间,它的范围在它自己运行时会被加强;d) 数据:文本中的数据类型和静态数据;e) 子程序:类似于调用返回值和方法调用的概念;执行平台(硬件)a) 处理器:调度和执行线程;b) 内存:储存代码和数据;c) 设备:与外部环境进行交互的构件,比如传感器、制动器等等;d) 总线:连接处理器、内存和设备;复合系统a) 系统:将其它不同的构件集成到一起而形成一套结构,它同样也可包含其它的系统;系统的构件组成是多元的,可以包括其他系统以及软件或硬件构件。AADL中还有一个重要的特点就是实时数据交换,它包括以下几部分:llllll 消息传递 事件传递 对相同构件

11、的同步访问 线程调度协议 实时性要求 远程程序呼叫另外,实时系统结构的动态重配置可以使用操作状态和状态转移来实现。2.2. 构架分析AADL可用于对已用系统进行建模与分析,并可以用于设计和集成新的系统。AADL可用于对不完全定义的构架模式进行分析(利用有限的构架细节),同时,也可以从源代码中提取整个系统的构架进行整体分析(依据完整的系统属性)。AADL支持系统的前期预测,并可以分析系统的关键特性,如性能、可调度性和可靠性。例如,在具体描述和分析可调度性能中,AADL提供对线程组件的支持。对这些线程的描述包括周期、非周期(事件驱动)、后台(一次调用并结束执行)和偶然(最大上限触发)事件。这些线程

12、特性将当作线程声明的一部分来定义,并且可以随时分析和提取。在AADL语义中,包含了新的构件属性和其他模型元素的属性集是可以被接受或认可的。依赖AADL语言的扩展能力,更多的模型元素和属性也可以被包含进去。例如,为了减轻马儿可夫或故障树方法对构架分析的难度,我们可以定义一个可靠模型,并定义组件属性的可靠附录。由此建立起的分析方法可以评估构架与特定可靠性要求的一致性程度。总的来说,AADL的这些属性和扩展功能使我们在构架设计中更好地结合入新的分析方法,并更多地关注对相关分析方法的研究工作中。这样的意义在于,分析方法有助于减轻我们在早期的开发或升级过程中对设计方案的比较、评估和选择。AADL通过专有

13、的接口定义来实现构件间的交互。一个构件的接口由以下具有方向性的流式构件组成:a) 无序状态数据的数据端口b) 队列信号数据的事件数据端口c) 异步事件的事件端口d) 同步函数调用e) 显式数据构件访问构件间的交互是被明确规定的。例如,数据构件间通信是通过连接声明来规定的。这样可以更好地实现即时或延时通信控制。另外,这些连接语义确保了数据流转移的可确定性。这意味着一个线程总是以相同的时间延时来接收数据。如果数据流转移速度超出或未达到线程延时的时间,那么,线程也不会随着需要接收数据流的速度来调整自己的延时。应用构件具有各自的时间特性,例如周期、最坏执行时间、最长执行时间、空间请求、完成效率。同时,

14、应用构件也具有数据和事件流的特性。因而,属性定义需要包括如下内容:a) 实现AADL模型上应用构件的源代码和数据b) 线程到处理器、源代码和数据存储的绑定约束以上约束可以限制应用构件绑定到特定的处理器或者其他存储体类型(例如支持DSP功能的处理器)。同时,也预防了应用构件绑定到其他应用组件的储存单元,提供了容错的功能。三、 AADL语言抽象AADL的核心语义概念和关键规范元素如图3.1所示。在AADL中,构件通过类型和实现声明来定义。一个构件类型的声明定义了一个构件接口元素和外部显式属性(例如,与其他构件交互的接口特性、流式细节和内部属性值)。一个构件实现声明从子构件、子构件连接、子函数调用次

15、序、模式、流式实现和属性这些方面定义了一个构件的内部结构。构件被分为应用软件、执行平台和复合类型。包将AADL元素组织入被命名的组合中。属性集和附录能够让设计者对语义进行扩展,并可以通过用户自定义的AADL规范来满足工程或者设计中的需求。3.1. 构件构件是AADL中最主要的模型关键字。构件被指定给一个专用的名称,并被声明为一个类型,在一个特殊的构件类别中实现。一个构件类别定义了一个构件的运行要素。构件类别被分成如下三个集合:1.应用软件a) 线程:一个并行执行的可调度单位b) 线程组:用于组织线程的合成单位c) 进程:一个受保护的地址空间d) 数据:源代码中的数据类型或静态数据e) 子函数:

16、可顺序调用并执行的源代码2.执行平台a) 处理器:执行线程的构件b) 存储器:用于存储数据和代码的构件c) 设备:连接并表示外部环境的组件d) 总线:为执行平台组件间提供数据互访的组件3. 复合系统a) 系统:软件、执行平台或者系统构件的复合在本文档的相应章节中,将会对每一个构件类别进行讨论。在4.1节中,将讨论AADL规范中的语法和语义声明。3.2. 构件类型一个AADL构件类型声明确立了组件可见的外部特征。例如,一个声明规定了一个线程构件的接口。一个构件类型声明由一个定义条款和描述子句组成,图3-2是一个线程的类型声明。a) Features 用于描述构件的接口。b) Flows 规定了不

17、同的信息转移管道抽象c) Properties 定义了一个构件的内在特性。以下是每一个构件类别的预定义属性。(如一个线程的执行时)一个构件类型的多种实现可以被认可。因为每一个实现都会提供一个组件的识别。识别是通过满足接口特性的构件类别来完成的。因此,允许定义多个具有相同外部接口的构件模型。另外,一个组件的实现可以扩展和重定义其他事先声明过的构件实现方式。扩展实现(用extends子句声明)继承了上一级构件实现的特性和之前所有该实现的前驱。精化使得部分规范的构件实现(模版)趋于完整,扩展使得一个构件实现可以被动态的以一个普通构件的描述方式进行完善。另外,一个扩展实现声明可以向对应类型的规范添加入

18、属性值。这些追加定义可以通过重定义类别子句来完成。构件分解通过在构件实现声明中的子构件声明来定义。一个子构件表示分解出的元素而分类器则表示在构件集中的一个选择。一个构件实例由一个示例构件的实现和示例构件的每个子构件的递归来创建。3.3. 包、属性集和附录AADL包允许构件声明以各自独有的命名空间组织封装到分立单元中。具有普通特性的元素可以被封装到包定义中,并可以通过包的名称实现对包中元素的引用。包通过为不同的子系统元素组提供不同的命名空间以支持独立开发大规模系统中子系统的AADL模型。一个属性集是对一组属性的声明,这些属性声明定义了一些新的属性,并且属性类型可以被包含到一个规范中。例如,一个安

19、全属性集可以包含数据库系统安全等级需求的定义。这些属性可以通过属性集名称来引用,并可以在系统规范中与其他构件或其他模型元素相关联。它们的声明和使用方式将成为规范的一部分。一个附录允许用户对AADL语言进行扩展,允许在一个标准的AADL模型中加入专用的标记。例如,可以将一个能够解析系统临界特征的形式语言包含到AADL规范中。在文档的其他章节中将进一步详细描述这些元素。四、 AADL系统模型和规范AADL系统模型以软件构件、执行平台(硬件)构件和它们之间交互的方式,描述一个应用系统的架构和运行时环境。一个AADL模型是语法和语义正确的AADL声明规范,一个完整的AADL系统模型包括所有的规范描述的

20、应用系统的运行实例(如航空飞行控制系统)声明。从用户的角度看,AADL规范和要素声明可以通过文本、图形、图形和文本的组合或者扩展标记语言(XML)来表达,AADL文本和图形符号是由SAE AADL标志和它的扩展SAE 06a来定义的。XML文件格式通过扩展标记语言(XML)1.0(第三版)W3C04。图4-1总结了AADL规范的描述格式,有示例的文本表示、图形化表示和XML表示。图-1:AADL表示4.1. AADL文本规范本章节集中在可读性较强、符合AADL标准SAE 06aAADL文本(自然语言)规范,为了增强文本表示和图形化表示之间的关系和帮助读者形象化理解架构,图形化符号和文本表示一起

21、也被包括了进来。关于AADL组成和声明图形化表示更详细的描述,请参考图形化标准。AADL主要声明如下表:表4-1.主要的AADL声明4.2. 图形化表示AADL图形化符号方便了系统的层次架构和通信拓扑可视化描述,提供了清楚的架构观点基础。AADL构件图形化符号元素如图4-2所示。字母形状的AADL图标( )被用来指示同统一建模语言(UML)图形符号相似,但是语义不同的语义。这个标号在图形符号里不是必须得,当同UML符号不同时,它可以被使用。其他的符号,例如圆,被用来描述构件属性(如线程的周期)。图4-2 AADL图形化符号4.3. 例子详述表4-2包含了AADL文本表示的一个摘录和样例部分图形化表示,这个摘录简单的展示了构件类型、构件实现和子构件声明(仅有一些特征、流或者属性被声明),而且描述了本文档其他例子遵循方式。在这个例子里,相关的类型和实现声明被集合在一起。在AADL规格中,单独的声明可以被任意顺序的组织,例如,一个接口之一为特定端口组构件类型声明,可以在端口组类型声明之前声明。一个组织可能包括所以的类型声明。而且,表4-2总所有的或者一些声明可以使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论