您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 体系统结构分析与设计语言AADL基础
AADL入门基础(姜泮昌)11概述2001.11,SAE提出航空标准AS5506,即AADL。支持对性能关键系统属性用可扩展的标记符、工具框架和精确定义的语义进行早期重复性的分析。AADL可以用于建模和分析正在使用中的系统,可以设计和集成系统。AADL可以用于部分定义模块的分析,也可以用于从源码中提取出来的完整系统的分析。AADL支持对性能关键系统质量(例如性能、可调度性和稳定性)的早期预测和分析。例如线程构件的属性中有周期性、非周期性、背景和分散事件的选项进行预声明,以此能够进行分析。Verification&validation检验和确认:软件测试过程中的两个步骤,检验软件是否正确,确认是在检验正确的基础上,确认是否是我们想要的。从用户角度来看,AADL可以有文本、图形、XML三种表示形式。如下图:AADL图形表示元素如下图(除此之外还有些附加符号没有列出,如圆圈等)AADL入门基础(姜泮昌)2一个典型的例子如下图(按照先文本后图形的经典模式):从这个例子可以看出以下几点:a.各构件的类型、实现标识符及格式。例如后加endb.对于某些子条款为空时,可以不写出来,也可以在后面加none,当然建议用前者c.Subcomponents的写法,前面可以起别名实现的子构件为实现(data除外,data实现的子构件可以是类型)。AADL入门基础(姜泮昌)3其对应的图形表示如下图:从上面可以看出以下几点:a.构件类型的框线细,构件实现的框线粗另外给出一个例子:从这个声明可以看出以下几点:a.extends的写法,后面加上类型或实现的标识(类型扩展类型,实现扩展实现)b.当扩展后,用refinedto对某些子条款重写。AADL构件通过定义接口来交互,是被精确指定的。例如数据通信通过连接声明来指定,可以是即时通信或者延迟通信。DARPA:美国国防部高级研究计划局AMCOM:美国陆军航空和导弹司令部2AADL组成元素AADL是支持文本和图形两种方式的建模语言,①可以用来描述软件构件映射到执行平台的系统的体系结构,以及构件间的功能性接口(如数据输入输出)和性能关键属性(如实时性);②也能用来描述构件间的交互方式,如数据输入输出的商品是如何被关联的以及软件构件是如何定位到执行平台构件;③通过提供模型运行模式以及模式之间的切换,AADL还能描述运行时体系结构的动态行为。AADL标准由文本和图形语言、XML/XMI交换格式、UML2.0轮廓和错误模型附件四部分组成。AADL中的构件类型与构件实现相当于面向对象中的类与对象。构件类型可以从四个方面描述:标识符(identifier)、特征(features)、流(flows)、属性(properties)。如下AADL入门基础(姜泮昌)4图:构件类型的构件又细分为三类:软件类(表示处理过的源文本/代码和执行路径)包括数据data、子程序subprogram、线程组threadgroup、线程thread、进程process;执行平台类(表示计算和连接的资源)包括存储器memory、设备device、处理器processor、总线bus;系统类包括系统system。它们的定义如下图:AADL规则要求软件构件必须通过binding关系映射到执行平台构件。通过binding定义了代码在哪执行,以及数据和可执行代码在哪存储。例如线程必须在进程或线程组内,进程必须在memory内。软件和执行平台构件的集合在分层系统结构建模中可以表示虚拟机层。2.1Bindings绑定(bindings):系统实现内部软件构件到硬件构件的映射(mapping),具体是指:threadbindstoprocessor;process,dataandportbindtomemory;connectionbindstobus.在Properies中声明绑定,内装属性有allowedbindings,actualbindings,availablememoryorprocessor等。2.2ProcessProcess表示受保护的地址空间,当外部构件访问进程内部元素时受保护,地址空间构件类型标识符特征流属性AADL入门基础(姜泮昌)5包括:与进程直接相关的可执行二进制图像(可执行代码和数据)、与进程子构件直接相关的可执行二进制图像、通过外部构件引用的服务子程序(可执行代码)。Process的属性可以说明:memory保护的执行时间、相关的源文件信息、源文件加载时间、调度协议、绑定约束。Process的约束如下图:从上面可以看出:a.实现才允许有子构件,且进程子构件只能有data、thread、threadgroup三种形式。Data作为子构件时,有实现则用实现,没实现则用类型。b.进程类型的特征可以有4种形式。c.进程实现不允许有子程序调用。2.3Thread线程表示从源码有序执行的并发可调度单位。多线程表示并发执行的路径。线程可以分配多个属性,包括定时(例如最坏执行时间)、分派协议(例如周期性、不定期性)、memory大小、处理器绑定。线程执行状态机如下图:AADL入门基础(姜泮昌)6从上图可以看出:a.圆角矩形表示一个或多个执行状态。椭圆表示非执行状态。有向弧表示转移,其中的小圆圈可以表示起始、终结、分叉和连接。b.线程执行状态:初始化、计算、恢复的入口点是预先声明的。c.线程出错后,源文本可以处理;如果源文本不处理,线程请求恢复以便于下次分派;如果错误是不可恢复的,则线程会以outeventdataport错误传送出去。线程属性可以对线程每个执行阶段进行详细描述。线程执行阶段有以下六个:初始化initialize、激活activate(在模式转换时恢复应用程序状态)、计算compute(表示在每次线程分派时被执行的代码)、恢复recover(允许线程执行故障恢复动作)、无效deactivate(在模式转换时允许动作保存应用程序状态)、终止finalize(因为进程终止或卸载时线程被终止)。每个执行阶段有executiontime和deadline。除此之外,线程属性还有分派协议Dispatch_Protocol,其可选项有定期的periodic(每隔一个周期线程重新分派)、不定期的aperiodic(事件触发线程的分派)、不定时的sporadic(在最小分派间隔内事件驱动线程的分派)、背景的background(分派后初始化执行直到完成)举例如下图(图中只列出了compute、initialize和dispatch_protocal,还有四个阶段没有列出):线程的约束如下图:从上面可以看出:线程实现的子构件只能是data,可以有子程序调用。线程必须被包含在进程或线程组中。AADL入门基础(姜泮昌)72.4Threadgroup线程组是为了逻辑组织线程、数据而出现的构件抽象。为在设计中关注点的分隔提供了基础,为许多线程及其相关数据的引用只需要定义一个引用接口。线程组的约束如下图:从上图可以看出:线程组的子构件可以是数据、线程、线程组,不允许有子程序调用。2.5DataData表示静态数据或数据类型,具体可以表示以下:应用程序的数据类型、在dataimplementation里面通过data子构件表示data的子结构、data实例(相当于实现)Datatype可用于定义与端口和参数(变量)有关的数据类型,用datatype已经足够,无需用dataimplementation(有实现用实现,没实现用类型即可)Datatype的属性可以表示data构件的源文本、相关数据类型的名字、相关静态数据变量的名字、数据大小、共享数据的并发访问协议。在属性中可以建模basetypes,例如:PropertiesBasetype=classifierBaseType::SignedInt16;Data的约束如下图:从上图可看出:data实现的子构件只能是data(当然没实现的时候可以用类型,有实现的时候必须用实现),不允许子程序调用。AADL入门基础(姜泮昌)82.6SubprogramSubprogram是可调用构件(参数可有可无),为调用构件提供服务功能或操作数据。可以用来表示data操作的一种方法调用、基本程序调用和顺序调用、远程服务/程序调用。这些调用包括数据转移(进或出)subprogram。变量以subprogram的属性的形式声明,为数据转移提供接口。例子如下图(表示data操作的方法调用):从上面可以看出:features中的subprogram必须为实现下面是一种表示程序调用的例子:AADL入门基础(姜泮昌)9从上面可以看出:a.线程实现calls的写法,加{}。与线程call子程序不同,data通过features调用子程序。(类型通过features调用子程序,实现通过calls调用子程序)b.图形中,features画在边框上,calls则画在内部。注意箭头指向:由内部指向接口Subprogram的属性可以对以下方面声明:为子程序的源文本声明、memory需求、memory绑定、与calls有关的特征Subprogram的约束如下图:AADL入门基础(姜泮昌)102.7ProcessorProcessor是负责调度和执行线程的硬件和相关软件的抽象。Processor的约束如下图:从上面可以看出:processor的子构件只能是memory,不能有子程序调用,没有连接。2.8MemoryMemory表示存储数据和代码的构件。可以是随机可访问物理存储(如RAM\ROM),也可以是永久存储(如disk)。Memory可以在processor内,也可以作为单独的执行平台构件,通过bus与processor连接。下面是一个例子:从上面可以看出:memory的features与软件的画法不同。Memory的属性包括:memory访问协议、wordsize、存储单元的其它重要描述特征、AADL入门基础(姜泮昌)11memory访问默认值(Memory_Protocol)是read-write,但是可以改成readonlyorwriteonly。Memory的约束如下图:同processor,memory子构件只能是memory,不能子程序调用,无连接。Memory的存在形式有两种:作为子构件、通过bus与processor连接。2.9BusBus表示连接processor和memory的构件。总线可以连接总线表示复杂内部网络通信。构件的连接要么通过bus连接,要么通过bus嵌入processor连接。举个例子:从上面可以看出:requiresbusaccess表示连接总线Bus的属性有:传送特性(如允许连接、连接协议、消息大小、传送时间、传送延时)、硬件源语言描述、数据移动时间特性(如移动一个字节或数据块的时间)。Bus的约束如下图:AADL入门基础(姜泮昌)122.10DeviceDevice表示与外部环境交互的实体。Devices经常有很复杂的行为,它们也许有内部processor、memory、software。Devices可能有自己的驱动软件,例如传感器、执行机构等。Device有复杂的连接方式,例如与processor通过bus连接,与软件构件通过logicalconnections连接。Devices可被认为以下几种:一个物理构件(通过ports与应用软件连接)、应用系统一部分(联系执行平台构件和应用系统)、被应用系统访问或控制的环境的部件。如下图:Device的复杂性和本质取决于它是怎样被包含在系统架构中的。如果device是作为执行平台系统的一部分,则对于应用系统有许多逻辑连接。如果device作为应用系统的一部分,则通过bus连接。Device的属性包括了软件和硬件共同的特性,软件属性:源代码文件、源代码语言、代码大小、执行平台绑定属性;执行平台(硬件)属性如硬件描述语言。Device的约束如下图:AADL入门基础(姜泮昌)132.11SystemSystem表示软件、硬件和系统构件的合成物。System
本文标题:体系统结构分析与设计语言AADL基础
链接地址:https://www.777doc.com/doc-5945786 .html