第1部分 概览 1
第1章 什么是构件化软件设计与实现 3
1.1从编程语言的发展看构件化软件 3
1.2从软件工程学看构件化软件设计与实现 4
1.3本书的构件化软件设计与实现方法概貌 6
1.4小结 9
第2章 构件化软件设计与实现的主要概念 10
2.1软件构件 10
软件构件模型 10
本书对软件构件模型的认识 12
2.2软件体系结构 21
2.3软件构件框架 25
2.4小结 28
第2部分 软件体系结构设计 29
第3章 软件体系结构风格 31
3.1基本概念 31
3.2典型风格简介 33
三层C/S软件体系结构风格 33
C/S与B/S混合软件体系结构风格 35
模型-视图-控制器风格 36
数据抽象和面向对象风格 37
基于事件的隐式调用风格 37
层次系统风格 38
仓库风格 39
3.3风格的验证 40
3.4不同风格的集成 41
3.5小结 41
第4章 软件体系结构设计 42
4.1体系结构设计方法概述 42
传统软件过程中的体系结构设计 42
当前意义上的体系结构设计 43
4.2体系结构设计的主要问题和一般途径 43
体系结构设计与非功能需求 44
体系结构设计的主要问题 44
体系结构设计的一般途径 46
4.3几种体系结构设计方法介绍 46
评估与转化方法 46
自顶向下组装方法 49
属性驱动的设计方法 52
use case和目标驱动方法 56
形式化设计分析框架方法 60
aspectual构件方法 64
4.4面向复用的体系结构设计 67
领域软件体系结构 67
软件产品线体系结构 67
软件框架 68
4.5小结 69
第5章 软件体系结构评估 71
5.1评估方法的选择 71
5.2软件体系结构评估方法的要素 73
5.3常见的软件体系结构评估方法 75
SAAM 75
SAAMCS 77
ESAAMI 77
SAAMER 78
ATAM 78
SBAR 80
ALPSM 81
SAEM 82
5.4各种评估方法的比较 82
例子 82
准备阶段 84
第一阶段 84
第二阶段 88
后续工作 88
5.5小结 89
第6章 软件体系结构描述语言 90
6.1概述 90
6.2常见的体系结构描述语言 92
UniCon 92
Darwin 96
C2 SADL 98
Acme 100
xADL 102
6.3体系结构描述语言分类框架 104
对构件进行建模 105
对连接子进行建模 106
对配置进行建模 107
体系结构描述的工具支持 109
比较结果 110
6.4小结 113
第7章 ABC/ADL与ABCTool 114
7.1概述 114
7.2体系结构建模元素 116
构件 117
连接子 118
体系结构配置 120
体系结构风格建模元素 121
Aspect 124
7.3 ABCTool 126
软件体系结构模型的多视图 127
复用库支持 128
系统模型的验证 131
特定于平台的组装和部署 131
体系结构文档的自动生成 133
7.4小结 133
第3部分 可复用构件开发 135
第8章 可复用构件开发基本原则 137
8.1“开-闭”原则 137
8.2依赖倒置原则 143
8.3接口隔离原则 147
8.4迪米特法则 149
8.5各原则间的关系 151
8.6小结 153
第9章 面向对象的可复用构件开发 154
9.1构件开发与领域工程 154
9.2功能规约的开发 155
9.3类构件的开发 156
后裔对象与外界对象 156
语境变化敏感性 158
类构件的开发过程 159
9.4类簇构件的开发 165
9.5抽象类构件的开发 170
9.6框架构件的开发 171
9.7小结 176
第10章 基于模式的构件开发 177
10.1模式概述 177
10.2 GoF的设计模式 178
10.3体系结构模式 181
10.4 J2EE中的模式 182
10.5小结 184
第11章 面向EJB/J2EE的构件开发 185
11.1概述 185
11.2 EJB构件模 187
11.3 EJB开发过程 188
EJB开发的参与者 188
开发过程 190
常见模式 192
11.4开发示例 193
定义Remote和Home接口 193
实现Bean 194
编写部署描述文件 195
编写客户端程序进行测试 196
11.5小结 197
第12章 面向CORBA/CCM的构件开发 198
12.1概述 198
12.2 CORBA 199
12.3 CCM构件模型 203
12.4 CCM应用开发过程 204
12.5开发示例 206
编写构件的IDL3和CIDL文件 207
编译上述编写的IDL3和CIDL文件 209
编写构件实现文件 209
编译VC工程,生成DLL文件 210
编写Client端程序 210
打包部署 213
12.6小结 217
第13章 面向COM/.NET的构件开发 218
13.1概述 218
13.2 COM/.NET构件模型 220
13.3 COM/.NET构件开发过程 221
模块 221
程序集 222
CLR加载器 224
13.4开发示例 226
创建强命名 226
编译服务器端对象代码 226
编译客户端对象代码 226
注册,安装并配置实例 227
13.5小结 227
第14章 构件测试 228
14.1概述 228
与测试相关的构件特性 229
构件测试的挑战和时机 229
构件测试涉及的人员 230
14.2构件测试方法 231
构件方法序列 232
内置测试法 232
测试工作台 232
元数据法 233
接口探查 234
形式化的测试需求 235
第三方验证框架 235
回溯法 236
断言法 236
构件交互图 237
Component+ 237
基于合约变异的构件测试 237
14.3 Web Services构件的测试 238
合约信息编辑与检查 239
测试数据生成 241
运行时刻数据收集 242
测试数据选择 243
测试执行与结果验证 243
14.4 EJB构件的测试 244
测试信息提取与分析 244
测试生成 245
测试执行 247
14.5小结 248
第4部分 构件组装、部署与运行 249
第15章 构件组装 251
15.1概述 251
15.2内部组装 252
基于编程语言的组装 253
基于库的组装 253
基于框架的组装 254
15.3外部组装 256
基于脚本语言的组装 256
基于进程间通信机制的组装 257
最终用户组装 258
15.4小结 259
第16章 构件部署 260
16.1概述 260
16.2常见的部署方法与工具 262
4+1视图 262
UML部署图 263
基于Prism风格的部署 264
Software Dock以及BARK 264
DeSi环境 266
JPloy 266
16.3 J2EE部署 267
J2EE部署过程 267
典型的J2EE部署工具 271
16.4小结 276
第17章 构件运行维护和管理 277
17.1概述 277
17.2常见的构件运行和管理平台和技术 277
JVM管理规范 278
JMX技术 280
J2EE管理规范 283
Java Reflection API 288
17.3反射式中间件 289
17.4运行时刻软件体系结构 290
17.5自治计算 291
17.6小结 293
第5部分 实例研究 295
第18章 构件运行支撑平台示例——PKUAS 297
18.1 PKUAS简介 297
18.2 PKUAS平台结构 298
18.3微内核 299
基于JMX的实现 300
基于OSGi的实现 303
基于软件体系结构的反射框架 303
18.4容器 308
Web容器 308
EJB容器 309
支持构件在线演化 311
18.5协议 313
开放式互操作框架 314
开放式通信服务 315
开放式命名服务 316
主流互操作协议的支持 317
消息服务 319
Web服务 320
18.6服务 321
服务管理框架 321
标准服务 322
扩展服务 325
18.7工具 328
开发工具 328
组装部署工具 329
管理工具 331
系统性能优化工具 332
应用可靠性评测工具 334
18.8小结 337
第19章 奥运信息系统体系结构建模案例 338
19.1注册制证系统高层体系结构模型 338
分布式数据库体系结构 339
子系统组织 339
19.2注册管理子系统体系结构模型 340
针对服务层特征的设计 340
针对功能层特征、行为特点层特征和非功能需求特征的设计 342
19.3设计决策讨论 345
风格的选择 345
其他非功能特征相关的ACR软件体系结构设计 348
19.4小结 350
第20章 信贷管理系统体系结构建模案例 351
20.1信贷管理系统体系结构概述 351
20.2信贷管理系统体系结构设计过程 353
20.3小结 356
参考文献 357