面向對象分析與設計(UML)(第2版·題庫版)
內容描述
本書在系統介紹面向對象技術的基本概念、方法和語言的基礎上,全面介紹UML(統一建模語言)的發展歷史、UML的構成、UML中的視圖、模型元素、圖以及公共機制等基本知識,並重點介紹UML的各種圖模型的建模技術、方法與應用。此外,還詳細介紹了軟件設計模式、Rational統一過程、數據建模的相關知識與應用。本書通過大量的實例來解釋或說明有關的概念、方法和技巧,以便於讀者理解,幫助他們學以致用,達到立竿見影的效果。 全書共分4篇: 第1篇(第1、2章)為概述篇,概述面向對象技術和UML,包括面向對象技術的一些經典方法和UML的構成,最後以一個具體應用項目的UML建模結束第1篇的內容介紹;第2篇(第3~9章)為建模篇,重點介紹UML在軟件系統分析與設計各階段的建模和體系結構建模,並介紹從UML對象模型到關系數據庫的數據模型的映射等實現細節,全篇以一個實際項目貫穿始終;第3篇(第10、11章)為架構篇,重點介紹軟件設計模式和Rational統一過程的基本概念、方法和應用;第4篇(第12章)為應用篇,基於UML的軟件建模實例,介紹UML在Web應用系統建模方面的應用。全書提供了大量應用實例,每章後均附有習題。 本書適合作為高等院校電腦、軟件工程專業高年級本科生、研究生的教材,也可供對UML比較熟悉並且對軟件建模有所瞭解的開發人員、廣大科技工作者和研究人員參考。
目錄大綱
目錄
第1篇概述篇
第1章面向對象技術概述3
1.1結構化方法和麵向對象方法3
1.2面向對象方法的由來6
1.3面向對象的基本概念與術語7
1.4面向對象的軟件開發9
1.5面向對象方法的優缺點10
1.6面向對象程序設計語言12
1.6.1Simula和Smalltalk語言12
1.6.2C擴展語言13
1.6.3Eiffel語言14
1.6.4Java語言14
1.6.5其他面向對象語言15
1.7面向對象的分析與設計15
1.8典型的面向對象方法20
1.8.1Coad & Yourdon方法20
1.8.2Rumbaugh方法20
1.8.3Booch方法22
1.8.4Jacobson方法23
1.8.5RDD方法25
1.9本章小結26
1.10習題27
第2章統一建模語言UML概述31
2.1UML概述31
2.1.1為什麽要建模31
2.1.2什麽是UML34
2.1.3UML的發展歷史35
2.1.4UML的特點37
2.2UML的構成38
2.2.1UML的概念模型38
2.2.2UML中的視圖42
2.2.3UML 1.5版的規範44
2.3UML 2.0簡介45
2.3.1底層結構46
2.3.2上層結構47
2.3.3活動圖48
2.3.4結構化類元49
2.3.5組合50
2.3.6異常51
2.3.7交互概觀圖52
2.3.8用例圖53
2.3.9UML一致性53
2.3.10小結54
2.4一個UML的例子55
2.4.1需求分析55
2.4.2用例圖56
2.4.3活動圖57
2.4.4順序圖57
2.4.5協作圖59
2.4.6類圖59
2.4.7狀態圖60
2.4.8組件圖60
2.4.9部署圖61
2.5本章小結62
2.6習題63
第2篇建模篇
第3章用例圖69
3.1參與者69
3.1.1參與者的概念69
3.1.2參與者之間的關系70
3.1.3參與者和用例之間的關系71
3.2用例71
3.2.1用例的概念71
3.2.2用例的特徵72
3.2.3用例之間的關系73
3.2.4用例之間的泛化、包含、擴展關系的比較76
3.2.5用例的實現78
3.3用例描述78
3.4用例建模81
3.4.1用例建模的步驟82
3.4.2確定系統的邊界82
3.4.3確定參與者83
3.4.4確定用例84
3.4.5區分用例的優先次序84
3.4.6細化每個用例84
3.4.7編寫每個用例的用例描述85
3.4.8繪制用例圖85
3.4.9編寫項目詞匯表85
3.5用例建模中常見的問題分析86
3.5.1用例的設計原則86
3.5.2用例模型的復雜度87
3.5.3用例模型的調整88
3.5.4用例模型的檢查88
3.5.5系統的三層結構89
3.5.6用例描述89
3.5.7不同層次的用例模型之間的一致性91
3.6一個用例建模的例子93
3.6.1需求陳述93
3.6.2識別參與者94
3.6.3識別用例94
3.6.4確定系統邊界95
3.6.5調整用例圖96
3.6.6編寫用例描述97
3.7本章小結108
3.8習題109
第4章類圖與對象圖120
4.1類與對象120
4.1.1類與對象的概念120
4.1.2類的屬性121
4.1.3類的操作123
4.1.4類的職責125
4.2類與對象的識別126
4.2.1識別類與對象126
4.2.2識別類的屬性130
4.2.3定義類的操作133
4.3類之間的關系134
4.3.1關聯關系134
4.3.2聚合關系和組成關系144
4.3.3泛化關系145
4.3.4依賴關系146
4.4類之間關系的識別148
4.4.1識別關聯關系148
4.4.2識別聚合關系148
4.4.3識別泛化關系149
4.4.4識別依賴關系152
4.5派生屬性和派生關聯153
4.6抽象類和接口153
4.6.1抽象類153
4.6.2接口153
4.6.3實現關系155
4.7類版型156
4.7.1實體類156
4.7.2邊界類156
4.7.3控制類157
4.7.4用戶自定義版型157
4.8類圖158
4.8.1類圖的抽象層次158
4.8.2構造類圖159
4.9對象圖160
4.9.1對象的表示161
4.9.2鏈的表示162
4.10一個結構建模的例子162
4.10.1需求陳述162
4.10.2識別對象163
4.10.3識別屬性164
4.10.4識別關系164
4.11本章小結166
4.12習題167
第5章順序圖與協作圖179
5.1交互模型概述179
5.2順序圖180
5.2.1對象180
5.2.2生命線180
5.2.3控制焦點181
5.2.4消息182
5.2.5分支182
5.2.6從屬流182
5.3順序圖中的消息183
5.3.1調用消息183
5.3.2異步消息183
5.3.3返回消息183
5.3.4阻止消息184
5.3.5超時消息184
5.3.6消息的語法格式184
5.3.7調用消息和異步消息的比較186
5.4建立順序圖概述187
5.4.1建立順序圖187
5.4.2順序圖與用例描述的關系188
5.4.3順序圖與類圖的區別188
5.5協作圖189
5.5.1對象189
5.5.2鏈190
5.5.3消息190
5.5.4對象生命周期190
5.6建立協作圖概述192
5.6.1建立協作圖192
5.6.2協作圖與順序圖的比較192
5.6.3協作圖與用例描述的關系193
5.6.4協作圖與類圖的區別193
5.7交互建模中常見的問題分析194
5.7.1在順序圖中表示方法的普通嵌套和遞歸嵌套194
5.7.2在協作圖中表示消息的發送順序和嵌套順序194
5.7.3條件消息和循環消息的表示196
5.7.4在順序圖中使用交互架構196
5.7.5調用消息和事件(信號)消息的區別197
5.7.6在順序圖中表示時間約束198
5.7.7順序圖的兩種形式198
5.7.8協作圖的兩種形式198
5.7.9用例實現的類圖與協作圖199
5.7.10協作圖中的多對象201
5.7.11協作圖中的主動對象202
5.8一個交互建模的例子203
5.8.1需求陳述204
5.8.2識別對象類204
5.8.3識別消息205
5.8.4確定消息的形式和內容205
5.8.5“新增學習計劃”用例實現的順序圖206
5.8.6其他用例實現的順序圖或協作圖207
5.9本章小結209
5.10習題210
第6章狀態圖與活動圖221
6.1行為模型概述221
6.2狀態圖222
6.2.1狀態223
6.2.2組合狀態/子狀態225
6.2.3轉移226
6.2.4事件229
6.2.5信號230
6.3建立狀態圖233
6.3.1識別需要繪制狀態圖的實體234
6.3.2識別狀態空間234
6.3.3識別狀態轉移234
6.3.4繪制並審查狀態圖235
6.4狀態圖的工具支持235
6.5活動圖237
6.5.1活動237
6.5.2分支237
6.5.3分叉和匯合237
6.5.4泳道238
6.5.5對象流238
6.5.6信號239
6.6活動圖的用途240
6.6.1對業務過程建模240
6.6.2對具體操作建模241
6.7建立活動圖241
6.7.1定義活動圖的範圍241
6.7.2添加起始點和結束點241
6.7.3添加活動242
6.7.4添加活動間的變遷和決策點242
6.7.5找出可並行活動之處242
6.8活動圖的工具支持243
6.9狀態圖和活動圖的比較243
6.10一個行為建模的例子244
6.10.1需求陳述244
6.10.2分析活動244
6.10.3分析對象狀態245
6.11本章小結246
6.12習題248
第7章組件圖與部署圖259
7.1組件圖259
7.1.1組件259
7.1.2組件的類型260
7.1.3組件之間的關系261
7.1.4組件和類的關系261
7.1.5組件和接口的關系262
7.2組件圖的用途262
7.2.1對源代碼文件之間的關系建模262
7.2.2對可執行文件之間的關系建模262
7.2.3對物理數據庫中各個具體對象之間的關系建模263
7.2.4對自適應系統建模263
7.3組件圖的工具支持263
7.3.1正向工程263
7.3.2逆向工程267
7.4組件圖的例子274
7.5部署圖277
7.5.1結點277
7.5.2連接277
7.5.3部署圖介紹278
7.5.4分佈式系統的物理建模278
7.6部署圖的例子279
7.7一個體系結構建模的例子281
7.7.1需求陳述281
7.7.2分析類和接口281
7.7.3確定組件282
7.7.4確定組件之間的依賴關系282
7.7.5確定硬件結點283
7.7.6確定硬件結點之間的通信關系283
7.8本章小結284
7.9習題284
第8章包圖288
8.1包圖概述288
8.1.1包中的元素288
8.1.2包的命名288
8.1.3包中元素的可見性289
8.1.4包的層次性289
8.1.5包之間的關系289
8.2設計包的原則291
8.2.1重用等價原則291
8.2.2共同閉包原則291
8.2.3共同重用原則291
8.2.4非循環依賴原則292
8.2.5高內聚和低耦合原則292
8.3包的應用293
8.4一個分組機制建模的例子293
8.4.1需求陳述293
8.4.2分析類和接口293
8.4.3確定包293
8.4.4確定包之間的依賴關系294
8.5本章小結294
8.6習題295
第9章數據建模297
9.1數據建模概述297
9.2數據庫設計的基本過程297
9.3數據庫設計的步驟298
9.3.1Rational Rose中的設計步驟298
9.3.2Rational Rose中的具體操作過程300
9.3.3在Rational Rose中表之間的關系304
9.4對象模型和數據模型的相互轉換307
9.4.1對象模型轉換為數據模型307
9.4.2數據模型轉換為對象模型310
9.5關聯關系的多重性在數據模型中的映射311
9.5.1多對多的關聯的映射312
9.5.2一對多的關聯的映射312
9.5.3零或一對一的關聯的映射312
9.6本章小結314
9.7習題314
第3篇架構篇
第10章軟件設計模式及應用319
10.1設計模式概述319
10.1.1設計模式的歷史319
10.1.2設計模式的組成元素320
10.1.3設計模式的作用和研究意義321
10.1.4為什麽要使用設計模式322
10.1.5設計模式的分類323
10.1.6設計模式遵循的原則325
10.1.7設計模式的使用策略326
10.2經典設計模式328
10.2.1工廠模式328
10.2.2適配器模式331
10.2.3命令模式332
10.2.4解釋器模式334
10.2.5迭代器模式335
10.2.6觀察者模式336
10.2.7代理模式338
10.2.8單例模式339
10.2.9狀態模式340
10.2.10策略模式341
10.2.11訪問者模式343
10.3設計模式實例345
10.3.1Facade模式345
10.3.2Adapter模式348
10.3.3Abstract Factory模式352
10.3.4Observer模式355
10.4在Rose中使用設計模式359
10.5基於UML建模方法中的設計模式的運用364
10.5.1Struts 2框架364
10.5.2用戶需求364
10.5.3UML建模的用例圖365
10.5.4UML建模的類圖365
10.5.5設計模式優化類圖366
10.5.6順序圖367
10.5.7融合UML建模和設計模式的開發模式367
10.6本章小結369
10.7習題369
第11章Rational統一過程379
11.1軟件開發過程和統一過程379
11.2Rational統一過程的概述380
11.2.1Rational統一過程的發展歷史380
11.2.2Rational統一過程的宏觀與微觀381
11.2.3Rational統一過程中的核心概念382
11.3Rational統一過程的軟件開發生命周期384
11.3.1Rational統一過程的生命周期384
11.3.2Rational統一過程的核心工作流385
11.3.3Rational統一過程的階段388
11.4Rational統一過程的模型與文檔393
11.4.1Rational統一過程的模型393
11.4.2Rational統一過程產生的模型與文檔394
11.5Rational統一過程的特點395
11.6Rational統一過程的6個最佳實踐400
11.7Rational統一過程的配置和實現403
11.7.1配置Rational統一過程403
11.7.2實現Rational統一過程404
11.8RUP裁剪405
11.9RUP Builder405
11.10基於RUP的Cycle過程的迭代開發模式409
11.10.1RUP的生命周期409
11.10.2RUP的循環409
11.10.3RUP的模型410
11.10.4開發模式410
11.10.5項目需求411
11.10.6課程網站運行效果415
11.10.7與其他開發方法的比較417
11.11本章小結418
11.12習題419
第4篇應用篇
第12章基於Struts 2的個人信息管理系統應用實例425
12.1系統概述425
12.2需求分析425
12.2.1用戶需求425
12.2.2系統功能模塊結構圖426
12.2.3系統運行效果426
12.3用例建模432
12.3.1確定系統邊界432
12.3.2識別參與者433
12.3.3識別用例433
12.3.4繪制用例圖433
12.3.5用例描述434
12.4靜態建模440
12.4.1識別對象類440
12.4.2識別屬性441
12.4.3繪制類圖441
12.4.4繪制數據模型441
12.4.5設計數據表442
12.5動態建模444
12.5.1繪制順序圖444
12.5.2繪制協作圖449
12.5.3繪制活動圖450
12.5.4繪制狀態圖452
12.6架構建模453
12.6.1繪制包圖454
12.6.2繪制組件圖455
12.6.3繪制部署圖457
12.7本章小結458
12.8習題458
附錄A部分習題參考答案459
參考文獻502