架构与构件描述规范0808.docx
- 文档编号:15126538
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:30
- 大小:117.55KB
架构与构件描述规范0808.docx
《架构与构件描述规范0808.docx》由会员分享,可在线阅读,更多相关《架构与构件描述规范0808.docx(30页珍藏版)》请在冰点文库上搜索。
架构与构件描述规范0808
架构与构件
描述规范
(DTESD_ADL)
一术语说明
接口:
是构件与外部的交互点,是构件外部可见行为的描述。
一个构件可以有多个不同类型的接口。
连接件:
表示了构件之间的交互,连接件用于在构件之间建立连接关系。
连接件有多种类型。
构件:
构件是系统中具有相对独立功能、可以明确辨识、接口契约指定、和语境有明显依赖关系、可独立部署、可组装的软件或硬件实体。
原子构件:
是构件的最小单位,期内不包含构件。
复合构件:
包含了构件的构件叫做复合构件。
软件构件:
指与硬件没有直接关系的构件。
硬件构件:
硬件构件与硬件直接相关,包括硬件实体以及驱动该硬件的软件驱动。
硬件构件在接口层进行封装之后可以看做是一个软件构件。
属性:
用于描述实体的描述性性质或特征,具有数据类型、域、默认值三种性质。
属性分为元数据属性、可信属性,以及硬件属性。
元数据属性:
描述实体的一般性性质或特征,比如,构件名,构件id,构件功能描述等等信息。
功能属性:
描述实体的功能方面的性质或特征。
非功能属性:
描述实体的非功能方面的性质或特征。
硬件属性:
用于描述硬件构件中硬件实体的性质或特征,包括相应硬件技术参数和技术制图。
二嵌入式构件模型及元素说明
通过对CBSE(基于构件的软件工程)方法的分析研究,结合嵌入式领域的特性,可以得出嵌入式构件模型如图2.1所示。
嵌入式构件包括接口、实现体、内部结构、属性包以及约束。
图2.1嵌入式软件构件模型
以下是对构件模型元素的详细说明。
1.构件
名称
构件
描述信息
构件可分为软件构件和硬件构件,是系统中具有相对独立功能、可以明确辨识、接口契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体。
软件构件是纯软件的,而硬件构件是直接与硬件相关的,它包括硬件本身以及驱动该硬件的驱动,硬件构件在接口层进行封装之后可以看作是软件构件。
使用说明
每个构件包括1到N个接口,构件与接口之间具有提供关系或请求关系,一个构件至少与一个接口有提供关系,以确保该构件具有相对独立的功能。
有时构件与具体硬件环境密切相关,那么构件可以表现为一个骨架的形式。
图形表示
属性
名称
名字
描述信息
对构件功能的抽象描述。
这类名词术语应尽可能采用公认或直观的词汇,以便于理解和交流
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
请求(Requires)
描述信息
表示构件向其他构件请求服务时要遵循的接口
目标端
接口
最小映射目标数目
0
最大映射目标数目
N
关联
名称
提供(Provides)
描述信息
表示某个接口被构件实现,即构件给其他构件提供的服务
目标端
接口
最小映射目标数目
1
最大映射目标数目
N
描述信息
表示某个接口被构件实现,即构件给其他构件提供的服务
目标端
约束
最小映射目标数目
0
最大映射目标数目
N
关联
名称
实现为(ImplementedBY)
描述信息
表示某个实现是这个构件的实现体
目标端
实现
最小映射目标数目
0
最大映射目标数目
N
关联
名称
具有(Has)
描述信息
表示某个构件所具有的内部结构
目标端
内部结构
最小映射目标数目
0
最大映射目标数目
N
关联
名称
具有(Has)
描述信息
表示某个构件所具有的属性包
目标端
属性包
最小映射目标数目
1
最大映射目标数目
N
关联
名称
满足(Satisfies)
描述信息
表示某个约束是构件必须满足的
目标端
约束
最小映射目标数目
0
最大映射目标数目
N
2.接口
名称
接口(Interface)
描述信息
接口是构件外部可见行为的描述
使用说明
接口是一组操作的集合
图形表示
属性
名称
名字(Name)
描述信息
对接口功能的抽象描述。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
包含(Has)
描述信息
表示某个操作属于该接口提供的功能
目标端
操作
最小映射目标数目
0
最大映射目标数目
N
关联
名称
提供(Provides)
描述信息
表示某个接口被构件实现,即构件给其他构件提供的服务
目标端
接口
最小映射目标数目
1
最大映射目标数目
N
3.操作
名称
操作(Operation)
描述信息
操作描述构件的一个服务,是对一个构件行为的抽象
使用说明
操作包含0到N个输入或输出参数以及0到N哥异常
属性
名称
名字(Name)
描述信息
对操作的抽象描述。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
异常(Exception)
描述信息
对操作中可能出现的异常状况的描述。
单值/多值
多
数据类型
字符串
必选/可选
可选
限制
无
关联
名称
输入(Inputs)
描述信息
表示某个参数是操作的输入。
目标端
参数
数据类型
字符串
最小映射目标数目
0
最大映射目标数目
N
关联
名称
输出(Outputs)
描述信息
表示某个参数是操作的输出。
目标端
参数
数据类型
字符串
最小映射目标数目
0
最大映射目标数目
N
4.参数
名称
参数(Parameter)
描述信息
对数据的抽象描述
使用说明
数据操作的输入输出
属性
名称
名字(Name)
描述信息
对参数所代表的数据的抽象描述。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
类型(Type)
描述信息
参数的数据类型。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
默认值(Default)
描述信息
参数的默认取值。
单值/多值
单
数据类型
与参数数据类型一致
必选/可选
可选
限制
无
最大映射目标数目
N
5.约束
名称
约束(Constraint)
描述信息
约束是构件及其内部元素必须满足的条件和限制
使用说明
一个约束可以同时作用于多个构件,一个构件也可同时满足多个约束
属性
名称
描述(Description)
描述信息
规定约束的内容,可以采用任何恰当的描述方式,如自然语言或形式化语言。
单值/多值
单
数据类型
Text
必选/可选
必选
限制
无
关联
名称
约束(Constraints)
描述信息
表示被约束的构件。
目标端
构件
最小映射目标数目
1
最大映射目标数目
N
6.实现体
名称
实现体(Implementation)
描述信息
指定一个构件的实现体
使用说明
只有对没有内部构件的构件,才能制定其实现。
一个实现可以同时实现多个构件,一个构件也可以有多个实现。
实现之间没有依赖关系,它们仅通过相应的构件接口间的连接进行交互。
图形表示
属性
名称
统一资源标识符(UniformResourceIdentifier,URI)
描述信息
实现体唯一的资源标识。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
实现(Implements)
描述信息
指定该实现体对应的构件。
目标端
构件
最小映射目标数目
1
最大映射目标数目
N
7.内部结构
名称
内部结构(InnerStructure)
描述信息
内部结构由一个或N个构件以及0到N个连接件组成
使用说明
对于构件的每个接口,其内部结构中必定存在一个构件的接口与其对应。
一个构件可以有0个、1个或多个内部结构。
关联
名称
包含(Has)
描述信息
表示某个构件是这个内部结构的组成部分
目标端
构件
最小映射目标数目
1
最大映射目标数目
N
关联
名称
包含(Has)
描述信息
表示某个连接是这个内部结构中两个构件之间的关联
目标端
连接件
最小映射目标数目
0
最大映射目标数目
N
8.连接件
名称
连接件(Connecter)
描述信息
连接表示了构件之间的组装关系
使用说明
一个连接将一个构件的提供接口和另一个构件的请求接口组装起来。
接口之间的语义匹配由连接类型指定,传输协议由协议指定。
两个接口之间可以同时通过多种协议连接。
图形表示
属性
名称
连接类型(ConnectionType)
描述信息
描述构件之间组装的规则。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
协议(Protocol)
描述信息
描述构件之间交互的协议。
单值/多值
多
数据类型
字符串
必选/可选
可选
限制
无
关联
名称
请求(Requires)
描述信息
指向提供服务的提供接口
目标端
接口
最小映射目标数目
1
最大映射目标数目
1
关联
名称
提供(Provides)
描述信息
指向提供服务的请求接口
目标端
接口
最小映射目标数目
1
最大映射目标数目
1
9.属性包
名称
属性包(PropertyBundles)
描述信息
属性包是用于全方位描述构件性质和特征
使用说明
属性包是一组属性的集合
图形表示
属性
名称
名字(Name)
描述信息
属性包的唯一标识。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
包含(Has)
描述信息
表示包含构件元数据的属性包
目标端
元数据属性包
最小映射目标数目
1
最大映射目标数目
1
关联
名称
包含(Has)
描述信息
表示包含构件可信属性的属性包
目标端
可信属性包
最小映射目标数目
1
最大映射目标数目
1
关联
名称
包含(Has)
描述信息
表示包含硬件构件的物理属性集合
目标端
物理属性包
最小映射目标数目
0
最大映射目标数目
1
10.可信属性包
名称
可信描述(TrustinessPropertyBundles)
描述信息
表明构件开发过程中可信需求阶段、设计阶段、开发实现阶段的可信证据及文档的规约统计表示。
使用说明
一个构件可能有多个不同的可信描述。
属性
名称
描述(Description)
描述信息
描述构件的可信性。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
具有(Has)
描述信息
表明该可信描述快具有的可信参数。
目标端
可信属数
最小映射目标数目
1
最大映射目标数目
N
11.可信属性
名称
可信属性(TrustinessProperty)
描述信息
表示反映构件可信性的某个方面,包括非功能属性描述和功能属性描述。
使用说明
某个可信属性包含一系列相应的可信证据
属性
名称
名字(Name)
描述信息
对某个可信属性的描述。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
具有(Has)
描述信息
表明该可信描述快具有的可信证据。
目标端
可信证据
最小映射目标数目
1
最大映射目标数目
N
12.可信证据
名称
可信证据(TrustinessEvidence)
描述信息
对可信属性的数据采集项。
使用说明
可信属性的数据反映。
一个可信属性可以有1到N个可行证据。
属性
名称
名字(Name)
描述信息
对可信证据所代表的数据的抽象描述。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
类型(Type)
描述信息
可信证据的数据类型。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
默认值(Default)
描述信息
可信证据的默认取值。
单值/多值
单
数据类型
与可信证据数据类型一致
必选/可选
可选
限制
无
最大映射目标数目
N
13.元数据属性包
名称
元数据属性包(MetaPropertyBundles)
描述信息
表明构件的基本属性,比如,构件名,构件id,构件功能描述等等信息。
使用说明
一个构件必定拥有一个元数据属性包。
属性
名称
名字(Name)
描述信息
描述元数据属性包的名字。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
具有(Has)
描述信息
表明该属性包具有的可信参数。
目标端
元数据属数
最小映射目标数目
1
最大映射目标数目
N
14.元数据属性
名称
元数据属性(MetaProperty)
描述信息
反映了构件的某个基本属性。
使用说明
代表构件的某个方面的性质。
属性
名称
名字(Name)
描述信息
构件的某个基本属性的名字。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
类型(Type)
描述信息
元数据属性类型。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
默认值(Default)
描述信息
元数据属性的默认取值。
单值/多值
单
数据类型
与元数据属性类型一致
必选/可选
可选
限制
无
最大映射目标数目
N
15.物理属性包
名称
物理属性包(PhysicalPropertyBundles)
描述信息
反映了硬件构件的物理特征和性质的属性包。
使用说明
只有硬件构件才有物理属性包。
属性
名称
名字(Name)
描述信息
描述物理属性包的名字。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
关联
名称
具有(Has)
描述信息
表明该硬件构件具有的物理参数。
目标端
物理属数
最小映射目标数目
1
最大映射目标数目
N
关联
名称
具有(Has)
描述信息
表明该硬件构件的技术制图。
目标端
技术制图
最小映射目标数目
1
最大映射目标数目
N
16.物理属性
名称
物理属性(PhysicalProperty)
描述信息
反映了硬件构件的某个方面的物理特征和性质。
使用说明
代表构件的某个方面的性质。
属性
名称
名字(Name)
描述信息
硬件构件的某个物理属性的名字。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
类型(Type)
描述信息
物理属性类型。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
默认值(Default)
描述信息
物理属性的默认取值。
单值/多值
单
数据类型
与物理属性类型一致
必选/可选
可选
限制
无
最大映射目标数目
N
17.技术制图
名称
技术制图(TechnicalDrawings)
描述信息
是硬件构件的原理和结构图。
使用说明
用于开发者详细了解硬件构件的技术制图。
属性
名称
名字(Name)
描述信息
硬件构件的技术制图的名字。
单值/多值
单
数据类型
字符串
必选/可选
必选
限制
无
属性
名称
类型(Type)
描述信息
技术制图类型。
单值/多值
单
数据类型
字符串
必选/可选
可选
限制
无
属性
名称
默认值(Default)
描述信息
硬件构件的技术制图,是某种类型的图形。
单值/多值
单
数据类型
与技术制图的类型一致
必选/可选
可选
限制
无
三嵌入式软件体系结构
在软件体系结构方面,若干学者提出了自己的概念与定义,我们深入研究具有代表性的定义,并分析其共同点。
然后,根据我们对嵌入式软件体系结构的理解,给出能够反映嵌入式软件体系结构(ESA)基本特征的定义如下:
ESA={components, connectors, configuration}
构件(component)包含软件构件和硬件构件,其中硬件构件在接口层进行封装之后可以看成是一个软件构件。
构件可以是一组代码,如程序的模块;也可以是一个独立的驱动,如呼吸机的电机驱动。
连接器(connector)表示构件之间的相互作用。
它可以是过程调用、管道、远程过程调用等。
一个软件体系结构还需要包含配置(configuration),用来将构件和连接件按照一定的约束条件与环境框架进行集成组装。
四嵌入式构件/构架元素描述语法
以下是嵌入式构件模型中元素的描述语法。
主要包括接口、连接件、原子构件和复合构件的描述。
1.接口声明(INTERFACE-DECLARATION)
InterfaceInterfaceTypeName{
ReturnTypeMethordName([ParameterTypeParameterName,]
*ParameterTypeParameterName);*
}
其中InterfaceTypeName是接口类型名,ReturnType是方法返回类型,MethordName是方法名,ParameterType是参数类型,ParameterName是参数名。
2.连接件声明(CONNECTER-DECLARATION)
ConnecterConnecterTypeName
{
Interfaces{
INTERFACE-DECLARATION;
INTERFACE-DECLARATION;*
}
Properties{
PROPERTY-DECLARATION;*
}
}
其中ConnecterTypeName是连接类型名,Interfaces表示接口集合,一个连接件至少包含两个接口,InterfaceTypeName是接口类型名,InterfaceInstance表示接口实例。
Properties表示属性结合,PROPERTY-DECLARATION表示属性声明。
连接件的属性申明中必须包括连接协议的声明。
3.构件(COMPONENT-DECLARATION)
ComponentComponentName{
INTERFACES{
INTERFACE-DECLARATION;*
}
CONTAINS{
[COMPONENT-DECLARATION;]*COMPONENT-DECLARATION;
}
CONNECTS{
[COMP-NAME.Interface=CONN-NAME.Interface;]*
}
PROPERTIES{
PROPERTY-DECLARATION;*
}
}
其中ComponentName是复合构件名,Interfaces表示接口集合,INTERFACE-DECLARATION表示接口声明,CONTAINS表示复合构件包含的子构件集合,COMPONENT-DECLARATION表示构件声明,CONNECTS表示构件之间的连接关系,构件的连接是通过接口实现的,首先构件的接口与连接件的一端接口相连,然后连接件的另一端接口与另外一个构件相连,从而建立构件与构件之间的连接关系,Properties表示属性结合,PROPERTY-DECLARATION表示属性声明。
属性声明中,包含构件图元建模过程中的可视化显示属性、构件内部实现的属性以及其他属性,可视化显示属性的声明符合属性声明语法,具体为:
Propertyvisualization:
display=path+”visualization.XML”;
即构件的可视化属性单独存放于visualization.XML文件中,path表示路径。
同样,构件内部实现的属性也遵循属性声明语法,形式为:
PropertyImplementation:
IEC=”IEC代码”;
或者
PropertyImplementation:
CFile=path+”code.c”;
即实现也可以形成单独的c文件存放。
也可以直接将代码写入Implementation实现中。
4.属性(PROPERTY-DECLARATION)
PropertyPROPERTY-NAME[:
TYPE-NAME]=PROPERTY-VALUE;
PROPERTY-NAME表示属性名,TYPE-NAME表示属性类型名,PROPERTY-VALUE表示属性值。
5.电机驱动实例
在嵌入式产品呼吸机领域,需要普遍用到电机驱动,其构件模型图如图4.1所示
图4.1电机驱动构件模型图及相关的领域变化性
电机驱动构件包含三个子构件,一个SPI驱动/PA驱动子构件,一个OPEN子构件,用于启动电机,一个CLOSE子构件,用于关闭电机,3个提供接口(初始化接口Init,动态选择接口Iswitch,ISPI/IDAoutput),一个选择(Switch)连接件SWITCH_OC,用于连接OPEN和CLOSE子构件。
当需要启动电机时,从Iswitch接口得到数据经SWITCH_OC连接件进行处理,再连接到构件OPEN的Iopen接口。
使用ADL描述如下:
InterfaceIDAoutput
{
voidDAoutput(uint16MotoValue,unsignedcharChannel_DAC);
}
InterfaceIopen{
Voidopen();
}
InterfaceIclose{
Voidclose();
}
Component电机驱动
{
Interfaces
{
InterfaceISpeed
{
VoidGet_Speed(uint16MotoValue);
}
InterfaceInit
{
VoidMotoInit(void);
}
InterfaceIswitch
{
BoolChannelMode(uint8select);
}
}
Contains
{
ComponentDA驱动;
ComponentOPEN;
ComponentCLOSE;
}
CONNECTS
{
电机驱动.ISpeed=DA驱动.IDAoutput;
电机驱动.Init=DA驱动.pDA_Init;
电机驱动.Iswitch=Open.close
}
Properties
{//path为文件存放路径
Propertyvisualization:
display=path+”visualization.XM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 架构 构件 描述 规范 0808