目录 1
译者序 1
前言 1
第1章 简介 1
1.1 软件开发与面向对象范型 1
1.2 aspect案例 2
1.3 什么是aspect 2
1.5.1 非对称分割 4
1.5 aspect及其他问题 4
1.4 为何要在分析和设计中考虑aspect 4
1.5.2 对称分割 6
1.6 Theme方法 8
1.6.1 何为theme 9
1.6.2 theme之间的关系 9
1.7 应用Theme方法 10
1.7.1 用Theme/Doc分析需求 10
1.7.2 用Theme/UML设计theme 12
1.8 Theme:对称抑或非对称 13
1.9 Theme与现存开发过程的集成 14
1.10 实现 15
1.11 小结 15
第2章 面向对象方法 17
2.1 不同的关注点单位 17
2.1.1 描述需求 17
2.1.2 描述对象 19
2.1.3 比较需求和对象 21
2.2 表达式例子 22
2.2.1 面向对象设计 23
2.2.2 EES设计中需求的散射与缠结 26
2.3 适应演化 27
2.3.1 设计模式中的散射与缠结 29
2.3.2 面向对象方法的演化 30
2.4 小结 31
第3章 Theme方法 33
3.1 theme的结构与关系 33
3.1.1 分析、设计与合成时的theme 33
3.1.2 theme之间的关系 33
3.3 查找theme 35
3.2 theme过程概述 35
3.3.1 识别潜在的theme和实体 37
3.3.2 细化theme集合 38
3.3.3 识别横切theme 40
3.3.4 准备设计 41
3.4 设计theme 42
3.5 合成theme 48
3.5.1 指定theme之间的关系 48
3.5.2 合成后的theme 49
3.6 再论演化 51
3.6.1 查找theme 52
3.6.2 设计并合成theme 54
3.6.3 演化终篇语 55
3.7 theme最适当的规模 56
3.8 theme与现存开发过程的集成 56
3.8.1 瀑布过程 56
3.8.2 迭代方法 56
3.8.3 敏捷过程 57
3.9 小结 58
第4章 分析 61
4.1 Theme/Doc视图和支持工具 63
4.1.1 theme关系图 63
4.1.2 横切theme视图 64
4.1.3 单项图 65
4.2 Theme/Doc过程概览 66
4.3 确定theme 67
4.3.1 选择初始theme 67
4.3.2 考察theme关系图 69
4.3.3 对theme进行的操作 72
4.3.4 对需求的操作 77
4.4 确定theme职责 80
4.4.1 如果可能则分裂共享需求 81
4.4.2 识别aspect theme 82
4.4.3 推迟某些决策 87
4.5 了解何时决策已经完成 87
4.6 规划设计 90
4.6.1 识别对象 90
4.6.3 了解aspect theme 91
4.6.2 了解base theme 91
4.7 小结 92
第5章 theme设计 95
5.1 Theme/UML设计概览 95
5.1.1 base theme设计概览 96
5.1.2 aspect theme设计概览 97
5.2 设计base theme 100
5.2.1 游戏的体系结构 101
5.2.2 enter-location theme 102
5.2.3 starttheme 103
5.2.4 distribute-crystals theme 105
5.2.5 setup-NPC theme 106
5.2.6 duel theme 106
5.3 设计横切theme 107
5.3.1 对UML的改动 108
5.3.2 P2P Communication theme 116
5.4 小结 120
第6章 theme合成 121
6.1 theme合成概览 121
6.1.1 选择theme 122
6.1.2 识别匹配的设计要素 123
6.1.3 定义集成方式 125
6.1.4 解决冲突 126
6.1.5 为aspect theme定义绑定 128
6.2 合成Game里的theme 130
6.3 匹配设计要素 131
6.3.1 显式匹配 131
6.3.2 隐式匹配 132
6.3.3 使用合成关系时用于概念匹配的规则 134
6.4 集成选项 135
6.4.1 覆盖集成 137
6.4.2 结合不同的集成策略 139
6.5 解决冲突 140
6.5.1 theme优先级 140
6.5.2 默认值 140
6.5.3 显式值 141
6.6 绑定到横切theme 141
6.8 小结 146
6.7 对过程的一些评注 146
第7章 到实现的映射 147
7.1 AspectJ 147
7.1.1 步骤概览 148
7.1.2 track-energy 149
7.1.3 P2Pcommunication 156
7.1.4 base theme 161
7.2 AspectWerkz 163
7.3.1 base theme 169
7.3 CME 169
7.3.2 aspect theme 173
7.4 小结 178
第8章 案例:电话的功能特性 179
8.1 分析需求并识别初始theme 179
8.2 细化theme 180
8.3 识别横切theme 181
8.4 设计概念共享theme 183
8.5 设计横切theme 184
8.6 小结 187
第9章 案例二:软件使用授权 189
9.1 需求 190
9.2 细化theme集合 191
9.2.1 删除次要theme 193
9.2.2 theme分组 194
9.3 划分行为性职责 195
9.3.2 需要推迟的需求 196
9.3.3 由enforce theme共享的需求 196
9.3.1 需要分裂的需求 196
9.3.4 由bill theme共享的需求 198
9.3.5 由launch theme共享的需求 198
9.4 设计theme 198
9.4.1 注册/下载theme 198
9.4.2 licensing theme 201
9.5 看看代码 204
9.6 小结 206
附录 Crystal Game游戏 207
参考文献 213