內容簡介
本書對前一版進行了修訂,反映了信息系統開發中最前沿的方法。Bennett、McRobb和Farmer撰寫的這本書是面向對象分析與設計領域的經典圖書,是本科生和研究生“系統分析和設計”課程重要的教學用書。
本書為使用UML 2.2中的主要技術進行面向對象分析與設計給出了清晰實用的結構,遵循疊代和增量型方法(它們基於業內標準的統一過程),將系統分析和設計置於整個系統生命周期的背景中。
本書分為4部分:第1部分為信息系統的分析和設計以及面向對象提供了背景;第2部分關注需求獲取和系統分析活動以及UML的基本標記法;第3部分涉及系統架構和設計活動,以及對象設計的UML標記法;第4部分介紹系統的實現,如何組織系統生命周期,以及如何開發可重用組件。
目錄
案例Al Agate公司案例研究——簡介
A1.1 Agate公司介紹
A1.2現有計算機系統
A1.3使用當前系統的業務活動
A1.4需求總結
案例B1 FoodCo公司案例研究——簡介
B1.1 FoodCo公司介紹
B1.2現如今的FoodCo公司
B1.3建議
第1章信息系統
1.1 介紹
1.2信息系統的歷史
1.3信息系統現狀
1.4何為系統
1.4.1系統思考
1.4.2系統思考的益處
1.4.3信息系統發展過程中的系統
1.5信息與信息系統
1.5.1信息
1.5.2組織中信息系統的工作
1.5.3信息技術
1.6成功戰略
1.6.1確認商業戰略
1.6.2信息系統的貢獻
1.6.3信息系統和信息技術戰略
1.7本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第2章信息系統開發面臨的挑戰
2.1 介紹
2.2挑戰
2.2.1終端用戶的視角
2.2.2客戶的視角
2.2.3開發者的視角
2.3 出錯的原因
2.3.1質量問題
2.3.2生產率問題
2.4道德層面
2.4.1項目內的道德問題
2.4.2更為廣泛的道德問題
2.5失敗的代價
2.6本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第3章面對挑戰
3.1 介紹
3.2 問題回響
3.2.1質量問題
3.2.2安裝和運行問題
3.2.3生產率問題
3.3項目的生命周期
3.3.1瀑布型生命周期模型
3.3.2原型
3.3.3疊代和增量型開發
3.4方法論
3.4.1統一軟體開發過程
3.4.2敏捷方法
3.5信息系統開發管理
3.6用戶參與
3.7軟體開發工具
3.7.1模型和技術支持
3.7.2軟體構建
3.7.3使用軟體開發工具的益處和困難
3.8本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第4章面向對象
4.1 介紹
4.2基本概念
4.2.1對象
4.2.2類和對象
4.2.3類成員
4.2.4一般化和特殊化
4.2.5封裝、信息隱藏和訊息傳遞
4.2.6多態
4.2.7對象狀態
4.3面向對象的起源
4.4當前的面向對象語言
4.5本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第5章建模的概念
5.1 介紹
5.2模型和圖
5.2.1模型的含義
5.2.2圖
5.2.3模型和圖的區別
5.2.4 UML中的模型
5.2.5開發模型
5.3繪製活動圖
5.3.1活動圖的目的
5.3.2活動圖的標記法
5.4開發過程
5.4.1基本原則
5.4.2主要活動
5.5本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第6章需求獲取
6.1 介紹
6.2用戶需求
6.2.1 當前系統
6.2.2新的需求
6.3事實發現技術
6.3.1背景閱讀
6.3.2訪談
6.3.3觀察
6.3.4文檔抽樣
6.3.5調查問卷
6.3.6記住上述技術
6.3.7其他技術
6.4用戶參與
6.5 文檔需求
6.6用例
6.6.1 目的
6.6.2標記法
6.6.3使用原型支持用例
6.6.4 CASE工具支持
6.6.5使用用例圖的業務模型
6.6.6測試和用例
6.7需求獲取和建模
6.8本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
案例A2 Agate公司案例研究——需求模型
A2.1 介紹
A2.2需求列表
A2.3執行者和用例
A2.4術語表
A2.5最初架構
A2.6需求建模活動
第7章需求分析
7.1 介紹
7.2分析模型
7.2.1分析模型和其他模型的區別
7.2.2好的分析
7.3分析類圖:概念和標記法”
7.3.1類和對象
7.3.2特性
7.3.3特性和狀態
7.3.4實例之間的連結
7.3.5類之間的關聯
7.3.6關聯和狀態
7.3.7多重性
7.3.8操作
7.3.9操作和狀態
7.3.10分析類圖的穩定性
7.4用例實現
7.5繪製類圖
7.5.1健壯性分析
7.5.2分析類stereotype
7.5.3確認類
7.5.4從通信圖到類圖
7.5.5查找對象和類的其他方法
7.5.6添加和定位特性
7.5.7添加關聯
7.5.8確定多重性
7.5.9尋找操作
7.5.10初始操作分配
7.6 CRC卡
7.7整合分析類圖
7.8本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
案例A3 Agate公司案例研究——需求分析
A3.1 介紹
A3.2用例實現
A3.3整合分析類圖
A3.4需求分析活動
第8章完善需求模型
8.1介紹
8.2軟體和規範重用
8.2.1為何重用
8.2.2難以重用的原因
8.2.3面向對象對重用的貢獻
8.3進一步向結構中添加內容
8.3.1尋找和建模一般化
8.3.2尋找和建模組合
8.3.3組合或聚集與一般化的合併
8.3.4組織分析模型——包和依賴關係
8.4重用軟體組件
8.4.1組件的UML標記法
8.4.2基於組件的開發
8.4.3組件建模實例
8.5軟體開發模式
8.5.1模式的起源
8.5.2什麼是軟體模式
8.5.3分析模式
8.6本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第9章對象互動
9.1介紹
9.2對象互動和協作
9.3互動順序圖
9.3.1基本概念和標記法
9.3.2管理順序圖
9.3.3分支
9.3.4延續
9.3.5異步訊息
9.3.6時問約束
9.3.7實時系統和並發的建模
9.3.8準備順序圖的指導原則
9.4通信圖
9.4.1基本概念和標記法
9.4.2通信圖中的信息標籤
9.5互動概覽圖
9,6時序圖
9.7模型一致性
9.8本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第10章規範對象操作
10.1介紹
10.2操作規範的角色
10.3契約
10.4描述操作邏輯
10.4.1非算法型方法
10.4.2算法型方法
10.5對象約束語言
10.6創建操作規範
10.7本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
第11章規範控制
11.1介紹
11.2狀態和事件
11.3基本標記法
11.4深度標記法
11.4.1組合狀態
11.4.2並髮狀態
11.4.3進入和退出偽狀態
11.4.4交叉和選擇偽狀態
11.4.5歷史偽狀態
11.4.6狀態機的特殊化
11.5準備狀態機
11.5.1行為型方法
11.5.2生命周期方法
11.6協定型和行為型狀態機
11.7一致性檢查
11.8質量準則
11.9本章小結
問題回顧
案例研究、練習和項目
拓展閱讀
案例A4 Agate公司案例研究——深入分析
A4.1介紹
A4.2順序圖
A4.3狀態機
A4.4操作規範
A4.5對類圖的進一步修訂
A4.6需求分析的深入活動
第12章設計
12.1介紹
12.2設計和分析有何不同
12.2.1設計
12.2.2疊代型生命周期中的設計
12.3邏輯設計和物理設計
12.4系統設計和詳細設計
12.4.1 系統設計
12.4.2詳細設計
12.5設計的質量和目標
12.5.1 目標和約束
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.2DSDMAtern技術 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