目录出版者的话专家指导委员会译者序译者简介序前言作者简介第一部分 基础知识第1章 对象及统一建模语言介绍 2
1.1 对象的优点 2
1.2 术语和概念 6
1.3 UML中的面向对象 6
1.3.1 对象 7
1.3.2 属性 11
1.3.3 行为 11
1.3.4 消息传递 13
1.3.6 并发 15
1.3.5 职责 15
1.3.7 自主机器式对象 16
1.4 类图 16
1.5 用例 24
1.6 顺序图 25
1.7 物理表示 26
1.8 图中常见的元素 27
1.8.1 注释 27
1.8.2 包 27
1.8.3 约束 28
1.8.4 构造型 29
1.9 小结 32
1.10 展望 33
1.11 练习 33
1.12 参考文献 34
第2章 实时系统的基本概念 35
2.1 什么是实时系统 35
2.2 术语和概念 35
2.3 守时性 37
2.4 响应 39
2.5.1 并发线程的调度 41
2.5 并发 41
2.5.2 事件到达模式 42
2.5.3 线程汇合点模式 43
2.5.4 资源共享 44
2.6 可预测性 45
2.7 正确性和健壮性 46
2.7.1 死锁 46
2.7.2 异常条件 48
2.7.3 竞争条件 49
2.8 分布式系统 50
2.12 实时操作系统 51
2.11 低层硬件接口 51
2.9 容错性和保险性 51
2.10 处理资源受限的目标环境 51
2.12.1 可伸缩性 52
2.12.2 调度 52
2.12.3 实时操作系统的典型特征 52
2.13 小结 58
2.14 展望 58
2.15 练习 59
2.16 参考文献 59
3.1.1 Therac-25故事 60
3.1.2 其他故事 60
第3章 保险性关键系统的基本概念 60
3.1 保险性引论 60
3.2 术语和概念 61
3.3 保险性相关故障 63
3.3.1 保险性是一个系统问题 64
3.3.2 随机故障与系统故障 64
3.3.3 单点失效 65
3.3.4 共态失效 66
3.3.6 失效-保险状态 68
3.3.7 实现保险性 68
3.3.5 潜在故障 68
3.4 保险性架构 70
3.4.1 单通道保护式设计 71
3.4.2 多通道表决模式 72
3.4.3 同构冗余模式 72
3.4.4 相异冗余模式 73
3.4.5 监视器-传动器模式 75
3.4.6 门禁模式 75
3.4.7 保险性执行体模式 76
3.5 实现保险性的八个步骤 77
3.5.1 第一步:辨别危害 78
3.5.2 第二步:确定风险 82
3.5.3 第三步:确定保险性措施 83
3.5.4 第四步:建立保险性需求 84
3.5.5 第五步:创建保险性设计 84
3.5.6 第六步:实现保险性 85
3.5.7 第七步:确立保险性过程 89
3.5.8 第八步:测试,测试,测试 89
3.6 一些保险性相关的标准 91
3.7 小结 92
3.8 展望 93
3.9 练习 93
3.10 参考文献 94
第4章 用于嵌入式系统的快速面向对象过程 96
4.1 引论 96
4.2 术语和概念 97
4.2.1 开发阶段 97
4.2.2 排序 98
4.2.3 成熟度 99
4.3 开发任务序列 99
4.3.1 瀑布生命周期 99
4.3.3 开发原型 100
4.3.2 迭代生命周期 100
4.4 进度安排与估计 102
4.4.1 精确的进度计划的好处 103
4.4.2 精确的进度计划的困难 104
4.5 ROPES宏周期 105
4.6 分析 108
4.6.1 需求分析 108
4.6.2 系统分析 112
4.6.3 对象分析 113
4.7 设计 115
4.7.1 架构设计 117
4.7.3 详细设计 118
4.7.2 机制设计 118
4.8 转化 - 119
4.8.1 活动 120
4.8.2 制品 120
4.9 测试 120
4.9.1 活动 121
4.9.2 制品 121
4.10 小结 122
4.11 展望 122
4.12 练习 122
4.13 参考文献 123
第二部分 分析第5章 实时系统的需求分析 126
5.1 引论 126
5.2 术语和概念 126
5.2.1 用例 126
5.2.2 消息和事件 127
5.2.3 场景、协议和状态机 129
5.3 用例 130
5.3.1 用例间的关系 131
5.3.2 用例实例:空中交通控制系统 132
5.4 外部事件 135
5.5.1 外部事件列表 136
5.5 指定外部消息 136
5.5.2 响应时间 137
5.6 用例行为详述 138
5.6.1 非形式文本描述 138
5.6.2 场景 139
5.6.3 顺序图 139
5.6.4 用状态图定义用例行为 141
5.7 确定用例 141
5.8 使用用例 143
5.9 制作好的需求分析图的启发式方法 143
5.9.3 用例顺序图的启发式方法 144
5.9.1 用例图的启发式方法 144
5.9.2 用例的启发式方法 144
5.10 小结 145
5.11 展望 145
5.12 练习 145
5.13 参考文献 145
第6章 结构对象分析 146
6.1 引论 146
6.2 术语和概念 146
6.3 对象识别的关键策略 147
6.3.1 在名词下划线 149
6.3.2 识别因果代理 151
6.3.3 识别内聚性服务 152
6.3.4 识别现实世界的元素 152
6.3.5 识别物理设备 152
6.3.6 识别域的基本抽象 152
6.3.7 识别事务 154
6.3.8 识别持久性信息 154
6.3.9 识别可视化元素 155
6.3.10 识别控制元素 156
6.3.11 执行对象模型中的场景 157
6.4 对象到类的具体化 159
6.5 识别对象关联 160
6.5.1 多重性 162
6.5.2 关联和链接 163
6.6 聚合与组合 163
6.7 对象属性 163
6.8 泛化关系 165
6.9 AATCS实例:类图 168
6.10 创建好的类图的启发式方法 171
6.11 小结 173
6.14 参考文献 174
6.12 展望 174
6.13 练习 174
第7章 行为对象分析 175
7.1 引论 175
7.2 术语和概念 175
7.2.1 简单行为 176
7.2.2 状态行为 176
7.2.3 连续行为 180
7.3 UML状态图 186
7.3.1 基本状态语义 186
7.3.2 转换和事件 188
7.3.3 动作和活动 189
7.3.4 伪状态 192
7.3.5 正交区与同步 193
7.3.6 基本状态图语法 194
7.3.7 继承状态模型 198
7.3.8 构造错误的状态模型 198
7.3.9 实例:AATCS报警系统 201
7.4 场景在行为定义中的角色 204
7.4.1 时序图 204
7.4.2 顺序图 206
7.4.3 活动图 207
7.5 定义操作 210
7.5.1 操作的类型 212
7.5.2 定义操作的策略 214
7.6 状态图的启发式原则 216
7.7 时序图的启发式原则 217
7.8 活动图的启发式原则 217
7.9 小结 218
7.10 展望 218
7.11 练习 218
7.12 参考文献 219
8.2 术语和概念 223
第三部分 设计第8章 架构设计 223
8.1 引论 223
8.3 任务分配模型 224
8.3.1 表示任务 224
8.3.2 定义任务线程 230
8.3.3 将对象指派给任务 233
8.3.4 定义任务汇合 234
8.4 构件模型 238
8.5 部署模型 242
8.5.1 在UML中表示物理架构 243
8.5.2 多处理器系统 244
8.6 保险性/可靠性模型 248
8.6.1 同构冗余模式 249
8.6.2 相异冗余模式 249
8.6.3 监视器-传动器模式 251
8.6.4 门禁模式 253
8.6.5 保险性执行体模式 254
8.7 小结 254
8.8 展望 255
8.9 练习 255
8.10 参考文献 256
9.1 引论 257
第9章 机制设计 257
9.2 术语和概念 261
9.3 机制设计模式 267
9.3.1 正确性模式 268
9.3.2 执行控制模式 273
9.4 小结 286
9.5 展望 287
9.6 练习 287
9.7 参考文献 287
10.2 术语和概念 288
10.1 详细设计引论 288
第10章 详细设计 288
10.3 数据结构 289
10.3.1 基本表示类型 289
10.3.2 子范围约束 292
10.3.3 派生属性 296
10.3.4 数据集结构 298
10.4 关联 299
10.5 对象接口 301
10.6 操作的定义 303
10.7 详细算法设计 303
10.7.1 在UML中表示算法 304
10.7.2 算法实例:运行时数据插值 305
10.8 异常 310
10.8.1 基于源语言的异常处理 312
10.8.2 基于状态的异常处理 316
10.9 小结 316
10.10 展望 317
10.11 练习 317
10.12 参考文献 318
11.2.1 基于时间的系统 320
11.2 术语和概念 320
11.1 引论 320
第四部分 高级实时对象建模第11章 线程与可调度性 320
11.2.2 反应式系统 321
11.2.3 时间概念 321
11.3 调度线程 329
11.3.1 速率单调调度 332
11.3.2 最早期限优先调度 333
11.3.3 最弱松弛动态调度 333
11.3.4 最高紧迫性优先调度 333
11.3.6 最小化最大迟滞调度 334
11.3.5 加权最短处理时间优先调度 334
11.4 线程同步与资源共享 335
11.4.1 互斥信号量 336
11.4.2 Dekker算法 337
11.4.3 自旋锁 339
11.4.4 计数信号量 339
11.4.5 条件变量 340
11.4.6 屏障 342
11.4.7 汇合对象 342
11.5 硬实时系统的可调度性分析 343
11.5.1 全局分析 343
11.5.2 带任务阻塞的全局方法 346
11.5.3 计算阻塞 347
11.5.4 分离任务效用边界 349
11.5.5 非周期性任务 350
11.6 软实时系统的可调度性分析 351
11.6.1 温和与模糊:软环境下的守时性 352
11.6.2 软可调度性 353
11.7 小结 354
11.8 展望 355
11.9 练习 356
11.10 参考文献 357
第12章 动态建模 358
12.1 引论 358
12.2 术语和概念 358
12.3 行为模式 365
12.3.1 锁存状态模式 366
12.3.2 轮询状态模式 367
12.3.3 锁存数据模式 369
12.3.4 设备方式状态模式 370
12.3.5 事务状态模式 371
12.3.6 构件同步状态模式 371
12.3.7 屏障状态模式 373
12.3.8 事件层次状态模式 374
12.3.9 随机状态模式 377
12.3.10 空状态模式 377
12.3.11 门禁状态模式 378
12.3.12 可再触发的计数器状态模式 379
12.4 模型层的调试与测试 380
12.4.1 动画调试 382
12.4.2 动画测试 384
12.4.3 调试会话实例 386
12.5 小结 390
12.6 展望 392
12.7 练习 392
12.8 参考文献 392
第13章 实时框架 393
13.1 引论 393
13.2 术语和概念 394
13.3 实时框架 395
13.3.1 架构支持模式 396
13.3.2 协作和分布模式 398
13.3.3 保险性和可靠性模式 402
13.3.4 行为模式 404
13.4 框架设计原理与度量 406
13.4.1 服务的集合 406
13.4.2 泛化层次结构 407
13.4.3 可替换构件 407
13.4.4 可移植性 408
13.4.5 命名和语法约定 408
13.4.6 性能 408
13.5 Rhapsody执行框架(OXF) 409
13.5.1 Rhapsody架构 409
13.5.2 执行框架 411
13.5.3 对象间关联模式 412
13.5.4 使用C++标准模板库 414
13.5.5 抽象操作系统 414
13.5.6 动画框架 415
13.6 Rhapsody OXF框架应用实例 415
13.7 小结 427
13.8 练习 427
13.9 参考文献 427
附录附录A UML符号表示总结 429
附录B Rhapsody:完全构造性的UML可视化编程工具 445
附录C TimeWiz:用于时序分析的集成工具 453