第1章 MDA开发过程 1
1.1 传统软件开发 1
1.1.1 生产效率问题 2
1.1.2 可移植性问题 4
1.1.3 互操作性问题 4
1.1.4 维护与文档问题 5
1.2 模型驱动构架 5
1.2.1 MDA开发生命周期 6
1.2.2 变换步骤的自动化 8
1.3 MDA带来的好处 9
1.3.1 生产效率 9
1.3.2 可移植性 9
1.3.3 互操作性 10
1.3.4 维护与文档 11
1.4 MDA组成部件 12
1.5 小结 12
第2章 MDA框架 15
2.1 什么是模型 15
2.1.1 模型之间的关系 17
2.2 模型分类 18
2.2.1 业务模型和软件模型 19
2.2.2 结构模型和动态模型 20
2.2.3 平台独立模型和平台相关模型 22
2.2.4 模型的目标平台 22
2.3 什么是变换 23
2.4 基本MDA框架 25
2.5 示例 26
2.5.1 公有属性和私有属性 27
2.5.2 关联 28
2.6 小结 30
第3章 今天的MDA 33
3.1 OMG标准 33
3.1.1 OMG语言 33
3.1.2 OMG语言和变换定义 34
3.2 作为PIM语言的UML 35
3.2.1 普通UML 35
3.2.2 可执行UML 35
3.2.3 UML-OCL组合 36
3.3 工具 36
3.3.1 对变换的支持 37
3.3.2 工具分类 38
3.4 开发过程 40
3.4.1 敏捷软件开发 40
3.4.2 极限编程 41
3.4.3 Rational统一过程(RUP) 41
3.5 小结 42
第4章 Rosa系统:MDA应用 43
4.1 Rosa早餐服务系统 43
4.1.1 业务 43
4.1.2 软件系统 44
4.2 应用MDA框架 45
4.2.1 PIM和PSM 45
4.2.2 PIM到PSM的变换 46
4.2.3 PSM到代码模型的变换 46
4.2.4 3个抽象层次 47
4.3 细说PIM 47
4.4 小结 49
第5章 Rosa系统:从PIM到PSM 51
5.1 PIM到关系PSM的变换 51
5.2 PIM到EJB PSM的变换 54
5.2.1 粗粒度的EJB模型 54
5.2.2 变换规则 56
5.3 PIM到Web PSM的变换 57
5.3.1 变换规则 59
5.4 通信桥接器 61
5.5 小结 62
第6章 Rosa系统:从PSM到代码 63
6.1 关系模型到代码的变换 63
6.2 EJB模型到代码的变换 64
6.2.1 对EJB代码的一些注解 65
6.2.2 变换规则 67
6.3 Web模型到代码的变换 70
6.3.1 Web代码结构 70
6.3.2 变换规则 70
6.4 小结 71
第7章 关于变换的更多信息 73
7.1 值得追求的变换特性 73
7.2 控制和调整变换 74
7.2.1 手工控制 74
7.2.2 变换条件 74
7.2.3 变换参数 75
7.2.4 额外信息 75
7.3 可追溯性 75
7.4 增量一致性 76
7.5 双向性 77
7.6 变换的内涵 78
7.6.1 变换参数 78
7.6.2 稳定的源-目标关系 80
7.6.3 作为对象的变换规则 81
7.7 小结 82
第8章 元建模 83
8.1 元建模导引 83
8.2 OMG的4个建模层次 85
8.2.1 M0层:实例 85
8.2.2 M1层:系统的模型 85
8.2.3 M2层:模型的模型 86
8.2.4 M3层M2的模型 87
8.2.5 不需要再多层次了 88
8.3 在MDA中使用元建模 90
8.3.1 扩展的MDA框架 91
8.4 小结 92
第9章 定义你自己的变换 93
9.1 再论变换定义 93
9.2 变换定义语言 95
9.2.1 变换规则需求 95
9.2.2 变换规则表示法 96
9.2.3 变换定义 98
9.3 示例变换定义 99
9.3.1 公有和私有属性 99
9.3.2 关联 101
9.3.3 类 103
9.3.4 完成变换定义 105
9.4 完整的MDA框架 106
9.5 小结 106
第10章 Rosa系统的变换定义 107
10.1 UML到关系模型的变换 107
10.1.1 UML到关系模型的变换定义 109
10.1.2 完成关系模型 112
10.2 UML到EJB模型的变换 113
10.2.1 其他的操作 121
10.3 UML到Web模型的变换 122
10.4 小结 129
第11章 OMG标准和其他技术 131
11.1 导引 131
11.2 MOF 131
11.2.1 MOF工具 132
11.2.2 MOF在MDA中的角色 134
11.3 查询、视图和变换 134
11.4 UML 134
11.4.1 UML元模型 135
11.4.2 UML在MDA中的角色 135
11.5 OCL 137
11.5.1 在UML中使用OCL 137
11.5.2 在MOF中使用OCL 138
11.5.3 OCL在MDA中的角色 138
11.6 UML动作语义 138
11.7 CWM 139
11.8 UML profile 140
11.8.1 profile在MDA中的角色 140
11.9 小结 141
第12章 展望MDA 143
12.1 MDA范型迁移 143
12.1.1 历史的视角 143
12.1.2 关注焦点的转移 144
12.1.3 美梦无法成真吗 144
12.2 开发过程 146
12.3 工具 149
12.4 建模语言 150
12.5 小结 151
附录A 术语表 153
附录B Rosa系统的代码 157
参考书目 165
索引 167