第Ⅰ部分 概 念 3
第1章 总述 3
1.1 广泛的应用程序 3
1.2 并发系统 3
目录 3
1.3 实时系统 5
1.4 分布式应用程序 6
第2章 并发与实时系统的软件生命周期问题 8
2.1 概述 8
2.2 瀑布生命周期模型 8
2.3 瀑布模型的限制 11
2.5 使用增量式开发的演化原型法 12
2.4 抛弃式原型法 12
2.6 将抛弃式原型法与增量式开发结合起来 13
2.7 螺旋模型 13
2.8 设计确认和验证 14
第3章 软件设计概念 15
3.1 并发处理 15
3.2 并发处理的环境 18
3.3 并发处理的运行时支持 20
3.4 信息隐藏 23
3.5 面向对象的概念 25
3.6 有限状态机 28
4.1 概述 33
4.2 软件设计术语 33
第4章 软件设计方法概述 33
第Ⅱ部分 软件设计方法的研究 33
4.3 软件设计方法的演化 34
4.4 需求与设计之间的界限 36
4.5 选择软件设计方法的标准 37
4.6 选择方法的基本原理 37
4.7 并发与实时系统的软件设计策略 38
4.8 行驶监控系统的问题描述 39
第5章 实时系统的结构化分析与设计 42
5.1 概述 42
5.2 基本概念 43
5.3 表示法 43
5.4 使用方法的步骤 44
5.6 行驶监控系统案例研究 47
5.5 设计过程的成果 47
5.7 方法评估 63
5.8 扩展与变化 64
第6章 实时系统设计方法 65
6.1 概述 65
6.2 基本概念 65
6.3 表示法 66
6.4 使用方法的步骤 67
6.5 设计过程的成果 68
6.6 行驶监控系统案例研究 68
6.7 方法评估 73
6.8 扩展与变化 73
第7章 Jackson系统开发 75
7.1 概述 75
7.2 基本概念 75
7.3 表示法 76
7.4 使用方法的步骤 77
7.5 设计过程的成果 78
7.6 行驶监控系统案例研究 78
7.7 方法评估 85
7.8 扩展与变化 86
第8章 海军研究实验室软件成本降低方法 87
8.1 概述 87
8.2 基本概念 87
8.3 表示法 88
8.4 使用方法的步骤 88
8.5 设计过程的成果 90
8.6 行驶监控系统案例研究 90
8.7 方法评估 98
第9章 面向对象设计 100
9.1 概述 100
9.2 基本概念 100
9.3 表示法 101
9.4 使用方法的步骤 101
9.5 设计过程的成果 103
9.6 行驶监控系统案例研究 103
9.7 方法评估 109
9.8 扩展与变化 110
第10章 并发和实时软件设计方法的比较 111
10.1 概述 111
10.2 并发任务比较 111
10.3 信息隐藏和对象比较 113
10.4 有限状态机比较 114
10.5 时间约束 115
第11章 并发与实时系统软件设计性能分析 117
11.1 概述 117
11.2 性能模型 117
11.3 Petri网 120
11.4 实时调度理论 121
11.5 使用事件序列分析进行性能分析 133
11.6 使用实时调度理论和事件序列分析进行性能分析 133
第Ⅲ部分 ADARTS和CODARTS 137
第12章 ADARTS和CODARTS的概览 137
12.1 概述 137
12.2 ADARTS和CODARTS的起源 137
12.3 ADARTS和CODARTS的特性 138
12.4 ADARTS和CODARTS的概念基础 139
12.5 概念的集成 141
12.6 使用ADARTS的步骤 142
12.7 使用CODARTS的步骤 142
12.8 ADARTS和CODARTS表示法 143
第13章 并发与实时系统的分析与建模 149
13.1 概述 149
13.2 开发环境模型 150
13.3 系统分解为子系统 152
13.4 行为模型的表示法 159
13.5 问题域中的建模对象 164
13.6 问题域中的建模功能 168
13.7 行为分析 172
13.8 状态依赖行为分析的例子 174
13.10 非状态依赖行为分析的例子 180
13.9 非状态依赖行为分析 180
13.11 与其他方法的比较 182
第14章 任务结构化 184
14.1 概述 184
14.2 并发任务结构问题 185
14.3 任务结构分类 185
14.4 I/O任务结构标准 186
14.5 内部任务结构标准 190
14.6 任务内聚标准 194
14.7 任务优先级标准 202
14.8 开发任务构架 203
14.9 任务通信与同步 205
14.10 使用任务反向进行设计重构 214
14.11 任务行为规范 217
第15章 信息隐藏模块结构化 221
15.1 概述 221
15.2 信息隐藏模块结构分类 221
15.3 设备接口模块 222
15.4 行为隐藏模块 224
15.5 软件决策模块 228
15.6 信息隐藏模块聚合层次 228
15.7 设计中的继承 230
15.8 信息隐藏模块的非正式规范 231
第16章 任务和信息隐藏模块视图的集成 234
16.1 概述 234
16.2 异步设备I/O 234
16.3 轮询I/O 236
16.4 内部任务和模块 237
16.6 对模块同步访问的例子 239
16.5 对模块的并发访问 239
16.7 资源监视任务和设备接口模块的例子 243
16.8 软件构架图的任务行为规范 244
第17章 基于Ada的构架设计 246
17.1 将设计映射到目标系统环境 246
17.2 Ada支持任务 246
17.3 对数据存储的同步访问 247
17.4 消息通信 248
17.5 事件缓冲任务 251
17.6 其他支持任务 251
17.8 包装任务 252
17.9 Ada构架图的任务行为规范 252
17.7 定义任务入口 252
第18章 ADARTS和CODARTS中软件开发的后期阶段 255
18.1 定义组件接口 255
18.2 增量式开发 256
第19章 ADARTS和CODARTS设计的性能分析 258
19.1 概述 258
19.2 使用事件序列分析进行性能分析的例子 258
19.3 模拟建模 261
19.4 使用RTST进行性能分析的例子 262
19.5 使用RTST和事件序列分析进行性能分析的例子 264
19.6 设计重构 270
第20章 分布式应用程序的设计 271
20.1 概述 271
20.2 分布式处理的概念 271
20.3 设计分布式应用程序的步骤 274
20.4 系统分解 275
20.5 定义子系统接口 278
20.6 子系统分解为任务 281
20.7 服务器子系统的设计 281
20.8 系统配置 285
第21章 软件设计方法的发展趋势 287
21.1 折衷的设计方法 287
21.2 域分析和设计方法 287
21.3 CASE工具和软件开发环境 288
21.4 可执行规范与设计 288
21.5 实时设计的性能分析 288
21.6 基于知识技术的应用 289
21.7 正规方法的应用 289
22.1 开发环境和行为模型 293
第Ⅳ部分 案例研究 293
第22章 行驶监控系统案例研究 293
22.2 将系统构造成多个任务 305
22.3 将系统构造成多个模块 315
22.4 集成任务与模块视图 324
22.5 开发基于Ada的构架设计 328
22.6 定义系统子集 329
第23章 机器人控制器案例研究 332
23.1 概述 332
23.2 开发RTSA规范 334
23.3 将系统构造成多个任务 336
23.4 将系统构造成多个模块 342
23.5 集成任务与模块视图 343
23.7 机器人控制器系统中的实时调度 345
23.6 开发基于Ada的构架设计 345
第24章 电梯控制系统案例研究 351
24.1 概述 351
24.2 开发环境和行为模型 351
24.3 将系统构造成多个任务 358
24.4 将系统构造成多个模块 364
24.5 集成任务与模块视图 366
24.6 开发基于Ada的构架设计 366
24.7 分布式电梯控制系统 370
24.8 非分布式电梯控制系统的性能分析 376
24.9 分布式电梯控制系统的性能分析 382
第25章 分布式工厂自动化系统案例研究 387
25.1 工厂自动化系统问题描述 387
25.2 系统分解 388
25.3 系统构架 391
25.4 装配线工作站控制器子系统设计 394
25.5 警报处理子系统设计 398
25.6 系统配置 399
25.7 实时调度 400
附录 教学问题 402
A.1 先决条件 402
A.2 推荐作为理论课程 402
A.3 推荐作为进修课程 403
A.4 使用实例 403
A.5 设计练习 404
术语表 405
参考文献 417