引言 1
第1部分 模型基工程与AADL 5
第1章 模型基软件系统工程 5
1.1 MBE和软件系统工程 5
1.1.1 MBE用于嵌入式实时系统 5
1.1.2 可分析的模型和MBE 6
1.1.3 MBE和AADL 8
1.2 AADL和其他建模语言 9
1.2.1 AADL、MDA和UML 10
1.2.2 AADL和SysML 11
第2章 使用SAE AADL进行工作 12
2.1 AADL模型 13
2.1.1 组件类别 13
2.1.2 语言的语法 14
2.1.3 AADL分类 14
2.1.4 AADL说明汇总 15
2.1.5 AADL模型的结构 17
2.2 系统规范和系统实例 18
2.2.1 组建系统实例模型 18
2.2.2 AADL文本域图形表示 18
2.2.3 分析模型 20
第3章 使用AADL建模和分析的基础 21
3.1 简单模型的开发 21
3.1.1 模型组件的定义 21
3.1.2 顶层模型的开发 24
3.1.3 控制软件的细节描述 25
3.1.4 添加硬件组件 27
3.1.5 物理连接的说明 28
3.1.6 软件对硬件的绑定 29
3.1.7 进行调度分析 30
3.1.8 综述 32
3.2 代码文件的表示 32
3.2.1 源代码和二进制文件的编写 33
3.2.2 变量名称文件的编写 34
3.2.3 源代码结构的建模 34
3.3 动态重构的建模 35
3.3.1 PBA模型的扩展 35
3.3.2 模式的规定 37
3.4 抽象流的建模与分析 38
3.4.1 流规范的规定 38
3.4.2 端对端流的规定 39
3.4.3 流分析 40
3.5 概念模型的开发 40
3.5.1 将抽象组件部署在PBA模型中 41
3.5.2 详细的抽象实现 43
3.5.3 变换为运行时表示 44
3.5.4 增加运行时属性 45
3.5.5 完善规范 47
3.6 利用组件模式开展的工作 48
3.6.1 组件库和参考体系结构 48
3.6.2 建立组件库 49
3.6.3 定义参考体系结构 51
3.6.4 使用参考体系结构 52
第4章 应用AADL能力 54
4.1 规定系统组成 54
4.1.1 组件分层 54
4.1.2 建模执行平台资源 55
4.1.3 执行平台通信支持 56
4.1.4 系统分层 56
4.1.5 建立系统实例模型 57
4.1.6 使用系统实例模型中的连接开展工作 57
4.1.7 使用系统实例模型开展工作 58
4.2 组件交互 59
4.2.1 数据和控制单向交换的建模 59
4.2.2 建模共享数据交换 60
4.2.3 建模局部服务请求或功能调用 61
4.2.4 建模远程服务请求或功能调用 62
4.2.5 建模面向对象的方法调用 64
4.2.6 建模子程序参数 66
4.2.7 与外部世界的接口 68
4.3 数据及其使用建模 68
4.3.1 定义一个简单的数据类型 68
4.3.2 表示数据类型的变型 69
4.3.3 数据类型详解 70
4.4 组织一个设计 71
4.4.1 软件包使用 71
4.4.2 开发替代的实现 73
4.4.3 定义多种扩展 74
第2部分 AADL的要素 79
第5章 定义AADL组件 79
5.1 组件名称 79
5.2 组件类别 79
5.3 说明组件类型 80
5.4 说明组件的外部接口 82
5.5 说明组件实现 84
5.6 汇总 87
第6章 软件组件 88
6.1 线程 88
6.1.1 表示 90
6.1.2 属性 90
6.1.3 限制 91
6.2 线程组 92
6.2.1 表示 92
6.2.2 属性 93
6.2.3 限制 93
6.3 进程 94
6.3.1 表示 94
6.3.2 属性 95
6.3.3 限制 95
6.4 数据 95
6.4.1 表示 96
6.4.2 属性 97
6.4.3 限制 97
6.5 子程序 98
6.5.1 表示 99
6.5.2 属性 99
6.5.3 限制 99
6.6 子程序组 100
6.6.1 表示 100
6.6.2 属性 101
6.6.3 限制 101
第7章 执行平台组件 102
7.1 处理器 102
7.1.1 表示 103
7.1.2 属性 103
7.1.3 限制 104
7.2 虚拟处理器 104
7.2.1 表示 104
7.2.2 属性 105
7.2.3 限制 105
7.3 存储器 106
7.3.1 表示 106
7.3.2 属性 107
7.3.3 限制 107
7.4 总线 108
7.4.1 表示 108
7.4.2 属性 109
7.4.3 限制 109
7.5 虚拟总线 109
7.5.1 表示 109
7.5.2 属性 110
7.5.3 限制 110
7.6 设备 110
7.6.1 表示 111
7.6.2 属性 112
7.6.3 限制 112
第8章 复合组件和通用组件 113
8.1 系统 113
8.1.1 表示 113
8.1.2 属性 114
8.1.3 限制 114
8.2 抽象 115
8.2.1 表示 115
8.2.2 属性 116
8.2.3 限制 116
第9章 静态和动态体系结构 118
9.1 分组件 118
9.1.1 说明分组件 118
9.1.2 使用分组件说明 119
9.1.3 作为阵列说明的分组件 120
9.2 模式 121
9.2.1 说明模式和模式转换 121
9.2.2 说明模态组件类型和实现 122
9.2.3 使用可选组件配置的模式 123
9.2.4 继承模式 125
9.2.5 模式特定的属性 127
9.2.6 调用序列的模态配置 127
第10章 组件交互 129
10.1 端口和连接 129
10.1.1 端口说明 129
10.1.2 端口与端口连接的说明 131
10.1.3 端口与端口连接的使用 131
10.1.4 端口与端口连接的限制 134
10.1.5 端口通信时序 136
10.1.6 数据流的采样处理 137
10.1.7 确定性采样 138
10.1.8 混合端口基和共享数据通信 141
10.1.9 端口与端口的连接属性 144
10.1.10 集合数据通信 144
10.2 数据访问和连接 146
10.3 总线访问和连接 148
10.4 特征组和连接 151
10.4.1 特征组类型说明 152
10.4.2 将特征组作为组件特征来说明 153
10.4.3 特征组连接说明 154
10.5 抽象特征和连接 157
10.5.1 抽象特征说明 157
10.5.2 抽象特征细化 158
10.6 阵列和连接 159
10.6.1 明确规定的阵列连接 159
10.6.2 阵列连接模式 160
10.6.3 使用阵列连接属性 161
10.7 子程序调用、访问和实例 162
10.7.1 说明调用和调用序列 163
10.7.2 将远程子程序调用作为绑定来说明 164
10.7.3 将远程子程序调用作为访问连接来说明 165
10.7.4 建模子程序实例 166
10.8 参数连接 168
10.8.1 参数说明 168
10.8.2 参数连接的说明 169
第11章 系统流与软件开发 171
11.1 流 171
11.1.1 流规范说明 171
11.1.2 流实现说明 173
11.1.3 端对端流说明 177
11.1.4 端对端流处理 178
11.2 软件与硬件的绑定 179
11.2.1 绑定属性的说明 179
11.2.2 处理器绑定 181
11.2.3 存储器绑定 181
11.2.4 连接绑定 181
11.2.5 远程子程序调用的绑定 182
第12章 组建模型 184
12.1 模型要素的命名和引用 184
12.1.1 软件包的命名和引用 184
12.1.2 分类符的命名和引用 184
12.1.3 对模型要素的引用 185
12.1.4 属性集的命名和引用 185
12.2 利用软件包组建模型 186
12.2.1 软件包说明 186
12.2.2 软件包中引用的要素 188
12.2.3 用于软件包和类型参考的别名 190
12.3 通过细化改进模型 191
12.3.1 分类符扩展说明 192
12.3.2 模型要素细化说明 192
12.3.3 用于细化的分类符替换规则 194
12.3.4 类别的细化 196
12.4 作为分类符参数的原型 197
12.4.1 原型说明 197
12.4.2 原型使用 199
12.4.3 提供原型实际 200
12.4.4 属性 202
第13章 注释模型 203
13.1 编写模型要素文件 203
13.1.1 评注并描述属性 203
13.1.2 空白组件段 204
13.2 使用属性 204
13.2.1 分配属性值 205
13.2.2 AADL属性类型和数值 206
13.2.3 确定属性值 208
13.2.4 包容属性关联 209
13.2.5 确定属性值:一个示例 210
第14章 扩展的语言 213
14.1 属性集 213
14.1.1 说明的属性集 213
14.1.2 属性集说明 214
14.1.3 属性定义 217
14.1.4 属性常数说明 219
14.2 附件子语言 219
14.2.1 附件库中说明的附件概念 220
14.2.2 分子句中使用的附件概念 221
第15章 创建和验证模型 222
15.1 模型创建 222
15.2 模型创建工具 223
15.3 系统验证和生成 224
15.4 系统验证和生成工具 225
附录A 语法和属性汇总 227
A.1 AADL语法 227
A.2 组件类型和实现要素 240
A.3 基本属性类型和类型构造器 245
A.4 AADL备用字 245
A.5 AADL属性 246
A.5.1 部署属性 246
A.5.2 线程相关属性 256
A.5.3 时序属性 260
A.5.4 通信属性 267
A.5.5 存储器相关属性 272
A.5.6 编程属性 276
A.5.7 建模属性 283
A.5.8 项目特定常数和属性类型 284
A.6 运行时服务 289
A.6.1 应用运行时服务 289
A.6.2 运行时执行服务 291
A.7 汽艇自动驾驶仪系统 294
A.7.1 描述 294
A.7.2 增强版PBA系统 295
A.7.3 PBA系统的AADL组件 295
A.7.4一个备选的AADL表示法 296
附录B 增补资源 297
B.1 系统体系结构建模 297
B.2 案例研究 298
附录C 参考文献 300