第1章 案例场景 1
案例场景A——课程注册管理系统 1
业务背景 1
业务需求 1
解决方案 1
功能描述 2
任务说明 2
案例场景B——机票预订管理系统 3
业务背景 3
业务需求 3
解决方案 3
功能描述 3
任务说明 4
第2章 初识GOAD和UML 5
案例场景 5
搭建分析和设计环境 5
任务 5
GOAD中常用到的UML 9
图 9
符号 16
第一次使用UML进行OOAD 21
任务 21
为什么要学习OOAD和UML 25
小结 26
习题 27
课堂练习 27
任务 27
课后实践 27
任务 27
第3章UML到Java的映射 29
案例场景 29
表示结构 29
任务 29
表示关系 34
任务 34
小结 45
习题 46
课堂练习 46
任务 46
课后实践 46
任务 46
第4章 收集需求 47
案例场景 47
需求调研 47
业务需求 48
业务建模 48
任务 48
业务描述 51
系统需求 54
用例建模 54
任务 54
用例描述 59
习题 64
小结 64
课堂练习 64
任务 64
课后实践 64
任务 64
第5章用UML进行面向对象分析 65
案例场景 65
基于用例的面向对象分析 65
静态分析 66
任务 66
动态分析 73
分析顺序图 73
任务 73
分析活动图 80
任务 80
分析状态图 83
任务 83
通过界面原型验证功能需求 85
任务 85
小结 93
习题 94
课堂练习 94
任务 94
课后实践 94
任务 94
第6章 架构设计 95
案例场景 95
架构设计原则 96
架构、框架和设计模式的关系 97
架构设计要解决的问题 102
架构模式 103
分层 103
MVC 104
SOA 105
J2EE应用架构设计 109
分层 109
任务 109
各层间通信 113
包图及各包描述 113
任务 116
类图 118
顺序图 118
构件图 120
任务 122
部署图 123
任务 124
对分析类进行技术选型 125
边界类 125
控制类 125
实体类 125
通过架构原型验证非功能需求 126
小结 127
习题 127
课堂练习 127
任务 127
课后实践 128
任务 128
第7章 面向对象设计原则 129
案例场景 130
引言 130
单一责任原则(SRP) 131
任务 131
开放封闭原则(OCP) 134
完全替换原则(LSP) 135
合成/聚合复用原则(CARP) 139
任务 139
依赖倒转原则(DIP) 141
接口隔离原则(ISP) 142
最少知识原则(LOD) 144
无循环依赖原则(ADP) 145
任务 145
小结 146
习题 147
课堂练习 147
任务 147
课后实践 147
任务 147
第8章 可重用的设计模式 149
案例场景 149
使用设计模式解决设计问题 149
创建对象实例 151
创建唯一的对象*全局访问——Singleton(单例) 151
缓存对象——Object Pool(对象池) 154
任务 155
分离具体的类——Factory(工厂) 157
类间的关系 161
为系统中的一组接口提供一致的界面——Facade(外观) 161
转换成客户需要的接口——Adapter(适配器) 162
对象间的通信 165
把请求封装成一个对象——command(命令) 165
通知状态变化——Observer(观察者) 169
应对变化——Strategy(策略) 173
任务 173
小结 178
习题 178
课堂练习 178
任务 178
课后实践 178
任务 178
第9章 详细设计 179
案例场景 179
基于用例的设计 179
任务 180
子系统设计 186
任务 186
映射分析类到设计类 193
任务 193
数据模型设计 203
任务 204
小结 209
习题 209
课堂练习 209
任务 209
课后实践 210
任务 210
第10章 代码重构 211
案例场景 211
重构原则 211
何时需要重构 212
重构分类 213
任务 217
小结 222
习题 222
课堂练习 222
任务 222
课后实践 223
任务 223
第11章UML 2*0的新特性 225
引言 225
提高模型的精确性 226
新的语言框架 227
建模能力增强 229
用例图增强 233
活动图增强 233
类图增强 236
通信图 237
集成OCL 237
何时使用OCL 238
同UML元模型的关系 239
基本值和类型 241
对象和属性 243
集合操作 248
OCL中的消息 251
小结 251
习题 252