目录 1
第1章 面向对象的原理与模式 1
1.1 原理、模式和OO范例 1
1.2 类的原理 5
1.2.1 开放封闭原理(OCP) 5
1.2.2 Liskov替代原理(LSP) 8
1.2.3 依赖性倒置原理(DIP) 9
1.2.4 接口分离原理(ISP) 10
1.2.5 构成重用原理(CRP) 12
1.2.6 最少知识原理(PLK) 15
1.3 包的原理 16
1.3.1 包的依赖 16
1.3.2 版本重用等价原理(REP) 17
1.3.3 通用闭包原理(CCP) 18
1.3.4 通用重用原理(CReP) 18
1.3.5 无环依赖原理(ADP) 19
1.3.6 稳定依赖原理(SDP) 20
1.3.7 稳定抽象原理(SAP) 21
1.4 模式 22
1.4.2 访问者 23
1.4.1 策略 23
1.4.3 层 25
1.5 总结 25
第2章 UML介绍 26
2.1 UML定义 26
2.2 起源 28
2.3 建模的作用 29
2.3.1 挑战 29
2.3.2 体系结构的复杂性 30
2.3.3 纠正 30
2.5 总结 31
2.4 优点 31
第3章 UML基础 33
3.1 模型和视图 33
3.1.1 基本元素 34
3.1.2 图 34
3.1.3 视图 34
3.2 核心图 36
3.2.1 行为图 36
3.2.2 结构图 37
3.3 基本元素 38
3.3.1 结构元素 38
3.3.2 Java无关的实体 39
3.3.3 Java相关的实体 40
3.3.4 与Java的依赖关系 41
3.4 注释 43
3.5 扩展机制 44
3.6 关于图的介绍 45
3.6.1 顺序图 45
3.6.2 类图 46
3.6.3 包图 47
3.7 总结 48
4.1 定义的过程 49
第4章 UML和软件过程 49
4.2 最优经验 50
4.2.1 行为驱动 51
4.2.2 以结构为中心 51
4.2.3 重复 51
4.2.4 重构 52
4.2.5 可视化建模 52
4.2.6 简单原型 53
4.3 开发周期和UML 53
4.3.1 需求 55
4.3.2 分析和设计 57
4.3.3 构建 60
4.3.4 测试 62
4.3.5 调度 62
4.4 整个生命周期 62
4.5 总结 64
第5章 建模策略 65
5.1 集成目标 65
5.1.1 开发方法 65
5.1.2 工具方法 67
5.2 集成因素 69
5.2.2 软件过程 70
5.2.1 开发文化 70
5.2.3 面向对象经验 71
5.2.4 技术方面 71
5.2.5 建模策略 71
5.3 集成策略 72
5.4 总结 75
第6章 需求模型 76
6.1 符号 77
6.1.1 行动者 77
6.1.2 Use Case 77
6.1.4 Use Case图 78
6.1.3 关系 78
6.1.5 原型 79
6.2 需求建模 80
6.2.1 问题陈述 80
6.2.2 Use Case图 81
6.2.3 Use Case规范 82
6.2.4 额外的元素 85
6.3 总结 85
7.1 符号 86
7.1.1 类 86
第7章 问题分析 86
7.1.2 关联 87
7.1.3 包 87
7.1.4 依赖 88
7.1.5 原型 88
7.1.6 协作 88
7.1.7 实现 88
7.2 确定初始概念 89
7.3 软件规范说明书 90
7.3.1 边界 91
7.3.3 控制 92
7.3.2 实体 92
7.4 建立体系结构 93
7.5 分配类 94
7.6 总结 95
第8章 行为建模 97
8.1 符号 97
8.1.1 对象 97
8.1.2 消息 98
8.1.3 顺序图 98
8.1.4 协作图 99
8.2 Use Case实现 100
8.3 功能分配 101
8.3.1 分散式控制流和集中式控制流 106
8.3.2 作为仲裁者的控制器 106
8.3.3 管理集合 108
8.3.4 访问方法和变更方法 108
8.3.5 其他图 110
8.3.6 简单原型 112
8.4 模型结构 114
8.5 总结 115
9.1 符号 116
9.1.1 类图 116
第9章 结构建模 116
9.1.2 结构元素 117
9.1.3 关系 117
9.2 耦合性和内聚性 118
9.3 几种有用的类图 119
9.3.1 包图 119
9.3.2 接口图 120
9.3.3 实现图 121
9.4 识别结构 122
9.4.1 复杂结构 122
9.3.4 参与类视图 122
9.4.2 对象工厂 130
9.4.3 集合 133
9.4.4 结构说明 135
9.5 模型结构 135
9.6 总结 137
第10章 系统结构建模 138
10.1 定义系统结构 138
10.2 构建系统结构 139
10.3 系统结构机制 139
10.3.1 分层 140
10.3.2 观察 141
10.3.3 Model-View-Controller(MVC) 142
10.3.4 分区 143
10.4 系统结构视图 144
10.5 框架和类库 148
10.5.1 框架 148
10.5.2 类库 153
10.6 构件系统结构 154
10.6.1 定义构件 154
10.6.2 构件和UML 155
10.6.3 构件示例 155
10.7 总结 155
11.1 定义子系统 157
第11章 设计子系统 157
11.2 Java中的子系统 159
11.3 子系统规范 162
11.4 子系统识别 165
11.5 开发子系统 165
11.6 作为框架的子系统 165
11.7 总结 165
附录A 统一开发过程(RUP)和极限编程(XP) 167
附录B J2EE和UML 173
附录C UML练习的代码实现 179
参考文献 182