UML與模式應用(原書第3版·典藏版) Applying UML and Patterns 3/e

Craig Larman 譯 李洋

商品描述

本書是物件導向分析和設計(OOA/OOD)領域的聖經級著作,為物件導向程式設計思想的普及做出了巨大貢獻。
經過3個版本的錘鍊,本書在全球被翻譯為10餘種文字,暢銷20餘年,歷久彌新。
同時,本書也是UML和設計模式應用領域的標準著作。
本書根據軟體專案開發的過程來組織內容,充滿著Craig的真知灼見,
巧妙地將物件導向分析與設計的基本原則、開發方法和輔助工具結合起來,同時吸收了大量的輕量級的敏捷方法以及現代軟體開發方法。
學完本書不僅能係統地掌握物件導向分析與設計的概念、過程、方法和原則,
還能掌握UML建模的標準方法以及GRASP和流行的GoF設計模式在物件導向設計中的應用。
此外,本書也將指導我們如何將物件導向設計成果映射成Java程式碼。
本書的內容源自於作者多年來教授和培訓成千上萬的學生的經驗,
已經被實踐證明是一種精煉的、高效的學習面向對象分析和設計的教材,作者的官網上提供了一些輔助學習和教學的資料。

目錄大綱

譯者序

前言
第一部分緒論
第1章物件導向分析與設計2
1.1 本書的主要內容2
1.2 最重要的學習目標4
1.3 什麼是分析與設計5
1.4 什麼是物件導向分析與設計5
1.5 簡單範例6
1.6 什麼是UML 8
1.7 視覺化建模的優點11
1.8 歷史11
1.9 推薦資源12
第2章迭代、演化與敏捷13
2.1 什麼是UP?其他方法能否補充14
2.2 什麼是迭代和演化式開發15
2.3 什麼是瀑布生命週期18
2.4 如何進行迭代和演化式分析與設計19
2.5 什麼是風險驅動和客戶驅動的迭代計劃21
2.6 什麼是敏捷方法及敏捷宣言22
2.7 什麼是敏捷建模23
2.8 什麼是敏捷UP 24
2.9 UP的其他關鍵實踐25
2.10 什麼是UP的階段25
2.11 什麼是UP科目26
2.12 如何自訂流程和UP開發案例28
2.13判斷你是否理解迭代開發或UP 29
2.14 歷史30
2.15 推薦資源30
第3章案例研究32
3.1 案例研究中涵蓋的內容32
3.2 案例研究策略:迭代開發+迭代學習33
3.3 案例一:NextGen POS系統34
3.案例二:Monopoly遊戲系統34
第二部分初始階段
第4 章初始階段不是需求階段38
4.1 什麼是初始階段38
4.2 初始階段的持續時間40
4.3 初始階段會創建的製品40
4.4 何時知道自己並不了解初始階段41
4.5 初始階段中有多少UML 41
第5章演化式需求42
5.1 定義:需求42
5.2 演化式需求與瀑布式需求43
5.3 可以採用哪些方法尋找需求44
5.4 需求的類型44
5.5 UP製品如何組織需求45
5.6 本書是否包含這些製品的範例46
5.7 推薦資源46
第6章用例47
6.1 範例48
6.2 定義:執行者、場景和用例49
6.3 用例和用例模型49
6.4 動機:為什麼使用用例50
6.5 定義:使用案例是功能性需求嗎50
6.6 定義:執行者的三種類型51
6.7 表示法:用例的三種常用形式51
6.8 範例:詳述風格的「處理銷售」用例52
6.9 各小節的含義57
6.10 表示法:有其他格式嗎?兩欄變體62
6.11 準則:以無用戶介面約束的本質風格編寫用例63
6.12 準則:編寫簡潔的用例64
6.13 準則:編寫黑盒用例64
6.14 準則:採用執行者和執行者目標的觀點65
6.15 準則:如何發現用例65
6.16 準則:什麼樣的測試有助於發現有用的用例68
6.17 應用UML:用例圖70
6.18 應用UML:活動圖72
6.19 動機:使用案例還有其他好處嗎?
情境中的需求72
6.20 範例:Monopoly遊戲73
6.21 流程:在迭代方法中如何使用用例74
6.22 歷史78
6.23 建議資源78
第7章其他需求80
7.1 這些範例有多完整81
7.2 準則:初始階段是否應該對此進行徹底分析81
7.3 準則:這些製品是否應該放在專案Web網站上82
7.4 NextGen範例:(部分)補充性規格說明82
7.5 註解:補充性規格說明85
7.6 NextGen範例:(部分)願景86
7.7註解:願景88
7.8 NextGen範例:(部分)術語表91
7.9 註解:術語表(資料字典) 91
7.10 NextGen範例:業務規則(領域規則) 92
7.11 註解:領域規則92
7.12 流程:迭代方法中的演化式需求93
7.13 推薦資源94
第三部分細化迭代1——基礎
第8章迭代1——基礎96
8.1 迭代1的需求與重點:核心OOA/D技能96 8.2
流程:初始階段與細化階段98
8.3過程:規劃下一個迭代101
第9章領域模型102
9.1 範例103
9.2 什麼是領域模型104
9.3 動機:為什麼要建立領域模型107
9.4 準則:如何建立領域模型108 9.5
準則:如何找到概念類別108 9.6
範例:尋找並描繪概念類111
9.7 準則:敏捷建模—繪製類別圖的草圖112
9.8 準則:敏捷建模—是否要使用工具維護模型112
9.9 準則:報表物件—模型中是否要包含「票據」 112
9.10 準則:像地圖繪製者一樣思考;使用領域術語112
9.11 準則:如何對非現實世界建模113
9.12 準則:屬性與類別的常見錯誤113
9.13 準則:何時使用描述類別建模114
9.14 關聯116
9.15 範例:領域模型中的關聯120
9.16 屬性121
9.17 範例:領域模型中的屬性127
9.18 結論:領域模型是否正確128
9.19 流程:迭代與演化領域建模129
9.20 建議資源130
第10章系統序列圖132
10.1 範例:Next SSD 132
10.是系統序列圖134
10.3 動機:為什麼要繪製SSD 134