产生式编程—方法、工具与应用
Generative Programming:Methods,Tools,and Applications
· 本书评语:
产生式编程(Generative Programming,GP)为应用程序开发人员提出了十分美妙的承诺。它使“从‘一种一个’的软件系统向自动制作软件的各不相同的变体发展”这种思路变得十分真实可信。简单地说,GP以“确定软件开发中自动化的好处”为中心。本书包括了将帮助你设计和实现一个系统族的“正确”组件,以及自动组合组件的方法和工具。这里提出的方法可以应用到所有的商用开发中——从类和过程的层次上的“微观编程”(programming in the small),到“宏观编程”(programming in the large),就是说开发大型系统的家族。
本书是对这种正在浮现的规程的完整指导和参考。它提供了对以下这些关键技术和主题的深入探讨:
·领域工程
·特征建模
·泛型编程
·面向方面的编程
·使用C++的模板元程序设计
·产生器
·微软的意图编程
使用本书你将会学习到如何组合这些技术,以及(也是更加重要的)如何在实践中运用它们。书中包括来自三个不同领域的完整的案例研究:程序设计领域(容器数据结构)、业务领域(银行业务)以及科学计算(矩阵计算)。
Krzysztof Czarnecki是德国乌尔姆Daimler Chrysler研究和技术中心的一位研究员和顾问。他在对华盛顿Redmond的施乐Palo Alto研究中心和微软研究中心进行访问研究期间,取得了面向方面编程和意图编程的第一手经验。他在萨克拉门托的加利福尼亚州立大学获得了计算机科学的学士学位,在德国的Ilmenau大学获得了计算机科学的硕士学位和博士学位。
Ulrich W.Eisenecker是Zweibrucken的凯泽斯劳滕应用科学大学的一位计算机科学教授,在那里他主管组件和窗口接口部门。在大学职业生涯以前,他在工业界度过了大约十年时间。他是德国,下杂志《OBJEKTspektrum》的一种组件软件专辑增刊的编辑,他还为之撰写了一个C++专栏。他已经发表了一百多篇文章,并且经常在国内和国际肝会议上讲演。
前言
致谢
第1章 本书所讨论的主要内容
1.1 从手工作坊到自动装配线
1.2 产生式编程
1.3 利益和可应用性
第一部分 分析和设外方法与技术
第2章 领域工程
2.1 为什么本章值得一读
2.2 什么是领域工程
2.3 领域分析
2.4 领域设计和领域实现
2.5 应用工程
2.6 产品线实践
2.7 关键领域工程概念
2.8 领域分析和领域工程方法概览
2.9 领域工程与相关方法
2.10 历史笔记
2.11 小结
第3章 领域工程和面向对象的分析与设计
3.1 为什么本章值得一读
3.2 OO技术与重用
3.3 领域工程和OOA/D方法之间的关系
3.4 整合领域工程和OOA/D方法的方面
3.5 横向方法与纵向方法的比较
3.6 选择的方法
第4章 特征建模
4.1 为什么本章值得一读
4.2 重新思考特征
4.3 特征建模
4.4 特征模型
4.5 特征图和其他建模符号与实现技术之间的关系
4.6 实现约束
4.7 对特征建模的工具支持
4.8 与特征图有关的常见问题
4.9 特征建模过程
第5章 产生式编程的过程
5.1 为什么本章值得一读
5.2 产生式领域模型
5.3 在产生式编程中的主要开发步骤
5.4 为产生式编程改编领域工程
5.5 领域特定语言
5.6 DEMRAL:用于产生式编程的领域工程方法例子
5.7 DEMRAL大纲
5.8 领域分析
5.9 领域设计
5.10 领域实现
第二部分 实现技术
第6章 泛型编程
6.1 为什么本章值得一读
6.2 什么是泛型编程
6.3 通用编程与产生式编程的对比
6.4 泛型参数
6.5 参数化与子类型多态的对比
6.6 绑定与非绑定多态
6.7 初观多态
6.8 参数化组件
6.9 参数化编程
6.10 C++标准模板库
6.11 泛型方法学
6.12 历史笔记
第7章 基于模板面向组件的编程技术
7.1 为什么本章值得一读
7.2 系统配置的类型
7.3 C++对动态配置的支持
7.4 C++对静态配置的支持
7.5 禁止某种模板实例化
7.6 静态参数与动态参数的对比
7.7 基于参数化继承的封装器
7.8 基于参数化继承的模板方法
7.9 参数化绑定类型
7.10 多个组件的一致参数化
7.11 组件之间的静态交互
第8章 面向方面的编程技术
8.1 为什么本章值得一读
8.2 什么是面向方面的编程
8.3 面向方面的分解方法
8.4 方面是怎样产生的
8.5 组合机制
8.6 怎样使用程序设计语言表达方面
8.7 AOP编程的实现技术
8.8 最后评论
第9章 产生器
9.1 为什么本章值得一读
9.2 什么是产生器
9.3 软件开发的转化模型
9.4 构造产生器的技术
9.5 组合产生器与转换产生器的对比
9.6 转换的种类
9.7 转换系统
9.8 选择用来产生的方法
第10章 使用C++进行静态元程序设计
10.1 为什么本章值得一读
10.2 什么是元程序设计
10.3 元程序设计一览
10.4 静态元程序设计
10.5 作为一种二级语言的C++
10.6 静态层的功能含义
10.7 模板元程序设计
10.8 模板元函数
10.9 元函数作为其他元函数的参数和返回值
10.10 重新表达元信息
10.11 编译时控制结构
10.12 代码生成
10.13 例子:使用静态执行循环来测试元函数
10.14 C++中的部分求值
10.15 部分模板特化的变通方法
10.16 模板元程序设计的问题
10.17 历史笔记
第11章 意图编程
11.1 为什么本章值得一读
11.2 什么是意图编程
11.3 IP背后的技术
11.4 在IP编程环境中工作
11.5 高级主题
11.6 IP背后的哲理
11.7 小结
第三部分 应用例子
第12章 链表容器
12.1 为什么本章值得一读
12.2 概观
12.3 领域分析
12.4 领域设计
12.5 实现组件
12.6 手工装配
12.7 指定链表
12.8 产生器
12.9 扩展
第13章 银行账户
13.1 为什么本章值得一读
13.2 成功的程序设计商店
13.3 设计模式、框架和组件
13.4 领域工程和产生式程序设计
13.5 特征建模
13.6 架构设计
13.7 实现组件
13.8 可配置的类层次
13.9 设计一种领域特定的语言
13.10 银行账户产生器
13.11 测试产生器和它们的制品
第14章 产主式矩阵计算库
14.1 为什么本章值得一读
14.2 为什么要进行矩阵计算
14.3 领域分析
14.4 领域设计和实现
第四部分 附录
附录A 概念建模
A.1 什么是概念
A.2 概念的理论
A.3 与概念有关的重要问题
A.4 概念建模,面向对象和软件重用
附录B 用于Smalltalk的实例特化扩展协议
附录C 用于在Smalltalk中附加一个listener对象的协议
附录D 矩阵计算术语的词汇表
附录E 用于求解依赖性表格的元函数
术语表
参考文献
本文地址:http://com.8s8s.com/it/it28570.htm