第1章 绪论 1
1.1 需求变化与技术发展 1
1.2 软件系统特征的变化 3
1.2.1 软件环境的变化 3
1.2.2 软件实体的变化 4
1.2.3 软件形态的变化 7
1.3 软件工程抽象和技术的发展 12
1.3.1 软件工程的基本思想 13
1.3.2 软件工程抽象和范型的发展 13
1.3.3 新颖的软件工程技术 17
1.4 软件工程面临的挑战 18
1.4.1 存在的问题 18
1.4.2 解决的方法 19
1.5 本章小结 19
1.6 本章导读 20
第2章 主体和多主体系统 21
2.1 多主体系统的产生和发展背景 21
2.2 主体概念 23
2.2.1 何为主体 24
2.2.2 主体示例 28
2.2.3 主体环境 30
2.3 多主体系统的概念 32
2.3.1 何为多主体系统 33
2.3.2 多主体系统的特点 33
2.3.3 多主体系统示例 35
2.4 多主体系统与其他系统的对比分析 38
2.4.1 多主体系统与面向对象系统 38
2.4.2 多主体系统与面向服务系统 41
2.5 本章小结 41
2.6 本章导读 42
第3章 面向主体软件工程 43
3.1 面向主体软件工程的产生与发展背景 43
3.2 面向主体软件工程的基本概念和思想 44
3.2.1 基本概念 44
3.2.2 思想与原则 46
3.2.3 软件开发过程 50
3.3 面向主体软件工程的研究与实践 53
3.4 应用情况 57
3.4.1 适用系统 57
3.4.2 应用领域 60
3.5 本章小结 62
3.6 本章导读 63
第4章 软件主体的体系结构及其设计 65
4.1 软件主体的设计与实现问题 65
4.2 软件主体的抽象体系结构 67
4.2.1 顶级抽象体系结构 68
4.2.2 纯反应式的抽象体系结构 70
4.2.3 具有感知部件的抽象体系结构 71
4.2.4 具有状态部件的抽象体系结构 73
4.3 软件主体的实现体系结构 75
4.3.1 知识型体系结构 76
4.3.2 反应型体系结构 83
4.3.3 认知型体系结构 89
4.3.4 混合型体系结构 100
4.4 本章小结 104
4.5 本章导读 105
第5章 多主体系统的交互模型及设计 106
5.1 多主体系统的设计与实现问题 106
5.2 主体间的结构相关性和行为相关性 108
5.3 主体间的交互与协同 112
5.3.1 多主体系统的协同模型 113
5.3.2 主体交互的言语行为理论 116
5.3.3 主体通信语言 117
5.3.4 KIF和本体论 119
5.3.5 主体交互的实现方式 120
5.4 主体通信语言KQML 122
5.4.1 KQML的语法 123
5.4.2 KQML的消息示例 126
5.4.3 KQML的语义 128
5.4.4 支持KQML交互的软件参考模型 130
5.5 主体通信语言FIPA ACL 132
5.5.1 FIPA ACL的语法 133
5.5.2 FIPA ACL的消息示例 135
5.5.3 FIPA ACL的语义 136
5.6 多主体系统的交互协议和协同模型 137
5.6.1 主体间的交互协议 137
5.6.2 合同网协同模型 139
5.6.3 请求服务协同模型 141
5.7 本章小结 150
5.8 本章导读 151
第6章 面向主体的分析和设计方法学 152
6.1 面向主体的分析和设计问题 152
6.1.1 分析、设计与建模 153
6.1.2 分析和设计方法学的组成 154
6.1.3 面向主体分析和设计的基本思想 155
6.2 面向主体分析与设计方法学的类别 157
6.3 面向主体分析和设计的元模型 160
6.3.1 Aalaadin的ARG模型 160
6.3.2 Gaia方法学的元模型 161
6.3.3 MESSAGE方法学的元模型 165
6.3.4 JamesOdell的元模型 166
6.3.5 INGENIAS方法学的元模型 169
6.4 MaSE方法学 170
6.4.1 概述 170
6.4.2 建模概念和元模型 172
6.4.3 建模活动和语言 173
6.4.4 分析和设计过程 176
6.4.5 支撑软件工具agentTool 186
6.5 ODAM方法 187
6.5.1 概述 187
6.5.2 建模概念和元模型 188
6.5.3 建模活动和语言 190
6.5.4 分析和设计过程 192
6.5.5 支撑软件工具ODAMTools 196
6.6 Tropos方法 198
6.6.1 概述 198
6.6.2 建模概念和元模型 199
6.6.3 建模活动和建模语言 202
6.6.4 分析和设计过程 204
6.6.5 支撑软件工具 216
6.7 面向主体的模型驱动开发 218
6.7.1 基本思想 218
6.7.2 SADE开发平台及其编程语言 219
6.7.3 模型转换技术 224
6.7.4 支撑软件工具 225
6.8 本章小结 227
6.9 本章导读 229
第7章 面向主体的建模语言 232
7.1 面向主体的建模及其语言设计问题 232
7.2 AUML 234
7.2.1 概况 234
7.2.2 AUML的主体交互协议模型 234
7.3 MAS-ML 240
7.3.1 概况 240
7.3.2 建模概念和元模型 240
7.3.3 模型与图 243
7.4 AML 247
7.4.1 概况 247
7.4.2 建模概念和元模型 248
7.4.3 模型与图 253
7.5 i*框架 256
7.5.1 概况 256
7.5.2 建模概念和元模型 257
7.5.3 模型与图 258
7.6 本章小结 261
7.7 本章导读 261
第8章 多主体系统的体系结构和设计模式 263
8.1 多主体系统体系结构的设计及模式重用问题 263
8.2 多主体系统的组织方式 267
8.3 多主体系统的体系结构风格 269
8.3.1 基于组织理论的体系结构风格 270
8.3.2 基于战略联盟的体系结构风格 272
8.4 多主体系统的设计模式 274
8.5 多主体系统设计模式的描述 279
8.6 本章小结 284
8.7 本章导读 285
第9章 面向主体的程序设计及其语言 286
9.1 面向主体的软件构造与实现问题 286
9.2 面向主体程序设计概述 287
9.2.1 面向主体程序设计的发展历程 287
9.2.2 面向主体程序设计的思想 289
9.2.3 面向主体程序设计的对象 290
9.3 面向主体程序设计的构成 292
9.3.1 面向主体程序设计的概念与模型 292
9.3.2 面向主体程序设计的机制与理论 296
9.3.3 面向主体程序设计的语言与设施 298
9.3.4 面向主体程序设计的工具与环境 301
9.4 具有代表性的面向主体程序设计语言 303
9.4.1 AGENT-0 303
9.4.2 Concurrent Metatem 315
9.4.3 JAL 323
9.5 面临的问题与挑战 340
9.6 本章小结 342
9.7 本章导读 343
第10章 多主体系统的软件开发框架与平台 344
10.1 JADE 344
10.1.1 JADE概述 344
10.1.2 程序模型 347
10.1.3 开发支持 348
10.1.4 运行支持 355
10.2 JADEX 358
10.2.1 JADEX概述 358
10.2.2 程序模型 358
10.2.3 开发支持 359
10.2.4 运行支持 361
10.3 JACK 363
10.3.1 JACK概述 363
10.3.2 程序模型 364
10.3.3 开发支持 366
10.3.4 运行支持 371
10.4 本章小结 372
10.5 本章导读 373
第11章 面临挑战与未来发展 374
11.1 存在的问题 375
11.2 未来的研究 377
11.3 本章小结 379
11.4 本章导读 380
参考文献 381
附录A 相关学术会议 397
附录B 相关学术期刊 398
附录C 相关学术组织和研究机构 399
附录D 表索引 400
附录E 图索引 402