相關閱讀 |
>>> 文章華國詩禮傳家—精彩書評選 >>> | 簡體 傳統 |
《面向對象分析與設計(第3版)》是UML創始人Grady Booch的代表作之一,書中介紹的概念都基于牢固的理論基礎。同時,《面向對象分析與設計(第3版)》又是一本注重實效的書,面向架構師和軟件開發者等軟件工程實踐者的實際需要。《面向對象分析與設計(第3版)》通過大量例子說明了基本概念,解釋了方法,并展示了在不同領域的成功應用。全書分為理論和應用兩部分。理論部分深刻剖析了面向對象分析與設計(OOAD)的概念和方法。應用部分連續列出了5個不同類型、不同領域的應用,描述如何從初始階段到移交階段將OOAD理論和方法應用到項目中。應用部分所涉及的領域包括系統架構、數據獲取、密碼分析、控制系統和Web開發,還給出了一些關于重要問題的有效建議,包括分類、實現策略和高性價比的項目管理。書中的表示法采用最新的UML 2.0,因此《面向對象分析與設計(第3版)》是學習UML 2.0不可多得的參考書。《面向對象分析與設計(第3版)》作者基于長期豐富的經驗,提出了改進的對象開發方法,用于解決系統和軟件開發者面臨的復雜問題,非常適合實際系統和軟件的開發者、系統分析師或構架師、項目經理閱讀。《面向對象分析與設計(第3版)》主要闡述了軟件開發的方法,也可以作為高等院校軟件工程和高級編程課程的教材使用。
第1部分 概念
第1章 復雜性 2
1.1 復雜系統的結構 2
1.1.1 個人計算機的結構 3
1.1.2 植物和動物的結構 3
1.1.3 物質的結構 4
1.1.4 社會機構的結構 4
1.2 軟件固有的復雜性 5
1.2.1 定義軟件復雜性 5
1.2.2 為什么軟件在本質上是復雜的 5
1.3 復雜系統的5個屬性 8
1.3.1 層次結構 8
1.3.2 相對本原 8
1.3.3 分離關注 9
1.3.4 共同模式 9
1.3.5 穩定的中間形式 9
1.4 有組織和無組織的復雜性 10
1.4.1 復雜系統的規范形式 10
1.4.2 處理復雜性時人的能力的局限 12
1.5 從混沌到有序 12
1.5.1 分解的作用 13
1.5.2 抽象的作用 16
1.5.3 層次結構的作用 16
1.6 復雜系統的設計 17
1.6.1 作為科學和藝術的工程 17
1.6.2 設計的含義 17
1.7 小結 19
第2章 對象模型 20
2.1 對象模型的演進 20
2.1.1 程序設計語言的換代 20
2.1.2 第一代和第二代早期程序設計語言的拓撲結構 22
2.1.3 第二代后期和第三代早期程序設計語言的結構 23
2.1.4 第三代后期程序設計語言的結構 23
2.1.5 基于對象和面向對象的程序設計語言的結構 24
2.2 對象模型基礎 26
2.2.1 面向對象編程 29
2.2.2 面向對象設計 29
2.2.3 面向對象分析 30
2.3 對象模型要素 30
2.3.1 抽象的意義 31
2.3.2 封裝的意義 35
2.3.3 模塊化的意義 38
2.3.4 層次結構的意義 41
2.3.5 類型的意義 46
2.3.6 并發的意義 47
2.3.7 持久的意義 49
2.4 應用對象模型 51
2.4.1 對象模型的好處 51
2.4.2 開放式問題 52
2.5 小結 52
第3章 類與對象 53
3.1 對象的本質 53
3.1.1 什么是對象,什么不是對象 53
3.1.2 狀態 55
3.1.3 行為 57
3.1.4 標識符 60
3.2 對象之間的關系 62
3.2.1 鏈接 62
3.2.2 聚合 64
3.3 類的本質 65
3.3.1 什么是類,什么不是類 65
3.3.2 接口和實現 66
3.3.3 類的生命周期 68
3.4 類之間的關系 68
3.4.1 關聯 69
3.4.2 繼承 70
3.4.3 聚合 78
3.4.4 依賴關系 79
3.5 類與對象的互動 79
3.5.1 類與對象的關系 79
3.5.2 類與對象在分析和設計中的角色 79
3.6 創建高品質的類與對象 80
3.6.1 評判一種抽象的品質 80
3.6.2 選擇操作 81
3.6.3 選擇關系 82
3.6.4 選擇實現 83
3.7 小結 84
第4章 分類 85
4.1 正確分類的重要性 85
4.1.1 分類的困難 86
4.1.2 分類的增量和迭代本質 87
4.2 確定類和對象 88
4.2.1 經典方法和現代方法 89
4.2.2 面向對象分析 92
4.3 關鍵抽象與機制 97
4.3.1 確定關鍵抽象 97
4.3.2 識別機制 99
4.4 小結 101
第2部分 方法
第5章 表示法 104
5.1 統一建模語言 104
5.1.1 簡單歷史回顧 104
5.1.2 模型與多重視圖 105
5.1.3 圖分類 105
5.1.4 在實踐中使用圖 107
5.1.5 概念模型.邏輯模型和物理模型 108
5.1.6 工具的角色 108
5.1.7 面向對象開發的產品 108
5.1.8 規模上的伸縮 109
5.1.9 UML的語法和語義 109
5.1.10 UML2.0信息資源 110
5.2 包圖 110
5.2.1 基本概念:包表示法 110
5.2.2 基本概念:元素的可見性 111
5.2.3 基本概念:依賴關系 111
5.2.4 基本概念:包圖 113
5.2.5 高級概念:導入和訪問 114
5.3 組件圖 117
5.3.1 基本概念:組件表示法 117
5.3.2 基本概念:組件圖 118
5.3.3 基本概念:組件接口 119
5.3.4 基本概念:組件實現 121
5.3.5 高級概念:組件的內部結構 122
5.4 部署圖 123
5.4.1 基本概念:工件表示法 123
5.4.2 基本概念:節點表示法 124
5.4.3 基本概念:部署圖 124
5.5 用例圖 126
5.5.1 基本概念:執行者 126
5.5.2 基本概念:用例 127
5.5.3 基本概念:用例圖 127
5.5.4 高級概念:[[include]]和[[extend]]關系 129
5.5.5 高級概念:泛化 133
5.6 活動圖 133
5.6.1 基本概念:動作 134
5.6.2 基本概念:開始和停止 134
5.6.3 基本概念:判斷節點和合并節點 134
5.6.4 基本概念:分區 135
5.6.5 高級概念:分叉.結合和并發 135
5.6.6 高級概念:對象流 138
5.6.7 高級概念:其他元素 138
5.7 類圖 138
5.7.1 基本概念:類表示法 138
5.7.2 基本概念:類關系 140
5.7.3 高級概念:模板(參數化)類 142
5.7.4 高級概念:可見性 143
5.7.5 高級概念:關聯端名稱和限定符 144
5.7.6 高級概念:約束 145
5.7.7 高級概念:關聯類和注解 148
5.8 序列圖 149
5.8.1 基本概念:對象與交互 149
5.8.2 基本概念:生命線與消息 149
5.8.3 高級概念:銷毀事件 151
5.8.4 高級概念:執行說明 151
5.8.5 高級概念:交互使用 153
5.8.6 高級概念:控制結構 153
5.9 交互概述圖 155
5.9.1 基本概念:框 155
5.9.2 基本概念:控制流元素 155
5.9.3 基本概念:交互圖元素 156
5.10 組合結構圖 157
5.10.1 基本概念:組合結構的部分 157
5.10.2 基本概念:組合結構的部分與接口 157
5.10.3 基本概念:組合結構連接器 158
5.10.4 高級概念:協作.. 158
5.11 狀態機圖 159
5.11.1 基本概念:初始狀態.最終狀態和簡單狀態 160
5.11.2 基本概念:轉換與事件 160
5.11.3 高級概念:狀態活動——入口活動.執行活動和出口活動 162
5.11.4 高級概念:控制轉換 162
5.11.5 高級概念:復合狀態與嵌套狀態 163
5.11.6 高級概念:并發與控制 165
5.11.7 高級概念:子狀態機狀態 168
5.11.8 高級概念:其他狀態機圖元素 169
5.12 時間圖 170
5.12.1 基本概念:更多相同之處 170
5.12.2 基本概念:布局 170
5.12.3 基本概念:事件 171
5.12.4 基本概念:約束 171
5.12.5 高級概念:另一種表示形式 172
5.12.6 高級概念:事件與消息 172
5.13 對象圖 173
5.13.1 基本概念:對象 173
5.13.2 基本概念:對象關系 173
5.13.3 高級概念:端點名稱和限定符 174
5.14 通信圖 175
5.14.1 基本概念:對象.鏈接和消息 175
5.14.2 基本概念:順序表達式 176
5.14.3 高級概念:消息與同步 177
5.14.4 高級概念:迭代子句和警戒條件 178
5.15 小結 179
第6章 過程 181
6.1 首要原則 181
6.1.1 成功項目的特征 181
6.1.2 追求理性的開發過程 184
6.2 宏觀過程:軟件開發生命周期 186
6.2.1 概述 187
6.2.2 宏觀過程的內容維:科目 188
6.2.3 宏觀過程的時間維:里程碑和階段 190
6.2.4 宏觀過程的時間維:迭代 195
6.2.5 發行計劃 196
6.3 微觀過程:分析與設計過程 198
6.3.1 概述 198
6.3.2 抽象層次 199
6.3.3 活動 200
6.3.4 產品 201
6.3.5 微觀過程與抽象層次 203
6.3.6 識別元素 205
6.3.7 確定元素間的協作 208
6.3.8 確定元素間的關系 211
6.3.9 詳細確定元素的語義 213
6.4 小結 216
第7章 實戰 217
7.1 管理和計劃 217
7.1.1 風險管理 218
7.1.2 任務計劃 218
7.1.3 開發評審 219
7.2 人員配備 220
7.2.1 資源配置 220
7.2.2 開發團隊角色 221
7.3 發布版本管理 223
7.3.1 配置管理和版本控制 223
7.3.2 集成 224
7.3.3 測試 224
7.4 復用 225
7.4.1 復用的元素 225
7.4.2 建立復用制度 225
7.5 質量保證和度量 226
7.5.1 軟件質量 226
7.5.2 面向對象度量 226
7.6 文檔化 229
7.6.1 開發遺產 229
7.6.2 文檔化的內容 229
7.7 工具 230
7.7.1 工具種類 230
7.7.2 組織上的意義 231
7.8 特殊主題 231
7.8.1 領域特定問題 231
7.8.2 采納面向對象技術 232
7.9 面向對象開發的好處和風險 233
7.9.1 面向對象開發的好處 233
7.9.2 面向對象開發的風險 233
7.10 小結 235
第3部分 應用
第8章 系統架構——基于衛星的導航 238
8.1 先啟 238
8.1.1 衛星導航系統的需求 239
8.1.2 定義問題的邊界 240
8.1.3 決定使命用例 243
8.1.4 決定系統用例 245
8.2 精化 248
8.2.1 開發一個好的架構 248
8.2.2 定義架構開發活動 248
8.2.3 驗證所建議的系統架構 249
8.2.4 分配非功能需求和闡明接口 255
8.2.5 規定系統架構及其部署 257
8.2.6 分解系統架構 259
8.3 構造 265
8.4 后移交 265
8.4.1 添加新的功能 265
8.4.2 改變目標硬件 266
第9章 控制系統——交通管理 267
9.1 先啟 268
9.1.1 列車交通管理系統的需求 268
9.1.2 決定系統用例 270
9.2 精化 273
9.2.1 分析系統功能 274
9.2.2 定義TTMS架構 277
9.2.3 從系統工程到硬件和軟件工程 279
9.2.4 關鍵抽象和機制 281
9.3 構造 282
9.3.1 消息傳送 283
9.3.2 列車日程計劃 285
9.3.3 顯示信息 288
9.3.4 傳感器數據采集 289
9.3.5 發布版本管理 289
9.3.6 系統架構 290
9.3.7 子系統規格 291
9.4 后移交 293
第10章 人工智能——密碼分析 294
10.1 先啟 295
10.1.1 密碼分析需求 295
10.1.2 定義問題的邊界 296
10.1.3 黑板框架的架構 297
10.1.4 知識源的分析 299
10.2 精化 299
10.2.1 黑板對象 300
10.2.2 依賴和認定 301
10.3 構造 303
10.3.1 設計黑板對象 304
10.3.2 設計知識源 308
10.3.3 設計控制器 313
10.3.4 集成黑板框架 314
10.3.5 添加新的知識源 317
10.4 后移交 318
10.4.1 系統增強 318
10.4.2 改變需求 320
第11章 數據采集——氣象監測站 321
11.1 先啟 321
11.1.1 氣象監測站需求 321
11.1.2 定義問題的邊界 322
11.1.3 場景 330
11.2 精化 331
11.2.1 氣象監測系統用例 331
11.2.2 架構框架 338
11.3 構造 340
11.3.1 幀機制 340
11.3.2 發布計劃 343
11.3.3 傳感器機制 344
11.3.4 顯示機制 346
11.3.5 用戶界面機制 346
11.4 后移交 349
第12章 Web應用——休假跟蹤系統 350
12.1 先啟 350
12.1.1 需求 350
12.1.2 用例模型 352
12.2 精化 353
12.2.1 部署視圖 354
12.2.2 邏輯視圖 355
12.2.3 進程視圖 357
12.2.4 實現視圖 359
12.2.5 用例視圖 359
12.3 構造 362
12.3.1 用戶體驗模型 362
12.3.2 分析和設計模型 364
12.3.3 實體 372
12.3.4 控制器 379
12.3.5 Web頁面和用戶界面 380
12.4 移交和后移交 384
附錄A 面向對象編程語言 386
A.1 語言進化 386
A.2 Smalltalk 389
A.2.1 概述 390
A.2.2 例子 390
A.2.3 參考文獻 393
A.3 C++ 393
A.3.1 概述 394
A.3.2 例子 394
A.3.3 參考文獻 397
A.4 Java 397
A.4.1 概述 398
A.4.2 例子 399
A.4.3 參考文獻 402
附錄B 進一步閱讀 403
注解 409
術語表 430
分類書目 438
王海鵬 / 潘加宇 2013-08-31 19:16:10
稱謂:
内容: