前言 1
致谢 1
第1章 本书所讨论的主要内容 1
1.1 从手工作坊到自动装配线 1
目录 1
1.2 生式编程 4
1.3 利益和可应用性 9
2.1 为什么本章值得一读 14
2.2 什么是领域工程 14
第2章 领域工程 14
第一部分 分析和设计方法与技术 14
2.3 领域分析 16
2.4 领域设计和领域实现 19
2.5 应用工程 21
2.6 产品线实践 21
2.7 关键领域工程概念 23
2.8 领域分析和领域工程方法概览 30
2.10 历史笔记 38
2.9 领域工程与相关方法 38
2.11 小结 39
第3章 领域工程和面向对象的分析与设计 41
3.1 为什么本章值得一读 41
3.2 OO技术与重用 41
3.3 领域工程和OOA/D方法之间的关系 43
3.4 整合领域工程和OOA/D方法的方面 43
3.5 横向方法与纵向方法的比较 45
3.6 选择的方法 46
4.2 重新思考特征 55
第4章 特征建模 55
4.1 为什么本章值得一读 55
4.3 特征建模 56
4.4 特征模型 57
4.5 特征图和其他建模符号与实现技术之间的关系 67
4.6 实现约束 74
4.7 对特征建模的工具支持 75
4.8 与特征图有关的常见问题 76
4.9 特征建模过程 78
5.2 产生式领域模型 86
5.1 为什么本章值得一读 86
第5章 产生式编程的过程 86
5.3 在产生式编程中的主要开发步骤 88
5.4 为产生式编程改编领域工程 88
5.5 领域特定语言 89
5.6 DEMRAL:用于产生式编程的领域工程方法例子 92
5.7 DEMRAL大纲 93
5.8 领域分析 95
5.9 领域设计 100
5.10 领域实现 106
6.1 为什么本章值得一读 108
6.2 什么是泛型编程 108
第二部分 实现技术 108
第6章 泛型编程 108
6.3 通用编程与产生式编程的对比 110
6.4 泛型参数 110
6.5 参数化与子类型多态的对比 112
6.6 绑定与非绑定多态 120
6.7 初观多态 122
6.8 参数化组件 124
6.9 参数化编程 126
6.10 C++标准模板库 133
6.11 泛型方法学 135
6.12 历史笔记 137
第7章 基于模板面向组件的编程技术 139
7.1 为什么本章值得一读 139
7.2 系统配置的类型 139
7.3 C++对动态配置的支持 140
7.4 C++对静态配置的支持 140
7.5 禁止某种模板实例化 147
7.6 静态参数与动态参数的对比 149
7.7 基于参数化继承的封装器 154
7.8 基于参数化继承的模板方法 154
7.9 参数化绑定类型 157
7.10 多个组件的一致参数化 158
7.11 组件之间的静态交互 159
第8章 面向方面的编程技术 170
8.1 为什么本章值得一读 170
8.2 什么是面向方面的编程 171
8.3 面向方面的分解方法 172
8.4 方面是怎样产生的 178
8.5 组合机制 180
8.6 怎样使用程序设计语言表达方面 206
8.7 AOP编程的实现技术 215
8.8 最后评论 223
第9章 产生器 225
9.1 为什么本章值得一读 225
9.2 什么是产生器 225
9.3 软件开发的转化模型 227
9.4 构造产生器的技术 230
9.5 组合产生器与转换产生器的对比 231
9.6 转换的种类 232
9.7 转换系统 236
9.8 选择用来产生的方法 240
第10章 使用C++进行静态元程序设计 267
10.1 为什么本章值得一读 267
10.2 什么是元程序设计 267
10.3 元程序设计一览 268
10.4 静态元程序设计 272
10.5 作为一种二级语言的C++ 273
10.6 静态层的功能含义 275
10.8 模板元函数 278
10.7 模板元程序设计 278
10.9 元函数作为其他元函数的参数和返回值 280
10.10 重新表达元信息 281
10.11 编译时控制结构 292
10.12 代码生成 312
10.13 例子:使用静态执行循环来测试元函数 332
10.14 C++中的部分求值 336
10.15 部分模板特化的变通方法 339
10.17 历史笔记 340
10.16 模板元程序设计的问题 340
第11章 意图编程 343
11.1 为什么本章值得一读 343
11.2 什么是意图编程 344
11.3 IP背后的技术 347
11.4 在IP编程环境中工作 355
11.5 高级主题 368
11.6 IP背后的哲理 374
11.7 小结 382
12.3 领域分析 386
12.2 概观 386
第三部分 应用例子 386
第12章 链表容器 386
12.1 为什么本章值得一读 386
12.4 领域设计 388
12.5 实现组件 390
12.6 手工装配 395
12.7 指定链表 396
12.8 产生器 397
12.9 扩展 400
13.2 成功的程序设计商店 402
第13章 银行账户 402
13.1 为什么本章值得一读 402
13.3 设计模式、框架和组件 404
13.4 领域工程和产生式程序设计 404
13.5 特征建模 405
13.6 架构设计 406
13.7 实现组件 408
13.8 可配置的类层次 414
13.9 设计一种领域特定的语言 416
13.10 银行账户产生器 421
13.11 测试产生器和它们的制品 424
第14章 产生式矩阵计算库 425
14.1 为什么本章值得一读 425
14.2 为什么要进行矩阵计算 425
14.3 领域分析 426
14.4 领域设计和实现 431
附录A 概念建模 498
A.1 什么是概念 498
第四部分 附录 498
A.2 概念的理论 499
A.3 概念有关的重要问题 504
A.4 概念建模,面向对象和软件重用 507
附录B 用于Smalltalk的实例特化扩展协议 509
附录C 用于在Smalltalk中附加一个listener对象的协议 512
附录D 矩阵计算术语的词汇表 516
附录E 用于求解依赖性表格的元函数 518
术语表 522
参考文献 524