理论篇 3
第1章 软件工程新技术 3
1.1 新的构建技术 3
1.2 新的软件形态 4
1.3 新的开发工具 4
1.4 大规模的应用 5
第2章 软件体系结构 8
2.1 软件体系结构的形成 8
2.1.1 无体系结构阶段 8
2.1.2 萌芽阶段 8
2.1.3 初级阶段 9
2.1.4 高级阶段 9
2.2 软件体系结构的概念 10
2.3 软件体系结构的要素 10
2.3.1 构件 11
2.3.2 连接件 13
2.3.3 约束 14
2.4 软件体系结构的作用 15
2.5 软件体系结构描述语言 16
2.5.1 ACME 16
2.5.2 Wright 21
2.5.3 C2 24
2.5.4 UniCon 24
2.5.5 其他比较有影响的ADL 27
2.5.6 ADL分类与比较框架 33
2.5.7 ADL之间的比较 37
2.6 软件体系结构描述方法 40
2.7 软件体系结构风格 42
2.7.1 软件体系结构风格的概念 42
2.7.2 软件体系结构风格的研究内容 43
2.7.3 几种常见的软件体系结构风格 45
2.7.4 新的软件体系结构风格的提出 49
2.7.5 讨论软件体系结构风格时常见的问题 50
2.8 软件体系结构评估 50
2.8.1 软件体系结构评估的目的 50
2.8.2 软件体系结构评估的方法与工具 51
2.8.3 软件体系结构评估存在的问题 55
2.9 基于体系结构的软件开发过程 56
2.10 Windows体系结构介绍 62
2.10.1 Windows系统的发展历史 62
2.10.2 Windows系统的描述语言 68
2.10.3 Windows NT体系结构简介 68
思考题 73
第3章 中间件技术 74
3.1 中间件技术的形成 74
3.2 中间件的基本概念 75
3.2.1 中间件的定义 75
3.2.2 中间件的分类 75
3.2.3 中间件的新类型 78
3.2.4 中间件的作用 78
3.2.5 中间件面临的问题 78
3.3 典型中间件 79
3.3.1 消息中间件 79
3.3.2 交易中间件 83
3.3.3 对象中间件 88
3.3.4 应用服务器 92
3.3.5 安全中间件 95
3.4 基于中间件的应用开发 97
3.4.1 中间件基础技术 97
3.4.2 基于中间件的软件开发过程 99
3.5 中间件的现状 99
3.6 中间件的发展趋势 101
思考题 103
第4章 在线演化技术 104
4.1 软件演化的产生 104
4.2 软件演化理论 105
4.2.1 演化与维护的关系 105
4.2.2 软件演化的分类 106
4.3 构件运算的概念及其性质 106
4.3.1 构件与软件复用 106
4.3.2 构件软件系统的抽象描述 107
4.3.3 构件运算的性质 111
4.3.4 构件运算的完整性证明 113
4.4 软件演化方法 115
4.4.1 基于构件运算的软件演化 115
4.4.2 基于体系结构的软件演化 119
4.4.3 软件演化的核心算法 119
4.4.4 构件运算表达式的体系结构化 121
4.5 基于构件的软件在线演化实现 122
4.5.1 基于构件的演化信息的捕获方法 122
4.5.2 基于构件的软件在线演化框架实现 125
4.6 软件演化研究现状 132
思考题 133
第5章 网构软件 134
5.1 网构软件的产生 134
5.2 网构软件的特征 134
5.3 基于开放软件模型的网构软件模型 135
5.3.1 开放软件模型 135
5.3.2 网构软件模型 137
5.3.3 网构软件中间件 139
5.3.4 网构软件按需协同的实现模型 140
5.4 基于Agent的网构软件模型 140
5.4.1 开发协同模型框架的设计途径 141
5.4.2 基于移动Agent的协同程序设计技术 143
5.4.3 多模式交互机制及基于Agent中间件模型 146
5.4.4 面向体系结构的协同程序设计方法 149
5.5 以体系结构为中心的网构软件开发方法 151
5.5.1 ABC方法概览 154
5.5.2 基于特征的网构软件需求建模 156
5.5.3 基于体系结构的网构软件自适应性建模 160
5.6 网构软件的实现和测试方法的研究 163
5.6.1 网构软件 163
5.6.2 软件测试 165
5.7 网构软件带来的挑战 167
思考题 169
第6章 仿生学 170
6.1 仿生学的定义及意义 170
6.1.1 仿生学的定义 170
6.1.2 仿生学的意义 170
6.2 仿生学的现状及前景 171
6.2.1 仿生学的现状 171
6.2.2 仿生学的前景 174
6.3 仿生学的学科特征及研究方法 174
6.3.1 仿生学的学科特征 174
6.3.2 仿生学的研究方法 176
6.4 仿生学在计算机领域的应用 177
6.4.1 计算机结构的仿生特性 177
6.4.2 软件的仿生学生产方法 179
思考题 181
第7章 面向Agent的软件工程 182
7.1 面向Agent的技术 182
7.1.1 Agent的基本概念 183
7.1.2 Agent的体系架构 184
7.1.3 Agent的组织类型 185
7.1.4 Agent与组件的对比 186
7.1.5 语义复用的Agent和组件 188
7.2 面向Agent的软件工程 190
7.2.1 面向Agent的研究内容 190
7.2.2 面向Agent的开发过程 192
7.3 面向Agent的经典开发方法 194
7.3.1 Gaia方法 194
7.3.2 Tropos方法 195
7.3.3 MASE方法 196
7.4 按需定制的开发框架HDA 199
7.4.1 HDA的定义 200
7.4.2 HDA的使用规则 200
7.4.3 元模型 201
7.4.4 潜在的问题 202
7.4.5 Agent建模阶段 203
7.5 多Agent系统的基础设施 204
7.5.1 MAS的基础设施 205
7.5.2 基础设施的授权与协调 205
7.5.3 授权型基础设施JADE 206
7.5.4 MAS的协调基础设施 209
7.5.5 协调对MAS工程化的影响 210
7.5.6 MAS协调的行为理论框架 210
7.5.7 制品与协调基础设施 212
7.5.8 MAS工程中的协调平衡 212
思考题 213
第8章 面向服务架构技术 215
8.1 面向服务体系架构的产生 215
8.1.1 传统的软件体系结构 215
8.1.2 基于组件的软件体系结构 216
8.1.3 面向服务体系阶段 216
8.2 SOA的基本概念 218
8.2.1 SOA的定义 218
8.2.2 SOA的架构 219
8.2.3 SOA的优点 221
8.3 支持SOA的Web Service技术 222
8.3.1 SOA的基本原则 222
8.3.2 基于SOA的解决方案 223
8.3.3 Web Service技术 225
8.3.4 SOA架构的不足 227
8.4 适于SOA的建模方法 228
8.4.1 MDA 228
8.4.2 敏捷方法 229
8.4.3 SOA的五视图法 230
8.5 基于SOA架构的软件开发方法 231
8.5.1 面向服务的架构 231
8.5.2 基于SOA架构技术的优势 232
8.5.3 SOA应用的构建步骤 235
8.5.4 SOAD与传统软件开发的区别 235
8.6 基于SOA架构的ERP系统 236
8.6.1 SOA在ERP中的应用 236
8.6.2 基于SOA的ERP系统总体设计 237
8.6.3 基于SOA的ERP系统架构 238
思考题 239
第9章 柔性工作流 240
9.1 柔性工作流的概念 240
9.1.1 工作流的定义 240
9.1.2 工作流的要素 240
9.1.3 柔性工作流的概念 241
9.2 工作流管理系统的参考模型 242
9.2.1 工作流管理系统概述 242
9.2.2 工作流管理系统的参考模型 243
9.2.3 工作流管理系统的体系结构 244
9.3 柔性工作流的描述 247
9.3.1 柔性工作流模型的组成 247
9.3.2 柔性工作流模型的形式化描述 248
9.3.3 基于XML的组件式柔性工作流模型描述 248
9.4 柔性工作流的建模 249
9.4.1 基本模型单元 249
9.4.2 模型扩展属性 251
9.4.3 运行时的动态支持 252
9.4.4 工作流角色 253
9.4.5 柔性工作流引擎框架 254
9.5 柔性工作流的应用 255
9.5.1 柔性工作流应用的必要性 255
9.5.2 柔性工作流实现的技术 255
9.5.3 柔性化应用系统的特征 256
思考题 257
第10章 统一建模语言 258
10.1 UML概述 258
10.1.1 UML产生的背景 258
10.1.2 UML定义 259
10.2 UML的研究内容 260
10.2.1 UML语言的定义 260
10.2.2 UML的图形表示法 260
10.3 UML建模 264
10.3.1 UML建模过程 264
10.3.2 UML在RUP中的应用 265
10.4 基于UML的集成化CASE平台的模仿设计 265
10.4.1 CASE的起源和发展 266
10.4.2 集成CASE环境 268
10.4.3 参考模型——Rational Rose 269
10.4.4 模型检查 271
10.4.5 平台的设计原则 272
10.4.6 平台设计的关键技术 274
10.4.7 平台的功能设计 277
10.4.8 平台的具体实现 279
思考题 285
第11章 云计算 287
11.1 云计算的基本概念和主要特征 287
11.1.1 云计算的基本概念 287
11.1.2 云计算的主要特征 288
11.1.3 云计算的分类 290
11.1.4 云计算与网格计算 291
11.1.5 云计算的现状和发展趋势 294
11.2 云计算的原理与关键技术 296
11.2.1 云计算的原理 296
11.2.2 云计算的实现机制 297
11.2.3 Google云计算技术 298
11.3 云计算与移动Internet 320
11.3.1 移动Internet的发展概况 320
11.3.2 云计算助力移动Internet发展 321
11.3.3 移动Internet的“端”—“管”—“云” 322
11.4 云计算与物联网 324
11.4.1 物联网的定义 324
11.4.2 物联网的三大特征 325
11.4.3 物联网的前景 325
11.4.4 物联网的关键技术 326
11.4.5 物联网云计算 326
11.4.6 物联网云计算运营平台的构建 328
思考题 330
实验篇 333
第12章 用VB实现的UDP通信 333
12.1 网络开发基本概念 333
12.1.1 TCP/IP协议体系 333
12.1.2 网络编程术语 334
12.1.3 Socket介绍 335
12.2 Socket网络编程原理 335
12.2.1 面向连接的套接字的编程模式 335
12.2.2 无连接协议的套接字的编程模式 336
12.3 用VB实现的UDP编程方式 337
12.3.1 WinSock控件的使用 337
12.3.2 WinSock API的使用 338
12.3.3 总结比较 343
12.4 在VB下使用WinSock控件开发UDP聊天室 344
第13章 WindowsAPI函数 347
13.1 Windows API简介 347
13.2 API函数分组 347
13.3 传统类库、控件在软件开发中的不足 348
13.4 在VB中调用API函数 348
第14章 端口的禁用 350
14.1 端口的定义 350
14.2 端口的分类 350
14.3 常用的端口 351
14.4 常被黑客利用的端口 352
14.5 端口的禁用 353
第15章 用VB写DLL文件 359
15.1 DLL的简单介绍 359
15.2 用VB做一个DLL文件 359
15.3 对ActiveX DLL的测试 360
15.3.1 在VB上的测试 360
15.3.2 在VC上的测试 361
15.3.3 注意事项 362
第16章 用VB写OCX控件 363
16.1 OCX控件的介绍 363
16.2 用VB做一个OCX控件 363
16.3 对OCX控件的测试 364
16.3.1 在VB上的测试 364
16.3.2 在VC上的测试 365
16.3.3 注意事项 367
第17章 COM、COM+、DCOM 368
17.1 COM 368
17.1.1 COM组件的特点 368
17.1.2 COM接口和组件类型 369
17.1.3 COM组件的设计和应用 370
17.2 COM+ 376
17.2.1 COM+简介 376
17.2.2 COM+的特点 376
17.3 DCOM 377
17.3.1 DCOM的使用 377
17.3.2 DCOM的特点 378
17.3.3 DCOM的灵活配置和扩展机制 380
17.3.4 在应用间共享连接管理 382
17.3.5 DCOM的安全性设置 384
参考文献 390