內容介紹
本書對前一版進行了修訂,反映了信息系統開發中最前沿的方法。Bennett、McRobb和Farmer撰寫的這本書是面向對象分析與設計領域的經典圖書,是本科生和研究生“系統分析和設計”課程重要的教學用書。本書為使用UML 2.2中的主要技術進行面向對象分析與設計給出了清晰實用的結構,遵循疊代和增量型方法(它們基於業內標準的統一過程),將系統分析和設計置於整個系統生命周期的背景中。本書分為4部分:第1部分為信息系統的分析和設計以及面向對象提供了背景;第2部分關注需求獲取和系統分析活動以及UML的基本標記法;第3部分涉及系統架構和設計活動,以及對象設計的UML標記法;第4部分介紹系統的實現,如何組織系統生命周期,以及如何開發可重用
作者介紹
作者介紹:本書的作者,Simon Bennett、Steve McRobb和Ray Farmer自從1999年本書第1版付梓的時候就一起工作。他們的合作匯集了各自在信息系統學科豐富的教學研究經驗。他們豐富的業界經驗也保證了在實際組織中UML知識實踐套用的正確性。
Simon Bennett是De Montfort大學技術學院的培訓顧問,他在這裡提供UML、分析和設計,以及系統架構方面的培訓。他是計算機智慧型中心的準會員。之前作為企業架構師供職於Celesio AG,作為ICT主管供職於Leicester議會的復興和文化事務部,並且在1999年之前作為首席講師任教於De Montfort大學。Simon是Schaum’s Outline of UML(2nd edition)一書的合著者,該書也由McGraw-Hill出版。
Steve McRobb是De Montfort大學信息學院的首席講師。他教授面向對象系統分析與設計課程十幾年,目前是“計算、信息技術和信息系統管理”研究生課程的課程負責人。他最近的研究範圍主要集中在線上隱私以及ICT對權利關係的影響方面。Steve是Yorkshire Dales國家公園的前任首席行政主任。
Ray Farmer是Coventry大學工程和計算學院的副院長。他的研究興趣包括信息系統分析與設計、面向服務架構以及工程和計算教育方面的教學研究。他定期作為英國和國際上面向對象分析與設計方面的諮詢師。Ray之前在De Montfort大學的信息系統學院擔任不同的職位。
作品目錄
案例A1Agate公司案例研究——簡介 1
A1.1Agate公司介紹 1
A1.2現有計算機系統 2
A1.3使用當前系統的業務活動 2
A1.4需求總結 3
案例B1FoodCo公司案例研究——
簡介 5
B1.1FoodCo公司介紹 5
B1.2現如今的FoodCo公司 8
B1.3建議 11
第1章信息系統 13
1.1介紹 13
1.2信息系統的歷史 14
1.3信息系統現狀 16
1.4何為系統 17
1.4.1系統思考 18
1.4.2系統思考的益處 21
1.4.3信息系統發展過程中
的系統 26
1.5信息與信息系統 27
1.5.1信息 27
1.5.2組織中信息系統的工作 27
1.5.3信息技術 29
1.6成功戰略 30
1.6.1確認商業戰略 30
1.6.2信息系統的貢獻 31
1.6.3信息系統和信息技術戰略 31
1.7本章小結 33
問題回顧 33
案例研究、練習和項目 33
拓展閱讀 34
第2章信息系統開發面臨的挑戰 35
2.1介紹 35
2.2挑戰 36
2.2.1終端用戶的視角 37
2.2.2客戶的視角 39
2.2.3開發者的視角 41
2.3出錯的原因 42
2.3.1質量問題 43
2.3.2生產率問題 45
2.4道德層面 46
2.4.1項目內的道德問題 47
2.4.2更為廣泛的道德問題 48
2.5失敗的代價 49
2.6本章小結 50
問題回顧 50
案例研究、練習和項目 50
拓展閱讀 51
第3章面對挑戰 52
3.1介紹 52
3.2問題回響 54
3.2.1質量問題 54
3.2.2安裝和運行問題 55
3.2.3生產率問題 56
3.3項目的生命周期 57
3.3.1瀑布型生命周期模型 58
3.3.2原型 60
3.3.3疊代和增量型開發 62
3.4方法論 62
3.4.1統一軟體開發過程 63
3.4.2敏捷方法 64
3.5信息系統開發管理 65
3.6用戶參與 67
3.7軟體開發工具 68
3.7.1模型和技術支持 68
3.7.2軟體構建 70
3.7.3使用軟體開發工具的益處
和困難 71
3.8本章小結 71
問題回顧 71
案例研究、練習和項目 72
拓展閱讀 72
第4章面向對象 73
4.1介紹 73
4.2基本概念 73
4.2.1對象 74
4.2.2類和對象 75
4.2.3類成員 76
4.2.4一般化和特殊化 78
4.2.5封裝、信息隱藏和訊息
傳遞 82
4.2.6多態 84
4.2.7對象狀態 85
4.3面向對象的起源 86
4.4當前的面向對象語言 88
4.5本章小結 89
問題回顧 90
案例研究、練習和項目 90
拓展閱讀 91
第5章建模的概念 92
5.1介紹 92
5.2模型和圖 92
5.2.1模型的含義 93
5.2.2圖 94
5.2.3模型和圖的區別 96
5.2.4UML中的模型 97
5.2.5開發模型 98
5.3繪製活動圖 99
5.3.1活動圖的目的 99
5.3.2活動圖的標記法 100
5.4開發過程 103
5.4.1基本原則 104
5.4.2主要活動 105
5.5本章小結 109
問題回顧 109
案例研究、練習和項目 110
拓展閱讀 110
第6章需求獲取 111
6.1介紹 111
6.2用戶需求 111
6.2.1當前系統 112
6.2.2新的需求 113
6.3事實發現技術 114
6.3.1背景閱讀 114
6.3.2訪談 115
6.3.3觀察 117
6.3.4文檔抽樣 118
6.3.5調查問卷 119
6.3.6記住上述技術 121
6.3.7其他技術 122
6.4用戶參與 122
6.5文檔需求 123
6.6用例 125
6.6.1目的 125
6.6.2標記法 126
6.6.3使用原型支持用例 130
6.6.4CASE工具支持 131
6.6.5使用用例圖的業務
模型 131
6.6.6測試和用例 132
6.7需求獲取和建模 132
6.8本章小結 133
問題回顧 135
案例研究、練習和項目 135
拓展閱讀 136
案例A2Agate公司案例研究——
需求模型 138
A2.1介紹 138
A2.2需求列表 138
A2.3執行者和用例 139
A2.4術語表 144
A2.5最初架構 144
A2.6需求建模活動 145
第7章需求分析 147
7.1介紹 147
7.2分析模型 148
7.2.1分析模型和其他模型
的區別 148
7.2.2好的分析 149
7.3分析類圖:概念和標記法 150
7.3.1類和對象 150
7.3.2特性 151
7.3.3特性和狀態 152
7.3.4實例之間的連結 153
7.3.5類之間的關聯 154
7.3.6關聯和狀態 154
7.3.7多重性 155
7.3.8操作 156
7.3.9操作和狀態 158
7.3.10分析類圖的穩定性 158
7.4用例實現 159
7.5繪製類圖 161
7.5.1健壯性分析 161
7.5.2分析類stereotype 161
7.5.3確認類 164
7.5.4從通信圖到類圖 168
7.5.5查找對象和類的其他
方法 169
7.5.6添加和定位特性 173
7.5.7添加關聯 175
7.5.8確定多重性 175
7.5.9尋找操作 175
7.5.10初始操作分配 175
7.6CRC卡 176
7.7整合分析類圖 178
7.8本章小結 179
問題回顧 179
案例研究、練習和項目 180
拓展閱讀 183
案例A3Agate公司案例研究——
需求分析 184
A3.1介紹 184
A3.2用例實現 184
A3.3整合分析類圖 189
A3.4需求分析活動 189
第8章完善需求模型 191
8.1介紹 191
8.2軟體和規範重用 192
8.2.1為何重用 192
8.2.2難以重用的原因 192
8.2.3面向對象對重用的貢獻 193
8.3進一步向結構中添加內容 195
8.3.1尋找和建模一般化 195
8.3.2尋找和建模組合 199
8.3.3組合或聚集與一般化
的合併 200
8.3.4組織分析模型——包
和依賴關係 201
8.4重用軟體組件 202
8.4.1組件的UML標記法 203
8.4.2基於組件的開發 204
8.4.3組件建模實例 205
8.5軟體開發模式 207
8.5.1模式的起源 207
8.5.2什麼是軟體模式 208
8.5.3分析模式 209
8.6本章小結 211
問題回顧 211
案例研究、練習和項目 211
拓展閱讀 212
第9章對象互動 213
9.1介紹 213
9.2對象互動和協作 214
9.3互動順序圖 215
9.3.1基本概念和標記法 216
9.3.2管理順序圖 223
9.3.3分支 226
9.3.4延續 227
9.3.5異步訊息 227
9.3.6時間約束 228
9.3.7實時系統和並發的建模 229
9.3.8準備順序圖的指導原則 230
9.4通信圖 230
9.4.1基本概念和標記法 231
9.4.2通信圖中的信息標籤 232
9.5互動概覽圖 234
9.6時序圖 236
9.7模型一致性 237
9.8本章小結 238
問題回顧 238
案例研究、練習和項目 238
拓展閱讀 239
第10章規範對象操作 240
10.1介紹 240
10.2操作規範的角色 241
10.3契約 242
10.4描述操作邏輯 243
10.4.1非算法型方法 243
10.4.2算法型方法 246
10.5對象約束語言 251
10.6創建操作規範 253
10.7本章小結 255
問題回顧 255
案例研究、練習和項目 256
拓展閱讀 256
第11章規範控制 257
11.1介紹 257
11.2狀態和事件 258
11.3基本標記法 259
11.4深度標記法 264
11.4.1組合狀態 264
11.4.2並髮狀態 265
11.4.3進入和退出偽狀態 267
11.4.4交叉和選擇偽狀態 268
11.4.5歷史偽狀態 268
11.4.6狀態機的特殊化 269
11.5準備狀態機 269
11.5.1行為型方法 270
11.5.2生命周期方法 273
11.6協定型和行為型狀態機 273
11.7一致性檢查 274
11.8質量準則 274
11.9本章小結 275
問題回顧 275
案例研究、練習和項目 276
拓展閱讀 276
案例A4Agate公司案例研究——
深入分析 277
A4.1介紹 277
A4.2順序圖 277
A4.3狀態機 278
A4.4操作規範 280
A4.5對類圖的進一步修訂 281
A4.6需求分析的深入活動 283
第12章設計 285
12.1介紹 285
12.2設計和分析有何不同 285
12.2.1設計 286
12.2.2疊代型生命周期中
的設計 287
12.3邏輯設計和物理設計 287
12.4系統設計和詳細設計 289
12.4.1系統設計 290
12.4.2詳細設計 290
12.5設計的質量和目標 290
12.5.1目標和約束 291
12.5.2設計折中 294
12.5.3設計中的可衡量目標 295
12.6本章小結 296
問題回顧 296
案例研究、練習和項目 297
拓展閱讀 297
第13章系統架構 298
13.1介紹 298
13.2架構的含義 299
13.3生成架構模型的原因 301
13.4對系統架構的影響 302
13.4.1現有系統 303
13.4.2企業級架構 304
13.4.3技術參考架構 305
13.5架構風格 305
13.5.1子系統 306
13.5.2分層和分區 307
13.5.3MVC架構 311
13.5.4分散式系統架構 314
13.5.5架構和開發的組織
結構 316
13.6並發 317
13.7處理器分配 318
13.8系統設計標準 319
13.8.1資料庫設計 319
13.8.2用戶界面設計標準 319
13.8.3構建準則 319
13.9Agate軟體架構 320
13.10本章小結 321
問題回顧 322
案例研究、練習和項目 322
拓展閱讀 322
第14章詳細設計 324
14.1介紹 324
14.2在面向對象的詳細設計中
添加的內容 325
14.3特性和操作規範 325
14.3.1特性的數據類型 325
14.3.2派生特性 326
14.3.3主操作 327
14.3.4操作簽名 328
14.3.5可見性 329
14.4將特性和操作歸入類中 331
14.4.1分配職責 331
14.4.2接口 332
14.4.3耦合和內聚 333
14.4.4Liskov替換原則 336
14.5設計關聯 336
14.5.1一對一關聯 337
14.5.2一對多關聯 338
14.5.3多對多關聯 340
14.5.4保持類最小 341
14.6完整性約束 342
14.6.1引用完整性 342
14.6.2依賴約束 343
14.6.3域完整性 344
14.7設計操作算法 344
14.8本章小結 345
問題回顧 345
案例研究、練習和項目 346
拓展閱讀 346
第15章設計模式 347
15.1介紹 347
15.2軟體開發模式 348
15.2.1框架 348
15.2.2模式目錄和語言 348
15.2.3軟體開發原則和模式 348
15.2.4模式和非功能性需求 349
15.3文檔模式——模式模板 349
15.3.1模板內容 349
15.3.2模板的其他方面 350
15.4設計模式 350
15.4.1設計模式的類型 350
15.4.2創建型模式 351
15.4.3結構型模式 355
15.4.4行為型模式 359
15.5如何使用設計模式 363
15.6使用模式的優缺點 364
15.7本章小結 365
問題回顧 365
案例研究、練習和項目 365
拓展閱讀 365
第16章人機互動 367
16.1介紹 367
16.2用戶界面 368
16.2.1什麼是用戶界面 368
16.2.2對話隱喻 368
16.2.3直接操縱隱喻 370
16.2.4良好對話的特徵 372
16.2.5風格指導 374
16.3用戶界面設計方法 375
16.3.1非正式方法和正式
方法 375
16.3.2實現可使用性 381
16.4標準和合法需求 382
16.5本章小結 383
問題回顧 384
案例研究、練習和項目 384
拓展閱讀 384
第17章設計邊界類 386
17.1介紹 386
17.2表示層結構 387
17.3為用戶界面建立原型 388
17.4設計類 390
17.5使用順序圖設計互動 393
17.6類圖回顧 399
17.7用戶界面設計模式 400
17.8使用狀態機建模界面 402
17.9本章小結 408
問題回顧 409
案例研究、練習和項目 409
拓展閱讀 409
第18章數據管理設計 411
18.1介紹 411
18.2持久性 412
18.2.1持久性需求 412
18.2.2存儲機制概述 412
18.2.3持久性架構 413
18.3檔案系統 415
18.3.1檔案和記錄結構 415
18.3.2檔案的組織方式 416
18.3.3檔案訪問 416
18.3.4檔案類型 419
18.3.5檔案使用示例 420
18.4資料庫管理系統 421
18.4.1檔案和資料庫 421
18.4.2資料庫的類型 423
18.5設計關係型資料庫管理
系統 425
18.5.1關係型資料庫 425
18.5.2數據建模和規範化 426
18.5.3將類映射為表 430
18.6設計對象資料庫管理系統 432
18.7分散式資料庫 436
18.8數據管理類設計 438
18.8.1分層結構 438
18.8.2PersistentObject超類 439
18.8.3資料庫代管者框架 441
18.8.4使用數據管理產品
或框架 445
18.9本章小結 447
問題回顧 447
案例研究、練習和項目 447
拓展閱讀 448
案例A5Agate公司案例——簡介 449
A5.1介紹 449
A5.2架構 449
A5.3用例示例 450
A5.4類圖 451
A5.5順序圖 455
A5.6資料庫設計 458
A5.7狀態機 459
A5.8設計活動 460
第19章實現 461
19.1介紹 461
19.2軟體實現 462
19.2.1軟體工具 462
19.2.2編程和文檔標準 464
19.3組件圖 465
19.4部署圖 467
19.5軟體測試 469
19.5.1由誰執行測試 469
19.5.2測試內容 470
19.5.3測試文檔 472
19.6數據轉換 473
19.7用戶文檔和培訓 474
19.7.1用戶手冊 474
19.7.2用戶培訓 474
19.8實現策略 475
19.9評審和維護 476
19.9.1下一步驟 476
19.9.2評審過程和評估報告 477
19.9.3維護活動 478
19.10本章小結 480
問題回顧 480
案例研究、練習和項目 481
拓展閱讀 481
第20章軟體重用 482
20.1介紹 482
20.2為什麼要進行重用 482
20.2.1項目的選擇 484
20.2.2組織的結構 485
20.2.3重用合適的單元 486
20.2.4組件標準 487
20.3為重用規劃策略 489
20.3.1選擇視角法 489
20.3.2RSEB 490
20.4商用組件 491
20.5案例研究示例 493
20.6Web服務 499
20.7本章小結 501
問題回顧 501
案例研究、練習和項目 501
拓展閱讀 502
第21章軟體開發過程 503
21.1介紹 503
21.2過程、方法和方法論 504
21.2.1方法論 504
21.2.2為何使用方法論 506
21.3統一軟體開發過程 506
21.4動態系統開發方法 510
21.4.1Atern生命周期 511
21.4.2DSDM Atern技術 513
21.4.3DSDM中的項目選擇 514
21.5Scrum 514
21.6極限編程 516
21.7選擇方法論時的考慮 517
21.8硬性與軟性方法論 519
21.9本章小結 521
問題回顧 521
案例研究、練習和項目 522
拓展閱讀 522
附錄A標記法匯總 523
附錄B 部分解決方案和答案指導 531
術語表 540