本书介绍了UML的基础知识,包括UML的术语、规则和语言特点,以及如何运用该语言去解决常见的建模问题。书中给出了大量实例,这种基于实际应用的学习方式,有助读者迅速掌握UML的基本概念、独特性质及应用。初学者学习UML最好从阅读本书开始。本书的三位作者是面向对象方法最早的倡导者,是UML的原创人。对于高级开发人员,本书提供了在高级建模问题中应用UML的一条非常实用的线索。
译者序
译者介绍
前言
第一部分 入门
第1章 为什么要建模 3
1.1 建模的重要性 3
1.2 建模原理 6
1.3 面向对象的建模 7
第2章 UML介绍 9
2.1 UML概述 9
2.2 UML的概念模型 11
2.3 体系结构 21
2.4 软件开发生命周期 22
第3章 世界,你好! 25
3.1 关键抽象 25
3.2 机制 28
3.3 构件 29
第二部分 对基本结构建模
第4章 类 33
4.1 入门 33
4.2 术语和概念 34
4.3 普通建模技术 38
4.3.1 对系统的词汇建模 38
4.3.2 对系统中职责的分布建模 39
4.3.3 对非软件事物建模 40
4.3.4 对简单类型建模 40
4.4 提示和技巧 41
第5章 关系 42
5.1 入门 42
5.2 术语和概念 43
5.3 普通建模技术 47
5.3.1 对简单依赖建模 47
5.3.2 对单继承建模 48
5.3.3 对结构关系建模 49
5.4 提示和技巧 50
第6章 公共机制 52
6.1 入门 52
6.2 术语和概念 53
6.3 普通建模技术 57
6.3.1 对注释建模 57
6.3.2 对新构造块建模 58
6.3.3 对新特性建模 59
6.3.4 对新语义建模 60
6.4 提示和技巧 61
第7章 图 63
7.1 入门 63
7.2 术语和概念 64
7.3 普通建模技术 68
7.3.1 对系统的不同视图建模 68
7.3.2 对不同的抽象层次建模 69
7.3.3 对复杂视图建模 71
7.4 提示和技巧 71
第8章 类图 73
8.1 入门 73
8.2 术语和概念 73
8.3 普通建模技术 75
8.3.1 对简单协作建模 75
8.3.2 对逻辑数据库模式建模 76
8.3.3 正向工程和逆向工程 78
8.4 提示和技巧 80
第三部分 对高级结构建模
第9章 高级类 83
9.1 入门 83
9.2 术语和概念 84
9.3 普通建模技术 91
9.4 提示和技巧 92
第10章 高级关系 94
10.1 入门 94
10.2 术语和概念 95
10.3 普通建模技术 104
10.4 提示和技巧 105
第11章 接口、类型和角色 106
11.1 入门 106
11.2 术语和概念 107
11.3 普通建模技术 111
11.3.1 对系统中的接缝建模 111
11.3.2 对静态和动态类型建模 112
11.4 提示和技巧 114
第12章 包 115
12.1 入门 115
12.2 术语和概念 116
12.3 普通建模技术 120
12.3.1 对成组的元素建模 120
12.3.2 对体系结构视图建模 122
12.4 提示和技巧 123
第13章 实例 124
13.1 入门 124
13.2 术语和概念 125
13.3 普通建模技术 129
13.3.1 对具体实例建模 129
13.3.2 对原型实例建模 130
13.4 提示和技巧 131
第14章 对象图 132
14.1 入门 132
14.2 术语和概念 133
14.3 普通建模技术 134
14.3.1 对对象结构建模 134
14.3.2 正向工程和逆向工程 135
14.4 提示和技巧 136
第四部分 对基本行为建模
第15章 交互 139
15.1 入门 139
15.2 术语和概念 140
15.3 普通建模技术 146
15.4 提示和技巧 147
第16章 用况 149
16.1 入门 149
16.2 术语和概念 151
16.3 普通建模技术 155
16.4 提示和技巧 157
第17章 用况图 158
17.1 入门 158
17.2 术语和概念 159
17.3 普通建模技术 160
17.3.1 对系统的语境建模 160
17.3.2 对系统的需求建模 161
17.3.3 正向工程和逆向工程 162
17.4 提示和技巧 163
第18章 交互图 165
18.1 入门 165
18.2 术语和概念 166
18.3 普通建模技术 170
18.3.1 按时间顺序对控制流建模 170
18.3.2 按组织对控制流建模 172
18.3.3 正向工程和逆向工程 173
18.4 提示和技巧 174
第19章 活动图 175
19.1 入门 175
19.2 术语和概念 176
19.3 普通建模技术 183
19.3.1 对工作流建模 183
19.3.2 对操作建模 185
19.3.3 正向工程和逆向工程 186
19.4 提示和技巧 186
第五部分 对高级行为建模
第20章 事件和信号 191
20.1 入门 191
20.2 术语和概念 192
20.3 普通建模技术 195
20.3.1 对信号的族建模 195
20.3.2 对异常建模 196
20.4 提示和技巧 197
第21章 状态机 198
21.1 入门 198
21.2 术语和概念 200
21.3 普通建模技术 209
21.4 提示和技巧 211
第22章 进程和线程 213
22.1 入门 213
22.2 术语和概念 214
22.3 普通建模技术 218
22.3.1 对多控制流建模 218
22.3.2 对进程间通信建模 219
22.4 提示和技巧 221
第23章 时间和空间 222
23.1 入门 222
23.2 术语和概念 223
23.3 普通建模技术 225
23.3.1 对时间的约束建模 225
23.3.2 对对象的分布建模 226
23.3.3 对移动的对象建模 227
23.4 提示和技巧 228
第24章 状态图 229
24.1 入门 229
24.2 术语和概念 230
24.3 普通建模技术 232
24.3.1 对反应型对象建模 232
24.3.2 正向工程和逆向工程 233
24.4 提示和技巧 235
第六部分 对体系结构建模
第25章 构件 239
25.1 入门 239
25.2 术语和概念 240
25.3 普通建模技术 244
25.3.1 对可执行体和库建模 244
25.3.2 对表、文件和文档建模 245
25.3.3 对API建模 246
25.3.4 对源代码建模 247
25.4 提示和技巧 248
第26章 实施 249
26.1 入门 249
26.2 术语和概念 250
26.3 普通建模技术 252
26.3.1 对处理器和设备建模 252
26.3.2 对构件的分布建模 253
26.4 提示和技巧 254
第27章 协作 255
27.1 入门 255
27.2 术语和概念 256
27.3 普通建模技术 260
27.3.1 对用况的实现建模 260
27.3.2 对操作的实现建模 261
27.3.3 对机制建模 262
27.4 提示和技巧 262
第28章 模式和框架 263
28.1 入门 263
28.2 术语和概念 264
28.3 普通建模技术 267
28.3.1 对设计模式建模 267
28.3.2 对体系结构模式建模 269
28.4 提示和技巧 270
第29章 构件图 271
29.1 入门 271
29.2 术语和概念 272
29.3 普通建模技术 273
29.3.1 对源代码建模 273
29.3.2 对可执行体的发布建模 275
29.3.3 对物理数据库建模 276
29.3.4 对可适应的系统建模 277
29.3.5 正向工程和逆向工程 278
29.4 提示和技巧 279
第30章 实施图 281
30.1 入门 281
30.2 术语和概念 282
30.3 普通建模技术 283
30.3.1 对嵌入式系统建模 283
30.3.2 对客户/服务器系统建模 284
30.3.3 对全分布式系统建模 286
30.3.4 正向工程和逆向工程 287
30.4 提示和技巧 287
第31章 系统和模型 289
31.1 入门 289
31.2 术语和概念 290
31.3 普通建模技术 292
31.3.1 对系统的体系结构建模 292
31.3.2 对系统的系统建模 294
31.4 提示和技巧 294
第七部分 结 束 语
第32章 应用UML 297
32.1 转换到UML 297
32.2 下一步如何做 298
附录A UML表示法 299
附录B UML标准元素 303
附录C Rational统一过程 307
术语表 312
索引 321
统一建模语言(Unified Modeling Language,UML)是一种用于对软件密集型系统的制品进行可视化、详述、构造和文档化的图形语言。UML给出了一种描绘系统蓝图的标准方法,其中既包括概念性的事物,如业务过程和系统功能,也包括了具体的事物,如用特定的编程语言编写的类、数据库模式和可复用的软件构件。
本书旨在教会读者如何有效地使用UML。
目标
在本书中,读者将获益于以下几点:
·明白UML是什么,不是什么,以及为什么UML与开发软件密集型系统的过程相关。
·掌握UML的术语、规则和语言特点,并且一般说来还将学会如何有效地使用这种语言。
·知道如何应用UML去解决若干普通的建模问题。
这本用户指南为具体使用UML的特征提供了参考,但它不是一本全面的UML参考手册。对于全面的UML描述,请参考《UML参考手册》(Rumbaugh、Jacobson、Booch合著,Addison-Wesley出版公司1999年出版)。(本书的中文版已由机械工业出版社出版。—译者注)
这本用户指南描述了一个使用UML进行开发的过程,但它并不提供对于开发过程的完整参考。并于开发过程的完整参考,请参考《统一软件开发过程》(Jacobson、Booch、Rumbaugh合著,Addison-Wesley出版公司1999年出版)。(本书的中文版即将由机械工业出版社出版。—译者注)
最后,本书提供了如何运用UML去解决若干普通的建模问题的线索和技巧,但没有讲述如何去建模。这类似于一本编程语言的用户指南,它教用户如何使用语言,而不教用户如何编程。
读者对象
进行软件生产、部署和维护的人员均可使用UML。这本用户指南主要针对用UML进行建模的开发组的成员,但它也适用于为了理解、建造、测试和发布一个软件密集型系统而一起工作的读者。虽然这几乎包含了软件开发组织中的所有角色,但本指南特别适合于下述人员:分析员和最终客户(他们要详细说明系统应该具有的结构和行为)、体系结构设计人员(他们设计满足需求的系统)、开发人员(他们把体系结构转换为可执行的代码)、质量保证人员(他们检验并确认系统的结构和行为)、库管理人员(他们创建构件并对构件进行编目)、项目及程序管理者(他们一般是把握方向的领导者,要进行有序地管理,并合理地分配资源,以保证系统的成功)。
使用本指南的人员应该具有面向对象概念的基本知识。如果读者具有面向对象的编程经验或懂得面向对象的方法,就能更容易地掌握本指南,但这并不是必需的。
怎样使用本书
初次接触UML的开发者最好要按顺序阅读本书。第2章提出了UML的概念模型,读者应要特别予以注意。所有的章节都建立了结构,这种结构标明了与当前章节内容相关的其他章节,使得当前章节成为某一阅读线索中的一部分。
对于寻找用UML建模的一般问题答案的有经验的开发者来说,可以按任意顺序使用本书。读者应该特别注意在各章中提及的普遍建模问题。
本书的组织及特点
这本用户指南主要由7个部分组成:
·第一部分 入门
·第二部分 对基本结构建模
·第三部分 对高级结构建模
·第四部分 对基本行为建模
·第五部分 对高级行为建模
·第六部分 对体系结构建模
·第七部分 结束语
·本指南还含有3个附录:UML表示法的概要,UML标准元素的列表,Rational 统一过程的概要。在附录后,本指南还提供了一个术语表。
各章都描述了相应的UML特征的具体用法,其中的大部分按下述方式组织:
1)入门
2)术语和概念
3)普通建模技术
4)提示和技巧
第三部分引入并解决了一组普通建模问题。为了使读者容易地浏览本指南,以便寻找所需要的部分,每一个问题都标有一个明显的标题,如下面的例子。
对体系结构模式建模
每一章都以一个覆盖本章内容的特征概要开始,如下例。
本章内容
·主动对象、进程和线程
·对多控制流建模
·对进程间通信建模
·建立线程的安全抽象
类似地,把附加的解释和常规的指导作为注释的一部分,如下例所示。
注释 通过使用一个像0..1、3..4、6..*这样的列表,可以描述更为复杂的多重性,该列表的含义是“除了2个或5个对象外,可以有任意数目的对象”。
UML的语义是丰富的,因此对一个特征的描述自然地会涉及到另一个特征。在这种情况下,在自然段的最后部分标注交叉参照,正如本段这样。【在第25章讨论构件。】
在图中使用的蓝字是为了表明这些文字不是模型本身的一部分,只是用于解释模型。(中文版中用汉字代替蓝字表示这种区别。—译者注)程序代码用monospace字体表示以示区别,如this example。(中文版中用英文表示这种区别。—译者注)