rh嵌入式软件系统架构设计与构件化分析方法.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《rh嵌入式软件系统架构设计与构件化分析方法.doc》由会员分享,可在线阅读,更多相关《rh嵌入式软件系统架构设计与构件化分析方法.doc(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流rh嵌入式软件系统架构设计与构件化分析方法.精品文档.嵌入式软件系统架构设计与构件化分析方法一、摘要:5二、SAE AADL 概述52.1.构件抽象52.2.构架分析6三、AADL语言抽象83.1.构件83.2.构件类型93.3.包、属性集和附录10四、AADL系统模型和规范104.1.AADL文本规范114.2.图形化表示134.3.例子详述134.4.类型声明164.5.实现声明174.6.包声明194.7.属性集声明194.8.附录库声明194.9.命名空间204.10.部分规范204.11.扩展、重定义和部分规范20五、软件组件215
2、.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.属性345.4.4.约束345.5.子程序355.5.1.文本表示355.5.2.图形化表示365.5.3.属性385.5.4.约束39六、运行平台构件396.1.处理器406.1
3、.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.2.属性486.4.3.约束48七、系统结构与实例497.1.系统抽象497.1.1.原文和图解表示497.1.2.约束507.2.系统实例51八、组件相互作用538.1.端口538.1.1.端口声明538.1.2.端口连接548.1.3.在系统实例模型连接568.1.4.端口通信时序578.1.5
4、.即时和时延通信578.1.6.采样和下采样608.1.7.属性618.1.8.端口及端口连接约束628.2.端口组628.2.1.端口组及其类型声明628.2.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
5、.模式说明799.1.1.子构件和连接的模式结构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.属性类声明9411.5.属性名声明9511.6.属性常量声明96十二、组织说明9712.1.包9712.
6、2.设计模式9912.2.1.类扩充9912.2.2.实现改进10012.2.3.实现扩充10112.2.4.设计模式样例102附录105构件-子构件之间的关系105允许的特征105约束概要107已建立的属性类109AADL保留字110类扩充中的改进110实现声明中的改进111一、 摘要:2004年11月,美国汽车工程师协会(SAE)公布的航空航天标准AS5506被命名为结构分析与设计语言(AADL)。AADL是一种建模语言,其早期支持系统的体系结构架设和反复论证系统性能的关键属性,AADL是一个明确界定语义的框架工具,它包括软件抽象,计算硬件和系统组件,其指定和分析实时嵌入式系统及其高可靠性
7、。下述将对AADL语言的概念、结构以及应用进行介绍和说明。二、 SAE AADL 概述SAE的AADL为我们提供了形式化的概念。这些概念从组件及组件间的交互对一个应用系统的构架进行描述和分析。AADL建模过程包括将软件、硬件和系统构件进行抽象。这些抽象包括:1) 指定和分析实时嵌入式系统、复杂混合系统和具有专用性能特性系统;2) 软件与可计算硬件元素的对应关系。另外,AADL的有效性也体现在对基于模型分析和对复杂实时嵌入式系统建立规范的操作上。2.1. 构件抽象在AADL标准中,一个构件的特征包括:身份标识(一个唯一的名称和运行要素)、与其他构件的接口、固有性质(构件在其构架体系中的一些关键特
8、性),以及子构件及其交互关系。除了接口和内部结构元素之外,也可以给一个构件和系统构架定义其他的抽象模型。例如:可以被识别、能与特殊构件交互、互联及分析的抽象信息或控制流。这些添加进去的抽象模型元素可以通过AADL语言向用户提供的可补充附录规范加入到AADL的核心语义中。AADL构件抽象可以概括为以下三种类型:应用软件a) 线程:可以并发执行并可组合到线程组中;b) 线程组:抽象为一组线程、数据和线程组的集合;c) 进程:一块受保护的地址空间,它的范围在它自己运行时会被加强;d) 数据:文本中的数据类型和静态数据;e) 子程序:类似于调用返回值和方法调用的概念;执行平台(硬件)a) 处理器:调度
9、和执行线程;b) 内存:储存代码和数据;c) 设备:与外部环境进行交互的构件,比如传感器、制动器等等;d) 总线:连接处理器、内存和设备;复合系统a) 系统:将其它不同的构件集成到一起而形成一套结构,它同样也可包含其它的系统;系统的构件组成是多元的,可以包括其他系统以及软件或硬件构件。AADL中还有一个重要的特点就是实时数据交换,它包括以下几部分:l 消息传递l 事件传递l 对相同构件的同步访问l 线程调度协议l 实时性要求l 远程程序呼叫另外,实时系统结构的动态重配置可以使用操作状态和状态转移来实现。 2.2. 构架分析AADL可用于对已用系统进行建模与分析,并可以用于设计和集成新的系统。A
10、ADL可用于对不完全定义的构架模式进行分析(利用有限的构架细节),同时,也可以从源代码中提取整个系统的构架进行整体分析(依据完整的系统属性)。AADL支持系统的前期预测,并可以分析系统的关键特性,如性能、可调度性和可靠性。例如,在具体描述和分析可调度性能中,AADL提供对线程组件的支持。对这些线程的描述包括周期、非周期(事件驱动)、后台(一次调用并结束执行)和偶然(最大上限触发)事件。这些线程特性将当作线程声明的一部分来定义,并且可以随时分析和提取。在AADL语义中,包含了新的构件属性和其他模型元素的属性集是可以被接受或认可的。依赖AADL语言的扩展能力,更多的模型元素和属性也可以被包含进去。
11、例如,为了减轻马儿可夫或故障树方法对构架分析的难度,我们可以定义一个可靠模型,并定义组件属性的可靠附录。由此建立起的分析方法可以评估构架与特定可靠性要求的一致性程度。总的来说,AADL的这些属性和扩展功能使我们在构架设计中更好地结合入新的分析方法,并更多地关注对相关分析方法的研究工作中。这样的意义在于,分析方法有助于减轻我们在早期的开发或升级过程中对设计方案的比较、评估和选择。 AADL通过专有的接口定义来实现构件间的交互。一个构件的接口由以下具有方向性的流式构件组成: a) 无序状态数据的数据端口b) 队列信号数据的事件数据端口c) 异步事件的事件端口d) 同步函数调用e) 显式数据构件访问
12、构件间的交互是被明确规定的。例如,数据构件间通信是通过连接声明来规定的。这样可以更好地实现即时或延时通信控制。另外,这些连接语义确保了数据流转移的可确定性。这意味着一个线程总是以相同的时间延时来接收数据。如果数据流转移速度超出或未达到线程延时的时间,那么,线程也不会随着需要接收数据流的速度来调整自己的延时。应用构件具有各自的时间特性,例如周期、最坏执行时间、最长执行时间、空间请求、完成效率。同时,应用构件也具有数据和事件流的特性。因而,属性定义需要包括如下内容:a) 实现AADL模型上应用构件的源代码和数据b) 线程到处理器、源代码和数据存储的绑定约束以上约束可以限制应用构件绑定到特定的处理器
13、或者其他存储体类型(例如支持DSP功能的处理器)。同时,也预防了应用构件绑定到其他应用组件的储存单元,提供了容错的功能。三、 AADL语言抽象AADL的核心语义概念和关键规范元素如图3.1所示。在AADL中,构件通过类型和实现声明来定义。一个构件类型的声明定义了一个构件接口元素和外部显式属性(例如,与其他构件交互的接口特性、流式细节和内部属性值)。一个构件实现声明从子构件、子构件连接、子函数调用次序、模式、流式实现和属性这些方面定义了一个构件的内部结构。构件被分为应用软件、执行平台和复合类型。包将AADL元素组织入被命名的组合中。属性集和附录能够让设计者对语义进行扩展,并可以通过用户自定义的A
14、ADL规范来满足工程或者设计中的需求。3.1. 构件构件是AADL中最主要的模型关键字。构件被指定给一个专用的名称,并被声明为一个类型,在一个特殊的构件类别中实现。一个构件类别定义了一个构件的运行要素。构件类别被分成如下三个集合:1.应用软件a) 线程:一个并行执行的可调度单位b) 线程组:用于组织线程的合成单位c) 进程:一个受保护的地址空间d) 数据:源代码中的数据类型或静态数据e) 子函数:可顺序调用并执行的源代码2.执行平台a) 处理器:执行线程的构件b) 存储器:用于存储数据和代码的构件c) 设备:连接并表示外部环境的组件d) 总线:为执行平台组件间提供数据互访的组件3. 复合系统a
15、) 系统:软件、执行平台或者系统构件的复合在本文档的相应章节中,将会对每一个构件类别进行讨论。在4.1节中,将讨论AADL规范中的语法和语义声明。3.2. 构件类型一个AADL构件类型声明确立了组件可见的外部特征。例如,一个声明规定了一个线程构件的接口。一个构件类型声明由一个定义条款和描述子句组成,图3-2是一个线程的类型声明。a) Features 用于描述构件的接口。b) Flows 规定了不同的信息转移管道抽象 c) Properties 定义了一个构件的内在特性。以下是每一个构件类别的预定义属性。(如一个线程的执行时)一个构件类型的多种实现可以被认可。因为每一个实现都会提供一个组件的识
16、别。识别是通过满足接口特性的构件类别来完成的。因此,允许定义多个具有相同外部接口的构件模型。另外,一个组件的实现可以扩展和重定义其他事先声明过的构件实现方式。扩展实现(用extends子句声明)继承了上一级构件实现的特性和之前所有该实现的前驱。精化使得部分规范的构件实现(模版)趋于完整,扩展使得一个构件实现可以被动态的以一个普通构件的描述方式进行完善。另外,一个扩展实现声明可以向对应类型的规范添加入属性值。这些追加定义可以通过重定义类别子句来完成。构件分解通过在构件实现声明中的子构件声明来定义。一个子构件表示分解出的元素而分类器则表示在构件集中的一个选择。一个构件实例由一个示例构件的实现和示例
17、构件的每个子构件的递归来创建。3.3. 包、属性集和附录AADL包允许构件声明以各自独有的命名空间组织封装到分立单元中。具有普通特性的元素可以被封装到包定义中,并可以通过包的名称实现对包中元素的引用。包通过为不同的子系统元素组提供不同的命名空间以支持独立开发大规模系统中子系统的AADL模型。一个属性集是对一组属性的声明,这些属性声明定义了一些新的属性,并且属性类型可以被包含到一个规范中。例如,一个安全属性集可以包含数据库系统安全等级需求的定义。这些属性可以通过属性集名称来引用,并可以在系统规范中与其他构件或其他模型元素相关联。它们的声明和使用方式将成为规范的一部分。一个附录允许用户对AADL语
18、言进行扩展,允许在一个标准的AADL模型中加入专用的标记。例如,可以将一个能够解析系统临界特征的形式语言包含到AADL规范中。在文档的其他章节中将进一步详细描述这些元素。四、 AADL系统模型和规范AADL系统模型以软件构件、执行平台(硬件)构件和它们之间交互的方式,描述一个应用系统的架构和运行时环境。一个AADL模型是语法和语义正确的AADL声明规范,一个完整的AADL系统模型包括所有的规范描述的应用系统的运行实例(如航空飞行控制系统)声明。从用户的角度看,AADL规范和要素声明可以通过文本、图形、图形和文本的组合或者扩展标记语言(XML)来表达,AADL文本和图形符号是由SAE AADL标
19、志和它的扩展SAE 06a来定义的。XML文件格式通过扩展标记语言(XML)1.0(第三版)W3C 04。图4-1总结了AADL规范的描述格式,有示例的文本表示、图形化表示和XML表示。 图-1:AADL表示4.1. AADL文本规范本章节集中在可读性较强、符合AADL标准SAE 06aAADL文本(自然语言)规范,为了增强文本表示和图形化表示之间的关系和帮助读者形象化理解架构,图形化符号和文本表示一起也被包括了进来。关于AADL组成和声明图形化表示更详细的描述,请参考图形化标准。AADL主要声明如下表:表4-1.主要的AADL声明声明 描述构件类型:系统,进程,线程,线程组,数据,子程序处理
20、器,外设,存储器,总线构件类型声明确定了身份(构件类别和名字)和定义了构件类型的特征、流和属性。一个构件类型声明也可以声明另一个类型扩展的类型(extends)。构件实现:系统,进程,线程,线程组,数据,子程序处理器,外设,存储器,总线构件实现声明确定了身份(构件类别、类型和名字)和定义了一个构件实现的改进(refine子句)、子构件、调用、连接、流、模式和属性。身份必须包括一个已经定义的和构件类别一样的构件类型。构件实现声明也可以是另一个实现的扩展(extends子句)。端口组类型端口组类型声明确定了身份(名字)和定义了一组端口或者端口组的特征和属性。在特征声明里,一个端口组可能是另一个端口
21、组的反面,一个端口组类型声明也可能声明端口组是另一个端口组的扩展(extends)。包包声明确定了一些AADL声明的身份(名字),把这些AADL声明划分到私有的或者公有的区域和声明一个包的属性。包用来逻辑上组织AADL声明。AADL包中的AADL构件类型与实现、端口组声明可以被其他包中的声明引用。属性集属性集声明引入预定义的AADL属性集中没有包括的附加的属性、属性类型和属性常量,每一个属性集有一个唯一的全局名字和为它内部的每一项提供了一个唯一的命名空间。换句话说,定义在属性集里的属性类型通过属性集名字和条目名引用。附录库附录库声明确定了身份(名字)和定义了不是标准的AADL语言可重用的声明,
22、附录声明用来扩展AADL核心模型和分析性能。4.2. 图形化表示AADL图形化符号方便了系统的层次架构和通信拓扑可视化描述,提供了清楚的架构观点基础。AADL构件图形化符号元素如图4-2所示。字母形状的AADL图标( )被用来指示同统一建模语言(UML)图形符号相似,但是语义不同的语义。这个标号在图形符号里不是必须得,当同UML符号不同时,它可以被使用。其他的符号,例如圆,被用来描述构件属性(如线程的周期)。 图4-2 AADL图形化符号4.3. 例子详述表4-2包含了AADL文本表示的一个摘录和样例部分图形化表示,这个摘录简单的展示了构件类型、构件实现和子构件声明(仅有一些特征、流或者属性被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rh 嵌入式 软件 系统 架构 设计 构件 化分 方法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内