AADL规范及其组成声明可以是文本、图形和XML
1. 主要的AADL声明
2.以一个非常简单的例子做一个分析
文本和图像的描述。
我们可以发现构建的通过组件类型和组件实现来定义。组件类型声明定义组件的接口元素和外部可观察的属性(指定与其他的构建交互的点的features,流规格和内部属性值)。 组件实现声明定义了组件的内部结构子组件,子组件连接,子程序调用顺序,模式,流实现和属性。也就是一个对外交互,一个是对内构建。
3.构建类的描述信息
组件类型声明建立身份(组件类别和名称)和定义组件类型的特征,流程和属性。 组件类型声明可能也将类型声明为另一个的扩展名类型(扩展)。
3.1features
是构件类型定义的一部分,用于描述构件的对外接口,主要包括 4 类:端口、子程序、参数以及子构件访问.端口用于定义构件之间的数据、事件交互接口,分为数据、事件、数据事件端口.
3.2flow
流的完整描述包括流规约(flow specification)和流实现(flow implementation).流规约在构件类型中定义,包含外部可见的源结点(flow source)、目标结点(flow sink)及路径(flow path),源结点和目标结点分别是构件的特征,路径则是构件中从一个特征到另一个特征的连接.流实现在构件实现中定义,包括构件中流路径的具体实现或整个系统的端到端流(end-to-end flow)定义.端到端流的描述可以用于支持端到端延迟分析和可靠性分析.
3.3properies
属性(property)用于描述体系结构中的约束条件,即非功能属性约束,进而支持验证与分析系统的可靠性、安全性、可调度性等性质,如子程序的执行时间、线程的周期、数据或事件端口的等待队列协议、安全层次等.AADL 提供了标准的属性集,用户也可以根据需要定义新的属性.属性和特征的区别在于,特征主要是描述构件功能接口,而属性则是描述系统非功能性质的约束.
3.4extends
继承另一个构建的类型。
进一步详细的说明构建类如何声明:
5.1端口的声明(features)
端口被声明为组件类型声明中的功能。 端口是定向的。 out port表示组件输出,in port表示组件输入。一个in out port表示映射到单个静态变量的组件的输入和输出.。一个in out data port既表示传入端口,也表示传出端口传出和传入的连接可以被做成不同的组件。
5.2流的声明(flows)
流动是定向的。 要指定一个完整的流程,在组件类型中声明需要实现。 对于组件类型,流量声明指定
source:组件的特征(features)
sink:组件的特征
flow path:通过组件从一个特征流到另一个特征
5.3属性的声明(properies)
属性容易理解:属性名,属性类型以及属性的取值
有关属性的声明如下。
属性关联:将值或值列表分配给命名属性
属性集:定义属性类型,名称和常量的命名集合 属性类型(第11.4节)定义了一个
属性类型:指定了该集合该类型属性的可接受值。
属性名称:通过声明一个名称来定义属性为属性键入,并将其应用于规范中的一个元素(即模式,端口组,流程,端口,服务器子程序或连接)。
属性常量:定义属性值的名称,可以在属性表达式中引用该值,而值本身是允许的。
属性名称,属性类型和属性常量声明必须包含在属性集声明中。
5.3.1属性关联(只介绍基本的属性关联)
可以通过属性关联为属性分配值或值列表声明。 属性值可以通过继承的值或引用元素中的元素的显式包含的属性关联,直接与各个组件声明中的属性相关联。 此外,属性关联可以被声明为具有模式或平台的特定的。
5.3.2属性类型声明
属性类型声明通过将标识符与其关联来定义属性类型
为该类财产确定一套合法价值。 声明包括
1。
属性类型的所需标识符
2。
一个冒号(:)
3。
保留字类型
4。
一个明确的类型定义
5。
终止分号(;)
属性类型声明的模式如下所示:
5.3.3属性名声明
属性名称声明通过声明一个名称来定义一个属性,标识一个类型
属性,并将属性应用于规范内的元素(即组件,模式,端口组,流程,端口,服务器子程序或连接)。 属性名称声明包括
1。
属性名称的所需标识符
2。
冒号(:)
3。
两个,两个或两个保留字(访问或继承)
4。
显式类型标识符
5。
保留字(适用于)
6。
财产所有者类别或保留字(全部)
7。
终止分号(;)
属性名称声明的模式如下所示:
5.3.4属性常数声明
属性常量是以符号名称所知的属性值。 属性常量在预先声明的属性集中提供,并且可以在命名的属性集中定义。 它们可以通过名称在属性表达式中引用,无论值本身是允许的。
以下是属性常量声明的基本声明表: