第一部分 基礎篇
第1章 緒論 3
1.1 統(tǒng)一建模語言UML 3
1.1.1 UML的背景 3
1.1.2 UML的發(fā)展 3
1.1.3 UML的內容 5
1.1.4 UML的主要特點 5
1.1.5 UML的功能 6
1.1.6 UML的組成 7
1.2 Rational統(tǒng)一過程(Rational Unified Process) 9
1.2.1 RUP的發(fā)展 9
1.2.2 什么是RUP 10
1.2.3 過程概覽 11
1.2.4 時間軸 12
1.2.5 迭代 14
1.2.6 工作流(Workflows) 15
1.2.7 微過程的劃分 16
1.3 工具 20
1.4 小結 20
第2章 面向對象分析與設計方法 21
2.1 OOA/OOD方法 21
2.1.1 面向對象分析(OOA) 23
2.1.2 面向對象設計(OOD) 24
2.2 OMT方法 25
2.2.1 分析 26
2.2.2 系統(tǒng)設計 28
2.2.3 對象設計(Object Design) 29
2.2.4 實現(xiàn)(Implementation) 30
2.2.5 測試(Testing) 30
2.2.6 模型 30
2.3 Booch方法 31
2.3.1 宏過程 32
2.3.2 微過程 32
2.4 OOSE方法 34
2.4.1 分析階段 35
2.4.2 構造階段 35
2.4.3 測試階段 36
2.5 Fusion 方法 36
2.5.1 分析階段 37
2.5.2 設計階段 38
2.5.3 實現(xiàn)階段 39
2.6 小結 39
第3章 UML的關系 40
3.1 依賴關系(Dependency Relationship) 40
3.2 類屬關系(Generalization Relationship) 43
3.3 關聯(lián)關系(Association Relationship) 45
3.3.1 角色(Role)與階元(Multiplicity) 45
3.3.2 導航(Navigation) 46
3.3.3 可見性(Visibility) 47
3.3.4 限定符(Qualifier) 47
3.3.5 接口說明符(Interface Specifier) 48
3.3.6 聚合關系(Aggregation Relationship) 48
3.3.7 組合關系(Composition Relationship) 49
3.4 實現(xiàn)關系(Realize Relationship) 50
3.5 小結 51
第4章 UML的符號 52
4.1 注釋 (Note) 52
4.2 參與者(Actor) 52
4.3 用例(Use Case) 54
4.4 協(xié)作(Collaboration) 55
4.5 類(Class) 55
4.5.1 邊界類(Boundary Class) 58
4.5.2 實體類(Entity Class) 58
4.5.3 控制類(Control Class) 59
4.5.4 參數(shù)類(Parameterized Class) 59
4.6 對象(Object) 60
4.7 消息(Message) 61
4.8 接口(Interface) 62
4.9 包(Package) 64
4.10 組件(component) 66
4.11 狀態(tài)(State) 68
4.12 躍遷(transitions) 71
4.13 判定(Decision) 73
4.14 同步條(Synchronization Bars) 73
4.15 活動(Activities) 73
4.16 節(jié)點(Node)和設備(Device) 73
4.17 UML的擴充機制 75
4.17.1 原型(Stereotypes) 76
4.17.2 標記值(Tagged Values) 76
4.17.3 約束(Constraints) 77
4.18 小結 78
第5章 視與圖 79
5.1 視 79
5.2 UML的圖 80
5.3 小結 81
第6章 用例圖 82
6.1 用例圖(Use Case Diagrams) 82
6.2 參與者(Actor) 83
6.3 用例(Use Case) 85
6.3.1 用例的描述 86
6.3.2 用例與腳本(Scenario) 89
6.3.3 用例間的關系 89
6.4 用例圖的應用 91
6.5 小結 94
第7章 類圖與對象圖 95
7.1 類圖(Class Diagrams) 95
7.2 類圖的劃分 97
7.3 類圖的應用 98
7.4 對象圖(Object Diagrams) 101
7.5 對象圖的應用 101
7.6 小結 102
第8章 交互作用圖 103
8.1 時序圖(Sequence Diagrams) 104
8.2 協(xié)作圖(Collaboration Diagrams) 107
8.3 語義等價 107
8.4 交互作用圖的應用 108
8.5 小結 109
第9章 活動圖 110
9.1 活動圖(Activity Diagrams) 110
9.2 組成元素 110
9.2.1 動作狀態(tài) 110
9.2.2 活動狀態(tài) 112
9.2.3 躍遷 112
9.2.4 分支 112
9.2.5 分叉和聯(lián)結(Forking and Joining) 113
9.2.6 泳道(Swimlanes) 114
9.2.7 對象流(Object Flow) 115
9.3 活動圖的應用 117
9.4 小結 119
第10章 狀態(tài)圖 120
10.1 狀態(tài)圖(Statechart Diagrams) 120
10.2 應用 121
10.3 小結 124
第11章 組件圖與配置圖 125
11.1 組件圖(Component Diagrams) 125
11.2 組件圖的應用 125
11.3 配置圖(Deployment Diagrams) 128
11.4 配置圖的應用 129
11.5 小結 132
第二部分 實踐篇
第12章 圖書管理系統(tǒng)的分析與設計 135
12.1 系統(tǒng)需求 135
12.2 需求分析 136
12.2.1 識別參與者 136
12.2.2 識別用例 137
12.2.3 用例的事件流描述 139
12.3 靜態(tài)結構模型 144
12.3.1 定義系統(tǒng)對象 144
12.3.2 定義用戶界面類 152
12.3.3 建立類圖 157
12.4 動態(tài)行為模型 161
12.4.1 建立交互作用圖 161
12.4.2 建立狀態(tài)圖 175
12.5 物理模型 176
12.6 小結 177
第13章 銀行系統(tǒng)的分析與設計 178
13.1 系統(tǒng)需求 178
13.2 分析問題領域 178
13.2.1 識別參與者 179
13.2.2 識別用例 179
13.2.3 用例的事件流描述 180
13.3 靜態(tài)結構模型 189
13.3.1 定義系統(tǒng)對象 189
13.3.2 定義用戶界面類 194
13.3.3 建立類圖 197
13.3.4 建立數(shù)據(jù)庫模型 198
13.4 動態(tài)行為模型 199
13.5 物理模型 206
13.6 小結 207
第14章 嵌入式系統(tǒng)設計 208
14.1 系統(tǒng)需求 208
14.2 需求分析 209
14.3 靜態(tài)結構模型 215
14.3.1 識別出類 215
14.3.2 建立類圖 215
14.4 動態(tài)行為模型 223
14.4.1 狀態(tài)圖 223
14.4.2 協(xié)作圖 232
14.5 物理模型 236
14.6 小結 238
第15章 數(shù)據(jù)庫設計 239
15.1 持久性數(shù)據(jù)庫層 239
15.1.1 數(shù)據(jù)模型 239
15.1.2 將對象映射到數(shù)據(jù)庫 240
15.2 對象數(shù)據(jù)庫模型(Object Database Model) 241
15.2.1 ODB建模原語 241
15.2.2 映射到ODB 244
15.3 對象關系數(shù)據(jù)庫模型(Object-relational Database Model) 250
15.3.1 ORDB建模原語 251
15.3.2 映射到ORDB 253
15.4 關系數(shù)據(jù)庫模型(Relational Database Model) 258
15.4.1 RDB建模原語 258
15.4.2 映射到RDB 263
15.5 小結 270
第16章 Web 應用程序設計 271
16.1 Web應用程序的結構 271
16.1.1 瘦Web客戶端模式 272
16.1.2 胖Web客戶端模式 274
16.1.3 Web發(fā)送(Web Delivery)模式 277
16.2 Web應用程序的設計 278
16.2.1 瘦Web客戶端設計 280
16.2.2 胖Web客戶端設計 286
16.2.3 Web發(fā)送(Delivery)應用程序的設計 288
16.3 小結 292
第17章 前向工程與逆向工程 293
17.1 C++的代碼生成和逆向工程 293
17.1.1 C++的代碼生成 294
17.1.2 使用C++分析器的逆向工程 300
17.2 Visual C++或Visual Basic的代碼生成與逆向工程 308
17.2.1 代碼生成 308
17.2.2 逆向工程 311
17.3 應用Java語言的代碼生成與逆向工程 312
17.3.1 代碼生成 313
17.3.2 逆向工程 318
17.4 小結 319
參考文獻 293