第1章 引言:字典问题 1
1.1 向前并向上 9
1.2 其他程序生成器 10
1.3 为什么使用程序生成器 11
1.3.1 规范层次与编码层次 11
1.3.2 关系的分解 11
1.3.3 多重产品 11
1.3.6 生成产品的正确性 12
1.4 本书的结构 12
1.3.7 改进定制软件的性能 12
1.3.5 信息一致性 12
1.3.4 多种变体 12
第2章 域分析概念 14
2.1 域 14
2.2 决策——域工程的构成因子 15
2.3 变量——域工程的核心 15
2.4 角色——谁作出决策 15
2.5 约束时间——决策制定的时间 16
2.6 域工程周期 17
2.7 共性 18
2.8 可变性 19
2.9 平衡行为 20
2.10 域分析方法 21
2.11 FAST域模型 21
2.12 小结 22
2.13 深入阅读 23
第3章 域分析示例 24
3.1 第一天 26
3.2 第二天 28
3.3 第三天 30
3.4 第四天 31
3.6.1 游戏域阶段1 34
3.6 域分析报告 34
3.5 第五天 34
3.6.2 游戏域共性 35
3.6.3 游戏域阶段2 36
3.6.4 游戏域阶段3 37
3.7 小结 37
第4章 关系分解 39
4.1 抽象化 40
4.2 分解关系技术 42
4.2.1 物理分解 42
4.2.2 配置文件和资源文件 43
4.2.3 奇异常量 43
4.2.4 典型过程的抽象法 46
4.2.5 面向对象的抽象化 48
4.2.6 继承 49
4.2.7 应用框架 50
4.2.8 规范驱动技术 51
4.2.9 规范的表示 51
4.3 小结 52
4.4 深入阅读 53
第5章 XML:规范的一种标准表示法 54
5.1 是否使用XML 55
5.2 XML元素 55
5.4 XML预定义实体 58
5.3 XML属性 58
5.5 创建一个特定域的XML结构 59
5.6 使用元素还是属性 62
5.7 使用XML的游戏域 63
5.8 DTD 68
5.9 XML工具 70
5.9.1 XML阅读器 70
5.9.2 XML编辑器 72
5.9.3 XML转换工具 72
5.10 游戏域阶段2 73
5.12 深入阅读 77
5.11 小结 77
第6章 运行时可变性 78
6.l Java特性文件 78
6.1.1 列表 82
6.1.2 分层数据 83
6.1.3 存留 85
6.1.4 动态性能 86
6.2 作为配置文件的XML 87
6.3 具有运行时可变性的游戏域 90
6.4 小结 98
7.1 编译时常量 99
第7章 编译时可变性 99
7.2 游戏域与继承 102
7.3 运行时、编译时与生成时可变性的比较 109
7.4 预处理时可变性 110
7.5 小结 110
7.6 深入阅读 111
第8章 生成程序的风格 112
8.1 手写程序和生成程序的比较 112
8.2 3种风格的生成程序比较 114
8.2.1 面向对象驱动风格 114
8.2.4 3种风格的公共程序说明 115
8.2.3 表驱动风格 115
8.2.2 代码驱动风格 115
8.3 面向对象驱动风格 116
8.4 代码驱动风格 120
8.5 表驱动风格 123
8.6 小结 129
第9章 利用DOM生成程序 130
9.1 使用XML语法分析器读入和存储规范 130
9.1.1 纯DOM方法 131
9.1.2 自定义DOM方法 132
9.1.3 自定义SAX方法 132
9.1.4 选择最好的方法 133
9.2 DoM的分析和转换 134
9.2.1 DOM API 135
9.2.2 一个简单的分析示例 136
9.3 来自DOM的程序生成 139
9.4 使用DOM的游戏程序生成器 141
9.5 小结 151
9.6 深入阅读 151
第10章 利用Java Server Pages生成程序 152
10.l applets和servlets 152
10.2 Java Server Pages 155
10.2.2 JSP XML语法 160
10.2.1 令人烦恼的实体参照符 160
10.3 Chart Applet程序生成器 161
10.3.1 Web表单输入 165
10.3.2 XML输入 173
10.4 JSP翻译器,一个简单的程序生成器 174
10.5 游戏域程序生成器 175
10.6 小结 178
第11章 利用XPath和XSLT生成程序 179
11.l Xpath 179
11.1.1 Xpath树 180
11.1.2 Xpath表达式 181
11.1.3 Xpath节点集合表达式 182
11.1.4 Xpath数字表达式 183
11.1.5 Xpath字符串表达式 184
11.1.6 Xpath布尔表达式 184
11.1.7 Xpath谓词 185
11.1.8 Xpath变量 186
11.2 XSLT 187
11.2.1 XSL的template 187
11.2.2 XSL的value-of 188
11.2.3 XSL的for-each 189
11.2.4 XSL的if 190
11.2.5 XSL的choose 191
11.2.6 XSL的variable 192
11.2.7 XSL的apply-templates 193
11.2.8 XSL文本和空白内容 195
11.3 在游戏域中使用XPATH和XSLT 198
11.4 小结 204
第12章 创建自己的模板语言 205
12.1 评价JSP和XSLT 205
12.2 TL——一种新的模板语言 206
12.2.1 使用XPath 207
12.2.2 通用结构设计的语法 208
12.2.3 转义到Java语言 212
12.2.4 Java集成 213
12.2.5 利用DOM入口 214
12.2.6 空白数据处理 215
12.2.7 字符转义 217
12.2.8 命令行处理和子模板 218
12.2.9 多重输入和输出 220
12.2.10 简单形式和XML形式 221
12.2.11 编译和解释 223
12.2.12 其他特征 223
12.3 不规则的TL规范 224
12.4 把TL转换成Java语言 230
12.6 深入阅读 237
12.5 小结 237
第13章 组件的构成 239
13.1 组件与JavaBeans 239
13.2 组件和依赖性 243
13.2.1 全局变量资源 244
13.2.2 类型 245
13.2.3 通信机制 250
13.3 接口与IDL 250
13.3.1 使用RMI的ShoppingCart 251
13.3.2 导出和导入 253
13.4 模块互连语言 255
13.4.1 连接器 256
13.4.2 接口适配器 257
13.4.3 异步连接 261
13.4.4 推拉连接 263
13.4.5 通信机制 268
13.4.6 复合组件 269
13.4.7 静态连接与动态连接 271
13.5 Bean标记语言 272
13.6 设计自己的MIL 274
13.7 小结 275
13.8 深入阅读 275