UML 基礎 案例與應用, 3/e (修訂版)
內容描述
本書教讀者循序漸進地、系統地學習UML基礎知識和應用技術。和前一版相比,本書內容根據UML 2.0進行了補充和更新。
本書包括四部分內容。第 一部分“基礎知識”包括第 1章到第 15章,主要介紹UML語言的基礎知識以及面向對象的概念和思想,還簡單介紹了UML在開發過程中的應用方法。第 二部分“學習案例”包括第 16章到第 22章,結合實例詳細分析了UML的應用方法與技巧,還介紹了UML在熱點領域設計模式中的應用。第三部分“高 級應用”包括第 23章和第 24章,先是運用UML來描述設計模式和嵌入式系統,然後討論UML在其他領域的應用前景。第四部分“附錄”給出了每章的小測驗答案,介紹了使用Microsoft Visio專業版繪制常用UML圖的方法和步驟,還對常用UML圖進行了總結。
本書適用於從事面向對象軟件開發的軟件工程人員,也特別適合UML的初中級學習者。
目錄大綱
第一部分基礎知識
第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
第二部分學習案例
第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
第三部分高級應用
第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
第四部分附錄
附錄A小測驗答案285
附錄B UML建模工具294
附錄C UML圖總結312
作者介紹
Joseph Schmuller在IT行業有20年的工作經驗,是一位技術架構師,也是暢銷圖書和技術文章的作者。
他擁有威斯康辛大學的博士學位,還是北弗羅里達州立大學的助理教授。