第1章 UML介绍 1
1.1建模的目的 2
1.2软件开发、方法和建模 3
1.2.1方法之战 5
1.2.2UML的认可 8
1.2.3对象管理组织 8
1.2.4统一建模语言的元素 9
1.2.5方法和建模语言 9
1.3面向对象软件开发 10
1.3.1面向对象的概念 11
1.3.2业务工程 12
1.4系统开发科目 12
1.4.1需求 13
1.4.2分析 13
1.4.3设计 13
1.5UML2中的相关变化 14
1.4.5测试 14
1.4.4实现 14
1.6小结 16
第2章 UML概述 17
2.1视图 18
2.1.1用例视图 20
2.1.2逻辑视图 21
2.1.3实现视图 21
2.1.4进程视图 21
2.2.1用例图 22
2.1.5部署视图 22
2.2图 22
2.2.2类图 23
2.2.3对象图 23
2.2.4状态机 25
2.2.5活动图 26
2.2.6交互图 26
2.2.8部署图 29
2.2.7组件图 29
2.2.9复合结构图 30
2.3模型元素 31
2.4通用机制 32
2.4.1修饰 33
2.4.2注释 33
2.4.3规格说明 34
2.5扩展UML 35
2.5.1构造型 35
2.5.2标记值 36
2.5.3约束 37
2.6UML的模型驱动架构 37
2.7软件开发过程和UML 39
2.8工具 41
2.8.1绘图支持 43
2.8.2模型存储库 43
2.8.5代码生成 45
2.8.3导航 45
2.8.4多用户支持 45
2.8.6逆向工程 46
2.8.7工具集成 47
2.8.8模型互换 48
2.8.9工具选择 49
2.9UML2中相关变化 50
2.10本章小结 51
第3章 用例建模 53
3.1用例的基本要素 53
3.2用例图 55
3.3系统 56
3.4参与者 57
3.4.1发现参与者 58
3.4.2UML中的参与者 59
3.4.3参与者之间的关系 60
3.5用例 61
3.5.1发现用例 62
3.5.2UML中的用例 63
3.5.3用例之间的关系 63
3.6组织用例 66
3.7描述用例 69
3.8评估用例 71
3.9测试用例 71
3.10用例与需求管理 72
3.11实现用例 73
3.12UML2中相关变化 77
3.13本章小结 78
第4章 类、对象及其关系 80
4.1类和对象 80
4.2类图 82
4.2.1发现类 83
4.2.3属性部分 84
4.2.2名称部分 84
4.2.4Java实现 87
4.2.5操作部分 88
4.2.6使用简单类型 91
4.3关系 91
4.4关联 92
4.4.1标准关联 92
4.4.3递归关联 95
4.4.2对象图 95
4.4.4Java实现 96
4.4.5关联中的角色 98
4.4.6限定关联 98
4.4.7异或约束 99
4.4.8有序关联 100
4.4.9关联类 101
4.4.10三元关联 102
4.4.11聚合 103
4.5泛化 106
4.5.1基本泛化关系 107
4.5.2高级泛化关系 112
4.6依赖和抽象 115
4.7约束、表达式和导出 117
4.8接口和端口 120
4.8.1Java实现 122
4.8.2端口 123
4.9包 124
4.10模板 128
4.11UML2中相关变化 129
4.12本章小结 130
第5章 动态建模 131
5.1状态机 132
5.1.1状态和转换 133
5.1.2事件 139
5.1.3Java实现 142
5.2在状态机之间发送消息 145
5.2.1子状态 146
5.2.2进入、退出和终止指示器 146
5.2.3历史指示器 147
5.3活动图 148
5.3.1活动和过渡 149
5.3.2活动分区 152
5.3.3对象 153
5.3.4信号 153
5.3.5引脚 154
5.3.6使用活动图进行业务建模 156
5.4交互图 158
5.4.1顺序图 158
5.4.2交互概观图 165
5.4.3通信图 166
5.4.4消息标签 167
5.4.5使用通信图 169
5.5UML2中相关变化 170
5.6本章小结 172
第6章 实时系统描述的高级动态建模 173
6.1实时系统定义 173
6.1.1实时系统的特征 173
6.1.2实时系统的类型 174
6.2UML中用于实时系统的概念 175
6.2.1主动类和主动对象 175
6.2.2通信 177
6.2.3同步和并发 182
6.2.4容错性 184
6.2.5Java实现 185
6.3UML时间元素 187
6.4用UML图为实时系统建模 188
6.4.1活动图 189
6.4.2住宅警报:表示动态消息的静态结构 198
6.4.3交互图 203
6.4.4行为状态机 211
6.4.5协议状态机 219
6.5高级建模、设计和优化 221
6.5.1设计概述 222
6.5.2性能优化 226
6.6UML2中相关变化 228
6.7本章小结 229
第7章 物理体系结构 231
7.1逻辑体系结构 233
7.1.1逻辑体系结构组成 234
7.1.2体系结构中的模式 238
7.1.3代理模式 241
7.2UML中的建模模式 243
7.2.1在图中显示模式 246
7.2.2模式和用例 248
7.3物理体系结构 249
7.3.1硬件 250
7.3.2软件 250
7.4组件图 251
7.5部署图 252
7.5.1节点 253
7.5.2通信路径 254
7.5.3部署的制品 254
7.6将制品分配到节点 255
7.7UML2中相关变化 256
7.8本章小结 257
第8章 扩展UML 258
8.1标准扩展概述 259
8.2标记值和特性 260
8.2.1标准标记值示例 261
8.2.2利用用户配置文件定义标记值 262
8.2.3定义自己的标记值 262
8.3构造型 264
8.3.1创建构造型 264
8.3.2UML构造型示例 266
8.3.3现已不用的构造型 274
8.3.4定义自己的构造型 275
8.4约束 277
8.4.1UML约束示例 277
8.4.2定义自己的约束 279
8.5一种表达约束的语言 281
8.5.1OCL元模型 282
8.5.2OCL表达式的基本结构 283
8.5.3不变量、前置条件和后置条件 284
8.6语言体系结构和内核概述 285
8.6.1高层语言结构 286
8.6.2审查UML内核 288
8.6.3用户配置文件包 293
8.6.4体系结构概述总结和短评 295
8.7UML2中相关变化 296
8.8本章小结 297
9.1MDA的演变及目标 299
9.1.1背景和总体目标 299
第9章 模型驱动架构 299
9.1.2模型层 303
9.1.3模型编译器 304
9.1.4映射MDA元素 307
9.2从业务模型到PIM和PSM 307
9.2.1高层回顾 308
9.2.2定义不考虑平台的功能 312
9.2.3特定平台模型 313
9.2.4信息管理解决方案 315
9.3在MDA世界中的建模技巧 316
9.3.1用于业务和功能分析的建模 316
9.3.2针对软件架构师的建模 317
9.3.3针对开发人员的建模 318
9.4MDA机会的高层评估 320
9.4.1机会 320
9.4.2警告 323
9.5本章小结 325
第10章 一个使用UML的过程 327
10.1定义和理解软件工程过程 328
10.1.1过程上下义 328
10.1.2过程用户 329
10.1.3过程步骤 330
10.1.4过程评估 332
10.2UML过程的基础 332
10.2.1用例驱动系统 333
10.2.2以体系结构为中心的方法 334
10.2.3迭代方法 335
10.2.4增量方法 335
10.3传统的面向对象方法 338
10.3.1需求 339
10.3.2分析 340
10.3.3设计 341
10.3.4实现 343
10.3.5测试 344
10.4统一过程 345
10.4.1生命周期 347
10.4.2初始 348
10.4.3细化 348
10.4.4构造 349
10.4.5移交 349
10.4.6统一过程与传统过程的比较 350
10.5过程工具 351
10.6模型质量 353
10.6.1什么样的模型是一个好模型 354
10.6.2模型协作 355
10.6.3模型复杂性 356
10.7本章小结 356
第11章 案例学习 358
11.1需求 360
11.1.1开发一个设想 360
11.1.2建立用例模型 361
11.1.3建立问题域模型 364
11.2分析 366
11.2.1执行用例分析 366
11.2.2不用UML,那么可以怎样做 371
11.3设计 372
11.3.1体系结构设计 372
11.3.2执行详细设计 378
11.3.3用户界面设计 383
11.4实现 383
11.5测试和部署 386
11.6本章小结 387
11.7练习 388
11.7.1需求和分析练习 388
11.7.2设计和构造练习 389
附录A 符号集 390
附录B 术语表 417
附录C 参考书目 433
附录D 光盘内容介绍 437