第一部分 基础知识 1
第1章 UML简介 1
1.1在纷繁复杂中寻求解决问题的办法 2
1.2 UML的诞生 2
1.3 UML的组成 3
1.3.1类图 3
1.3.2对象图 4
1.3.3用例图 5
1.3.4状态图 5
1.3.5顺序图 6
1.3.6活动图 7
1.3.7协作图 8
1.3.8构件图 9
1.3.9部署图 9
1.4其他特征 10
1.4.1注释 10
1.4.2关键字和构造型 10
1.5 UML 2.0中的新图 11
1.5.1组成结构图 11
1.5.2交互纵览图 12
1.5.3计时图 13
1.5.4有创新也有保留的包图 13
1.6为什么需要这么多种图 14
1.7这不仅仅是一系列图 14
1.8小结 15
1.9常见问题解答 15
1.10小测验和习题 16
1.10.1小测验 16
1.10.2习题 16
第2章 理解面向对象 18
2.1无处不在的对象 18
2.2一些面向对象的概念 20
2.2.1抽象 20
2.2.2继承 21
2.2.3多态性 22
2.2.4封装 22
2.2.5消息传递 23
2.2.6关联 24
2.2.7聚集 25
2.3意义 26
2.4小结 27
2.5常见问题解答 27
2.6小测验和习题 28
第3章 运用面向对象 29
3.1类的可视化表示 29
3.2属性 30
3.3操作 31
3.4属性、操作和可视化表达 32
3.5职责和约束 33
3.6附加注释 34
3.7类——应该做什么和如何识别它们 35
3.8小结 37
3.9常见问题解答 37
3.10小测验和习题 37
3.10.1小测验 37
3.10.2习题 38
第4章 关系 39
4.1关联 39
4.1.1关联上的约束 40
4.1.2关联类 41
4.1.3链 41
4.2多重性 41
4.3限定关联 43
4.4自身关联 43
4.5继承和泛化 44
4.5.1找出继承关系 45
4.5.2抽象类 46
4.6依赖 46
4.7类图和对象图 47
4.8小结 48
4.9常见问题解答 49
4.10小测验和习题 49
4.10.1小测验 49
4.10.2习题 49
第5章 聚集、组成、接口和实现 51
5.1聚集 51
5.2组成 52
5.3组成结构图 52
5.4接口和实现 53
5.5接口和端口 56
5.5.1可见性 56
5.5.2作用域 57
5.6小结 57
5.7常见问题解答 58
5.8小测验和习题 58
5.8.1小测验 58
5.8.2习题 58
第6章 介绍用例 59
6.1什么是用例 59
6.2用例的重要性 60
6.3举例:饮料销售机 60
6.3.1用例“买饮料” 60
6.3.2其他用例 61
6.4包含用例 62
6.5扩展用例 63
6.6开始用例分析 64
6.7小结 64
6.8常见问题解答 64
6.9小测验和习题 65
6.9.1小测验 65
6.9.2习题 65
第7章 用例图 66
7.1用例模型的表示法 66
7.1.1回顾饮料销售机 67
7.1.2跟踪场景中的步骤 67
7.2用例之间关系的可视化表示 68
7.2.1包含 68
7.2.2扩展 69
7.2.3泛化 70
7.2.4分组 71
7.3用例图在分析过程中的作用 71
7.4运用用例模型:举例 71
7.4.1理解领域 71
7.4.2理解用户 72
7.4.3理解用例 73
7.4.4进一步深入 74
7.5“清查存货” 75
7.5.1结构元素 75
7.5.2关系 75
7.5.3分组 76
7.5.4注释 76
7.5.5扩展 76
7.5.6其他 76
7.6 UML“大图” 76
7.7小结 77
7.8常见问题解答 77
7.9小测验和习题 77
7.9.1小测验 78
7.9.2习题 78
第8章 状态图 79
8.1什么是状态图 79
8.1.1基本符号集 80
8.1.2在状态图标中增加细节 80
8.1.3增加转移的细节:事件和动作 81
8.1.4增加转移的细节:保护条件 82
8.2子状态 82
8.2.1顺序子状态 82
8.2.2并发子状态 83
8.3历史状态 84
8.4 UML 2.0中的新变化 84
8.5为什么状态图很重要 85
8.6 UML“大图” 85
8.7小结 86
8.8常见问题解答 87
8.9小测验和习题 87
8.9.1小测验 87
8.9.2习题 87
第9章 顺序图 88
9.1什么是顺序图 88
9.1.1对象 88
9.1.2消息 88
9.1.3时间 89
9.2汽车和车钥匙 90
9.2.1类图 90
9.2.2顺序图 91
9.3饮料销售机 92
9.4顺序图:一般顺序图 95
9.5在消息序列中创建对象实例 96
9.6帧化顺序图:UML 2.0中的顺序图 98
9.6.1交互事件 98
9.6.2交互片段的组合 100
9.7 UML“大图” 101
9.8小结 102
9.9常见问题解答 102
9.10小测验和习题 102
9.10.1小测验 103
9.10.2习题 103
第10章 协作图 104
10.1什么是协作图 104
10.2汽车和车钥匙 105
10.3饮料销售机 108
10.4创建对象 109
10.5编号的一点注意事项 109
10.6其他概念 110
10.6.1发送给多对象的消息 110
10.6.2返回结果 110
10.6.3主动对象 111
10.6.4同步 111
10.7 UML“大图” 112
10.8小结 113
10.9常见问题解答 113
10.10小测验和习题 113
10.10.1小测验 113
10.10.2习题 114
第11章 活动图 115
11.1基础:什么是活动图 115
11.1.1判定 116
11.1.2并发路径 116
11.1.3信号 117
11.2活动图的应用 117
11.3泳道 118
11.4混合图 120
11.5 UML 2.0中的新概念 121
11.5.1一个活动的对象 121
11.5.2处理异常 122
11.5.3活动的析构 122
11.5.4标记时间并结束流程 123
11.5.5特殊影响 124
11.6对一个交互的纵览 125
11.7 UML“大图” 128
11.8小结 128
11.9常见问题解答 129
11.10小测验和习题 130
11.10.1小测验 130
11.10.2习题 130
第12章 构件图 131
12.1什么是构件 131
12.2构件和接口 131
12.2.1回顾接口 132
12.2.2替换和复用 132
12.3什么是构件图 133
12.3.1在UML 1.x和UML 2.0中表示一个构件 133
12.3.2接口表示法 134
12.3.3黑盒和白盒 135
12.4应用构件图 135
12.5 UML“大图”中的构件图 139
12.6小结 140
12.7常见问题解答 140
12.8小测验和习题 141
12.8.1小测验 141
12.8.2习题 141
第13章 部署图 142
13.1什么是部署图 142
13.2应用部署图 144
13.2.1家用计算机系统 144
13.2.2令牌环网 145
13.2.3 ARCnet 146
13.2.4细缆以太网 146
13.2.5 Ricochet无线网 147
13.3 UML“大图”中的部署图 148
13.4小结 149
13.5常见问题解答 149
13.6小测验和习题 149
13.6.1小测验 149
13.6.2习题 149
第14章 理解包和UML语言基础 150
14.1包图 150
14.1.1包的作用 150
14.1.2包之间的关系 151
14.1.3合并包 152
14.2层级 153
14.2.1一个类比 154
14.2.2继续 155
14.3大胆深入 155
14.4用包表示UML的底层结构 156
14.4.1 Core包 157
14.4.2 Profiles包 158
14.5回到UML 160
14.5.1又见4层结构 161
14.5.2用包表示UML的上层结构 161
14.6 UML的扩展 163
14.6.1构造型 163
14.6.2图形构造型 164
14.6.3约束 165
14.6.4标记值 165
14.7小结 165
14.8常见问题解答 165
14.9小测验和习题 166
14.9.1小测验 166
14.9.2练习 166
第15章 在开发过程中运用UML 167
15.1开发过程方法学:传统的和现代的 167
15.1.1传统的开发过程方法学 167
15.1.2新的开发过程方法学 168
15.2开发过程中必须做什么 168
15.3 GRAPPLE 169
15.4 RAD3:GRAPPLE的结构 170
15.4.1需求收集 171
15.4.2分析 172
15.4.3设计 173
15.4.4开发 174
15.4.5部署 174
15.5 GRAPPLE总结 175
15.6小结 175
15.7常见问题解答 175
15.8小测验和习题 176
第二部分 学习案例 177
第16章 学习案例介绍 177
16.1从业务入手 177
16.2用GRAPPLE开发过程解决问题 177
16.3发现业务过程 178
16.3.1招待一位顾客 178
16.3.2准备饭菜 185
16.3.3清理餐桌 186
16.4吸取的经验教训 186
16.5小结 187
16.6常见问题解答 187
16.7小测验和习题 188
16.7.1小测验 188
16.7.2习题 188
第17章 领域分析 189
17.1分析业务过程会谈 189
17.2开发初步类图 190
17.3对类分组 191
17.4形成关联 193
17.4.1 Customer参与的关联 193
17.4.2 Server参与的关联 195
17.4.3 Chef参与的关联 197
17.4.4 Busser参与的关联 197
17.4.5 Manager参与的关联 197
17.4.6其他问题 198
17.5形成聚集和组成 199
17.6填充类的信息 200
17.6.1 Customer类 200
17.6.2 Employee类 200
17.6.3 Check类 202
17.7有关模型的一些问题 202
17.7.1模型词典 202
17.7.2模型图的组织 202
17.8吸取的经验教训 203
17.9小结 203
17.10常见问题解答 203
17.11小测验和习题 203
17.11.1小测验 204
17.11.2习题 204
第18章 收集系统需求 205
18.1开发系统的映像 207
18.2收集系统需求 211
18.3需求联合应用开发会议 211
18.4结果 214
18.5下一步该做什么 216
18.6小结 216
18.7常见问题解答 216
18.8小测验和习题 217
18.8.1小测验 217
18.8.2习题 217
第19章 开发用例 218
19.1分析和描述用例 218
19.2用例分析 218
19.3 Server包 219
19.3.1用例“Take an Order” 220
19.3.2用例“Transmit the Order to the Kitchen” 220
19.3.3用例“Change an Order” 221
19.3.4用例“Track Order Status” 221
19.3.5用例“ Notify Chef about Party Status” 222
19.3.6用例“Total Up a Check” 223
19.3.7用例“Print a Check” 223
19.3.8用例“Summon an Assistant” 224
19.3.9其余的用例 225
19.4系统中的构件 225
19.5小结 226
19.6常见问题解答 226
19.7小测验和习题 227
19.7.1小测验 227
19.7.2习题 227
第20章 交互 228
20.1系统中的工作部件 228
20.1.1 Server包 228
20.1.2 Chef包 229
20.1.3 Busser包 229
20.1.4 Assistant Server包 229
20.1.5 Assistant Chef包 229
20.1.6 Bartender Chef包 230
20.1.7 Coat-Check Clerk包 230
20.2系统中的交互 230
20.2.1用例“Take an Order” 230
20.2.2用例“Change an Order” 232
20.2.3用例“Track Order Status” 233
20.3结论 234
20.4小结 234
20.5常见问题解答 235
20.6小测验和习题 235
20.6.1小测验 235
20.6.2习题 236
第21章 设计外观、感觉和部署 237
21.1 GUI设计的一般原则 237
21.2用于GUI设计的JAD Session 239
21.3从用例到用户界面 239
21.4用于GUI设计的UML图 241
21.5描绘出系统的部署 242
21.5.1网络 242
21.5.2节点和系统部署图 243
21.6下一步 244
21.7听听项目的发起人怎么说 244
21.7.1扩展销售区的地理范围 244
21.7.2扩展餐馆的地理范围 245
21.8小结 246
21.9常见问题解答 246
21.10小测验和习题 247
21.10.1小测验 247
21.10.2习题 247
第22章 理解设计模式 248
22.1参数化 248
22.2设计模式 250
22.3职责链模式 251
22.3.1职责链模式:餐馆领域 252
22.3.2职责链模式:Web浏览器事件模型 253
22.4我们自己的设计模式 254
22.5使用设计模式的好处 256
22.6小结 256
22.7常见问题解答 257
22.8小测验和习题 257
22.8.1小测验 257
22.8.2习题 257
第三部分 高级应用 258
第23章 嵌入式系统建模 258
23.1回到餐馆 258
23.2发明之母 258
23.3研制GetAGrip 259
23.4什么是嵌入式系统 261
23.5嵌入式系统中的基本概念 261
23.5.1时间 261
23.5.2线程 261
23.5.3中断 262
23.5.4操作系统 263
23.6对GetAGrip系统建模 265
23.6.1类 265
23.6.2用例 267
23.6.3交互 267
23.6.4整体状态变化 270
23.6.5整体部署 270
23.7锻炼肌肉 271
23.8小结 271
23.9常见问题解答 272
23.10小测验和习题 272
23.10.1小测验 272
23.10.2习题 272
第24章 描绘UML的未来 273
24.1在业务领域的扩展 273
24.2从业务领域的扩展得到的经验 274
24.3图形用户界面 274
24.3.1连接到用例 274
24.3.2 GUI建模 275
24.4专家系统 276
24.4.1专家系统的构件 276
24.4.2举例 278
24.4.3知识库建模 279
24.5 Web应用 281
24.6就写到这里吧 283
24.7小结 283
24.8常见问题解答 283
24.9小测验和习题 284
24.9.1小测验 284
24.9.2习题 284
第四部分 附录 285
附录A 小测验答案 285
附录B UML建模工具 294
附录C UML图总结 312