第一部分 UML 和 UP 介紹 1
第1章 什么是 UML ? 2
1.1 章節(jié)指示圖 2
1.2 什么是 UML? 2
1.3 UML 的誕生 3
1.4 MDA - UML的未來 5
1.5 為什么“統一”? 6
1.6 對象和 UML 7
1.7 UML 結構 8
1.8 UML構造塊 8
1.8.1 物件 9
1.8.2 關系 9
1.8.3 圖 10
1.9 UML 公共機制 12
1.9.1 規(guī)格說明 12
1.9.2 修飾 13
1.9.3 公共分類 14
1.9.4 擴展機制 15
1.10 構架 18
1.11 我們已經學習了 19
第2章 什么是統一過程? 22
2.1 章節(jié)指示圖 22
2.2 什么是 UP? 22
2.3 UP 的誕生 23
2.4 UP 和 RUP 25
2.5 為項目定制 UP 27
2.6 UP 公理 27
2.7 UP 是迭代和增量過程 28
2.7.1 迭代工作流 29
2.7.2 基線和增量 30
2.8 UP 結構 30
2.9 UP 階段 31
2.9.1 初始 - 目標 31
2.9.2 初始 - 焦點 32
2.9.3 初始 - 里程碑:生命期目標 32
2.9.4 細化 - 目標 33
2.9.5 細化 - 焦點 33
2.9.6 細化 - 里程碑:生命期構架 34
2.9.7 構造 - 目標 34
2.9.8 構造 - 焦點 34
2.9.9 構造 - 里程碑:初始運作功能 35
2.9.10 移交 - 目標 35
2.9.11 移交 - 焦點 35
2.9.12 移交 - 里程碑:產品發(fā)布 36
2.10 我們已經學習了 36
第二部分 需求 38
第3章 需求工作流 39
3.1 章節(jié)指示圖 39
3.2 需求工作流 39
3.3 軟件需求 - 元模型 40
3.4 需求工作流細節(jié) 41
3.5 需求的重要性 43
3.6 定義需求 43
3.6.1 需求模型 44
3.6.2 形式良好的需求 44
3.6.3 功能性和非功能性需求 45
3.6.4 組織需求 45
3.6.5 需求屬性 46
3.7 找出需求 48
3.7.1 需求抽取 48
3.7.2 訪談 50
3.7.3 問卷調查 51
3.7.4 需求會議 51
3.8 我們已經學習了 52
第4章 用例建模 55
4.1 章節(jié)指示圖 55
4.2 用例建模 56
4.3 UP 活動:找出參與者和用例 56
4.3.1 主體(系統邊界) 57
4.3.2 什么是參與者? 58
4.3.3 什么是用例? 60
4.3.4 項目詞匯表 62
4.4 UP 活動:細化用例 64
4.5 用例規(guī)格說明 64
4.5.1 用例名稱 65
4.5.2 用例 ID 66
4.5.3 簡要描述 66
4.5.4 參與者 66
4.5.5 前置條件和后置條件 66
4.5.6 主流 67
4.5.7 建模附流 71
4.6 需求跟蹤 74
4.7 何時適用用例建模 75
4.8 我們已經學習了 75
第5章 高級用例建模 79
5.1 章節(jié)指示圖 79
5.2 參與者泛化 79
5.3 用例泛化 81
5.4 《include》 84
5.5 《extend》 85
5.5.1 擴展用例 87
5.5.2 多重插入片段 88
5.5.3 條件擴展 88
5.6 何時使用高級特征 89
5.7 書寫用例的技巧 89
5.7.1 保持用例簡短 90
5.7.2 關注什么,而不是如何 90
5.7.3 避免功能分解 91
5.8 我們已經學習了 92
第三部分 分析 95
第6章 分析工作流 96
6.1 章節(jié)指示圖 96
6.2 分析工作流 96
6.3 分析制品 - 元模型 97
6.4 分析工作流細節(jié) 97
6.5 分析模型 - 經驗法則 98
6.6 我們已經學習了 99
第7章 對象和類 101
7.1 章節(jié)指示圖 101
7.2 什么是對象? 101
7.2.1 封裝 103
7.2.2 消息機制 104
7.3 UML 對象符號 105
7.3.1 對象屬性值 106
7.4 什么是類? 106
7.4.1 類和對象 108
7.4.2 對象實例化 109
7.5 UML 類符號 109
7.5.1 名稱分欄 111
7.5.2 屬性分欄 111
7.5.3 操作分欄 116
7.5.4 類構造型語法 120
7.6 范圍 120
7.6.1 實例范圍和類范圍 121
7.6.2 范圍決定訪問 121
7.7 對象構造和銷毀 122
7.7.1 構造函數 - 示例 ClubMember 類 123
7.7.2 析構函數 - 示例 ClubMember 類 124
7.8 我們已經學習了 124
第8章 找出分析類 129
8.1 章節(jié)指示圖 129
8.2 UP 活動:分析用例 129
8.3 什么是分析類? 130
8.3.1 分析類剖析 131
8.3.2 如何產生良好的分析類? 133
8.3.3 分析類經驗法則 134
8.4 找出類 136
8.4.1 使用名詞/動詞分析找出類 136
8.4.2 使用 CRC 分析找出類 137
8.4.3 采用RUP構造型找出類 139
8.4.4 從其它來源找出類 142
8.5 產生初步分析模型 143
8.6 我們已經學習了 144
第9章 關系 147
9.1 章節(jié)指示圖 147
9.2 什么是關系? 147
9.3 什么是鏈接? 148
9.3.1 對象圖 148
9.3.2 路徑 150
9.4 什么是關聯? 151
9.4.1 關聯語法 152
9.4.2 多重性 153
9.4.3 導航性 157
9.4.4 關聯和屬性 159
9.4.5 關聯類 161
9.4.6 受限關聯 163
9.5 什么是依賴? 164
9.5.1 使用依賴 166
9.5.2 抽象依賴 167
9.5.3 授權依賴 169
9.6 我們已經學習了 170
第10章 繼承和多態(tài) 174
10.1 章節(jié)指示圖 174
10.2 泛化 174
10.2.1 類泛化 174
10.3 類繼承 175
10.3.1 重載 176
10.3.2 抽象操作和類 177
10.3.3 抽象層次 178
10.3.4 多重繼承 179
10.4 多態(tài) 179
10.4.1 多態(tài)示例 180
10.5 高級泛化 182
10.5.1 泛化集合 183
10.5.2 強類型 185
10.6 我們已經學習了 186
第11章 分析包 189
11.1 章節(jié)指示圖 189
11.2 什么是包? 189
11.3 包和命名空間 191
11.4 嵌套包 192
11.5 包依賴 193
11.5.1 傳遞性 195
11.6 包泛化 196
11.7 構架分析 196
11.7.1 找出分析包 197
11.7.2 循環(huán)包依賴 199
11.8 我們已經學習了 199
第12章 用例實現 204
12.1 章節(jié)指示圖 204
12.2 UP 活動:分析用例 204
12.3 什么是用例實現? 205
12.4 用例實現 - 元素 205
12.5 交互 206
12.6 生命線 206
12.7 消息 208
12.7.1 同步、異步和返回消息 209
12.7.2 創(chuàng)建和銷毀消息 210
12.7.3 發(fā)現和丟失消息 210
12.8 交互圖 211
12.9 順序圖 211
12.9.1 生命線和消息 212
12.9.2 激活 214
12.9.3 注釋順序圖 214
12.9.4 狀態(tài)常量和約束 215
12.10 組合區(qū)和操作符 216
12.10.1 采用 opt 和 alt 分支 218
12.10.2 采用 loop 和 break 迭代 220
12.11 通信圖 222
12.11.1 迭代 223
12.11.2 分支 225
12.12 我們已經學習了 227
第13章 高級用例實現 231
13.1 章節(jié)指示圖 231
13.2 交互重現 231
13.2.1 參數 233
13.2.2 門 234
13.3 接續(xù) 235
13.4 我們已經學習了 237
第14章 活動圖 238
14.1 章節(jié)指示圖 238
14.2 什么是活動圖? 238
14.3 活動圖與UP 239
14.4 活動 240
14.5 活動的語義 242
14.6 活動分區(qū) 243
14.7 動作節(jié)點 245
14.7.1 調用動作節(jié)點 247
14.7.2 接受時間事件的動作節(jié)點 248
14.8 控制節(jié)點 249
14.8.1 起始節(jié)點和終止節(jié)點 250
14.8.2 判決節(jié)點和匯合節(jié)點 250
14.8.3 派生節(jié)點和會聚節(jié)點 - 并發(fā) 252
14.9 對象節(jié)點 253
14.9.1 對象節(jié)點緩沖區(qū)的語義 254
14.9.2 用狀態(tài)展示對象 255
14.9.3 活動參數 255
14.10 別針 257
14.11 我們已經學習了 258
第15章 高級活動圖 262
15.1 章節(jié)指示圖 262
15.2 連接器 262
15.3 可中斷活動區(qū) 262
15.4 異常處理 263
15.5 擴展節(jié)點 264
15.6 發(fā)送信號和接受事件 266
15.7 流化 268
15.8 高級對象控制特性 269
15.8.1 輸入和輸出效果 269
15.8.2 《selection》 270
15.8.3 《transformation》 270
15.9 廣播和廣收 270
15.10 參數集合 271
15.11 《centralbuffer》節(jié)點 273
15.12 交互概圖 273
15.13 我們已經學習了 274
第四部分 設計 278
第16章 設計工作流 279
16.1 章節(jié)指示圖 279
16.2 設計工作流 279
16.3 設計制品 - 元模型 280
16.3.1 制品跟蹤關系 282
16.3.2 需要維護兩個模型嗎? 282
16.4 設計工作流細節(jié) 284
16.5 UP活動:構架設計 284
16.6 我們已經學習了 285
第17章 設計類 287
17.1 章節(jié)指示圖 287
17.2 UP活動:類設計 287
17.3 什么是設計類? 288
17.4 設計類剖析 289
17.5 形式良好的設計類 290
17.5.1 完整性和充分性 291
17.5.2 原始性 292
17.5.3 高內聚 292
17.5.4 低耦合 293
17.6 繼承 294
17.6.1 聚合vs繼承 294
17.6.2 多重繼承 296
17.6.3 繼承vs接口實現 297
17.7 模板類 297
17.8 嵌套類 299
17.9 我們已經學習了 300
第18章 精化分析關系 305
18.1 章節(jié)指示圖 305
18.2 設計關系 305
18.3 聚合和組合 306
18.4 聚合語義 307
18.5 組合語義 309
18.5.1 組合與屬性 310
18.6 如何精化分析關系? 311
18.7 一對一關聯 312
18.8 多對一關聯 312
18.9 一對多關聯 313
18.10 列集 313
18.10.1 映射表 316
18.11 具體化關系 317
18.11.1 多對多關聯 317
18.11.2 雙向關聯 318
18.11.3 關聯類 319
18.12 結構化類的組合 319
18.12.1 結構化類元 319
18.12.2 結構化類 321
18.13 我們已經學習了 323
第19章 接口和組件 330
19.1 章節(jié)指示圖 330
19.2 UP活動:子系統設計 330
19.3 什么是接口? 331
19.4 已供接口和必需接口 332
19.5 接口實現vs繼承 334
19.6 端口 337
19.7 接口和基于組件的開發(fā) 338
19.8 什么是組件 339
19.9 組件構造型 341
19.10 子系統 342
19.11 發(fā)現接口 342
19.12 采用接口進行設計 343
19.12.1 外觀模式 344
19.12.2 物理構架和分層模式 345
19.13 接口的優(yōu)點和缺點 346
19.14 我們已經學習了 347
第20章 用例實現(設計) 352
20.1 章節(jié)指示圖 352
20.2 UP活動:用例設計 352
20.3 用例實現(設計) 353
20.4 交互圖(設計) 354
20.5 建模并發(fā) 356
20.5.1 活動類 356
20.5.2 順序圖中的并發(fā) 357
20.5.3 通信圖中的并發(fā) 360
20.6 子系統交互 361
20.7 時序圖 361
20.8 用例實現(設計)示例 364
20.9 我們已經學習了 366
第21章 狀態(tài)機 368
21.1 章節(jié)指示圖 368
21.2 狀態(tài)機 368
21.2.1 行為狀態(tài)機和協議狀態(tài)機 369
21.2.2 狀態(tài)機與類 370
21.3 狀態(tài)機和UP 370
21.4 狀態(tài)圖 371
21.5 狀態(tài) 373
21.5.1 狀態(tài)語法 374
21.6 遷移 375
21.6.1 連接遷移 - 交叉?zhèn)螤顟B(tài) 376
21.6.2 分支遷移 - 選擇偽狀態(tài) 377
21.7 事件 377
21.7.1 調用事件 378
21.7.2 信號事件 379
21.7.3 改變事件 380
21.7.4 時間事件 381
21.8 我們已經學習了 381
第22章 高級狀態(tài)機 385
22.1 章節(jié)指示圖 385
22.2 復合狀態(tài) 385
22.2.1 簡單復合狀態(tài) 387
22.2.2 正交復合狀態(tài) 388
22.3 子狀態(tài)機狀態(tài) 390
22.4 子狀態(tài)機通信 391
22.5 歷史 392
22.5.1 淺度歷史 393
22.5.2 深度歷史 394
22.6 我們已經學習了 394
第五部分 實現 396
第23章 實現工作流 397
23.1 章節(jié)指示圖 397
23.2 實現工作流 397
23.3 實現制品 - 元模型 398
23.4 實現工作流細節(jié) 399
23.5 制品 399
23.6 我們已經學習了 399
第六部分 補充材料 401
第24章 部署 402
24.1 章節(jié)指示圖 402
24.2 UP活動:構架實現 402
24.3 部署圖 403
24.4 節(jié)點 404
24.5 制品 406
24.6 部署 409
24.7 我們已經學習了 410
第25章 OCL 介紹 412
25.1 章節(jié)指示圖 412
25.2 什么是OCL? 412
25.3 為什么采用OCL? 413
25.4 OCL表達式語法 414
25.5 包語境和路徑 415
25.6 表達式語境 416
25.7 OCL表達式類型 417
25.8 表達式主體 419
25.8.1 注釋、關鍵字和優(yōu)先級規(guī)則 419
25.8.2 OCL類型系統 420
25.8.3 原始類型 422
25.8.4 Tuple 425
25.8.5 中綴操作符 426
25.8.6 OCL列集 426
25.8.7 迭代操作 432
25.9 OCL導航 436
25.9.1 語境實例內導航 436
25.9.2 通過關聯導航 437
25.9.3 通過多重關聯導航 439
25.10 OCL表達式類型細節(jié) 440
25.10.1 inv: 440
25.10.2 pre:,post: 和 @pre 442
25.10.3 body: 444
25.10.4 init: 446
25.10.5 def: 446
25.10.6 let表達式 448
25.10.7 derive: 449
25.11 其它圖中的OCL 450
25.11.1 交互圖中的OCL 450
25.11.2 活動圖中的OCL 452
25.11.3 狀態(tài)圖中的OCL 453
25.12 高級主題 454
25.12.1 關聯類的雙向導航 455
25.12.2 通過受限關聯導航 456
25.12.3 繼承的關聯 457
25.12.4 OCL消息 459
25.13 我們已經學習了 461
附錄 1 用例模型舉例 468
A1.1 簡介 468
A1.2 用例模型 468
A1.3 用例舉例 469
附錄 2 XML 和用例 474
A2.1 使用 XML 制作用例模版 474
A2.2 SUMR 474
參考書目 478