内容简介
第1篇 用例和方面的应用实例
第1章 要解决的问题
1.1 组件现在的用途
1.1.1 使用组件构建系统
1.1.2 组件的益处
1.2 组件的局限性
1.2.1 无法使对等关注点相互分离
1.2.2 无法使扩展相互分离
1.3 寻求解决方案
1.3.1 对于扩展的早期支持
1.3.2 UML对扩展的支持
1.4 使关注点保持分离
第2章 使用方面技术来解决问题
2.1 使用方面技术寻求解决方案
2.2 基于方面技术使对等关注点保持分离
2.3 基于方面技术使扩展保持分离
2.4 方法学指导的需要
第3章 现在基于用例
3.1 用例概述
3.2 用例驱动开发
3.3 用例的角色和益处
3.4 用例技术的缺口(gap)
3.5 基于方面来填补缺口(gap)
第4章 将来基于用例模块
4.1 通过叠加用例切片来构建系统
4.2 使对等用例保持分离
4.3 使扩展用例保持分离
4.4 基于用例模块开发
第2篇 基于用例捕获关注点并建模
第5章 基于用例对关注点建模
5.1 用例建模
5.2 用例实例和事件流
5.3 用例描述
5.4 用例事件流的可视化
5.5 总结与强调
第6章 用例结构化
6.1 用例关系
6.2 用例扩展关系
6.3 用例包含关系
6.4 用例泛化
6.5 公共用例
6.6 总结与强调
第7章 基于用例捕获关注点
7.1 理解涉众关注点
7.1.1 理解问题域
7.1.2 抽取系统特性
7.1.3 处理功能和非功能需求
7.2 捕获应用用例
7.2.1 识别用例变量
7.2.2 处理用例变量
7.2.3 处理扩展用例
7.3 捕获基础结构用例
7.3.1 执行事务用例
7.3.2 基础结构用例的结构化
7.3.3 描述基础结构用例
7.3.4 处理系统范围的关注点
7.4 总结与强调
第3篇 基于用例模块实现关注点分离
第8章 基于用例切片使对等用例保持分离
8.1 实现对等用例
8.1.1 协作
8.1.2 实现一个用例
8.1.3 对等用例实现之间的交迭
8.2 使用例特定部分保持分离
8.2.1 合并特定于某用例的类
8.2.2 合并用例特定的类扩展
8.2.3 用例切片中的协作
8.3 处理叠加
8.3.1 被包含的用例切片
8.3.2 用例切片泛化
8.3.3 非用例特定切片
8.4 总结与强调
第9章 基于pointcut使扩展保持分离
9.1 实现扩展用例
9.2 使扩展用例的实现保持模块化
9.2.1 操作扩展
9.2.2 Pointcut
9.3 参数化Pointcut
9.3.1 标识参数
9.3.2 定义参数
9.3.3 用AOP实现pointcut参数化
9.4 对扩展用例实现进行泛化
9.5 对用例切片模板化
9.6 总结与强调
第10章 基于用例模块构建系统
10.1 系统由模型组成
10.2 用例模型
10.3 分析模型
10.3.1 分析的语言
10.3.2 进行分析
10.4 设计和实现模型
10.4.1 设计和实现的语言
10.4.2 进行设计和实现
10.5 用例模型横切于模型
10.5.1 保持用例模型中的结构
10.5.2 用例模块包括用例切片
10.5.3 用例模块间的关系
10.6 合并和配置用例模块
10.7 总结与强调
第4篇 基于用例和方面建立架构
第11章 通往弹性软件架构之路
11.1 什么是架构
11.2 什么是好的架构
11.3 建立架构基线的步骤
11.4 从平台无关的结构开始
11.4.1 元素结构
11.4.2 用例结构
11.5 叠加平台特性
11.5.1 选择平台
11.5.2 保持平台特性独立
11.6 总结与强调
第12章 基于对等的应用用例使功能需求保持分离
12.1 分析应用用例
12.1.1 识别类
12.1.2 为类分配用例行为
12.2 使应用用例保持分离
12.2.1 元素结构
12.2.2 用例结构
12.3 设计应用用例
12.3.1 识别设计元素
12.3.2 识别组件和接口
12.4 精炼设计元素
12.4.1 使类扩展保持分离
12.4.2 使操作扩展保持独立
12.4.3 保持状态转换独立
12.5 总结与强调
第13章 基于应用-扩展用例使功能需求保持分离
13.1 分析应用-扩展用例
13.1.1 识别类
13.1.2 识别Pointcut
13.1.3 将用例行为分配给类
13.2 使应用-扩展用例保持分离
13.2.1 结构化备选事件流
13.2.2 使备选事件流保持分离
13.3 设计应用-扩展用例
13.3.1 操作扩展设计
13.3.2 从用例扩展中标识组件接口
13.3.3 实现用例的多重扩展
13.3.4 从多个用例扩展
13.4 处理基用例的变化
13.4.1 使用反射
13.4.2 使用设计模式
13.4.3 使用自适应编程
13.5 总结与强调
第14章 基于基础结构用例使非功能需求保持分离
14.1 基础结构用例分析
14.1.1 识别类
14.1.2 标识pointcut
14.1.3 将用例行为分配给类
14.2 使基础结构用例保持分离
14.3 基础结构用例设计
14.3.1 基于方面应用基础结构用例切片
14.3.2 基于过滤器应用基础结构用例切片
14.3.3 在基础结构层中标识组件
14.4 处理多个基础结构用例
14.5 总结与强调
第15章 基于平台相关用例切片使平台特性保持分离
15.1 使平台特性保持分离
15.1.1 三层(Tier)系统
15.1.2 tier包
15.1.3 使用基础结构用例对tier建模
15.2 叠加用户界面
15.2.1 没有表示层细节的最小化用例设计
15.2.2 J2EE的Web表示机制
15.2.3 表示机制的设计
15.2.4 应用表示层机制
15.3 加入分布式处理
15.3.1 不考虑分布式处理的最小化用例设计
15.3.2 EJB分布式机制
15.3.3 分布式机制设计
15.3.4 分布式机制的应用
15.4 加入持久性处理
15.4.1 不包含持久性的最小化用例设计
15.4.2 J2EE中的关系型持久性机制
15.4.3 持久性机制设计
15.4.4 持久性机制应用
15.5 保持用例结构
15.6 总结与强调
第16章 基于用例测试切片使测试保持分离
16.1 测试优先方法
16.2 从用例确定测试用例
16.2.1 从用例事件流中确定测试用例
16.2.2 从用例变量确定测试用例
16.2.3 确定横切多个应用用例的测试用例
16.2.4 为基础结构用例和平台特性确定测试用例
16.2.5 确定性能测试用例
16.3 确定要测试的元素
16.4 测试的设计与实现
16.4.1 测试基础结构的设计
16.4.2 设计测试用例
16.5 总结与强调
17.1 将其合在一起
第17章 架构评估
17.2 关注点分离的评估
17.2.1 设计元素的评估
17.2.2 设计包的评估
17.2.3 用例结构的评估
17.2.4 自动评估
17.2.5 强制对关注点进行分离
17.3 系统级关注点的评估和实现
17.3.1 可维护性的评估和实现
17.3.2 可扩展性的评估和实现
17.3.3 可移植性的评估和实现
17.3.4 复用性的评估与实现
17.3.5 性能和可靠性的评估与实现
17.4 总结与强调
第18章 架构描述
18.1 架构视图组成的架构描述
18.2 用例模型的架构视图
18.3 分析模型的架构视图
18.3.1 架构性重要分析元素
18.3.2 架构性重要用例分析切片
18.4 设计模型的架构视图
18.4.1 架构重要的部署元素
18.4.2 架构性重要进程元素
18.4.3 架构重要的设计元素
18.4.4 架构重要用例设计切片
18.5 总结与强调
第5篇 在项目中应用用例和方面
第19章 运作一个项目
19.1 迭代式开发
19.1.1 项目中的阶段
19.1.2 迭代中的活动
19.2 估算开发工作量
19.2.1 在项目之初进行估算
19.2.2 对估算进行提炼
19.3 项目的计划和监控
19.3.1 项目延误估算
19.3.2 使项目跟上进度
19.4 保持关注点分离带来的生产率提高
19.5 总结与强调
第20章 方法剪裁
20.1 实现正确的平衡
20.2 选择应用的科目
20.3 在项目的不同阶段采用
20.4 总结与强调
第21章 方面与超越
21.1 在扩展(Extensions)上构建系统
21.2 均衡各种最佳实践
21.3 未来之路
附录A 使用UML对方面和用例切片建模
A.1 用类扩展对Intertype声明建模
A.2 用操作扩展对Advice建模
A.2.1 Before和After的语义
A.2.2 Around的语义
A.3 对Pointcuts建模
A.4 对用例切片建模
附录B 符号指南
B.1 包(Package)
B.2 参与者和用例
B.3 类和实例
B.4 组件和接口
B.5 进程和节点
参考文献
术语表
索引