第 1 篇 概念
第 1 章 復雜性 ....................................................................................... 2
1.1 復雜係統的結構 ....................................................................................... 3
1.1.1 個人計算機的結構 ....................................................................... 3
1.1.2 植物和動物的結構 ....................................................................... 4
1.1.3 物質的結構 ................................................................................... 5
1.1.4 社會機構的結構 ........................................................................... 5
1.2 軟件固有的復雜性 ................................................................................... 6
1.2.1 定義軟件復雜性 ........................................................................... 6
1.2.2 為什麼軟件在本質上是復雜的 ................................................... 7
1.3 復雜係統的 5 個屬性 ............................................................................. 11
1.3.1 層次結構 ..................................................................................... 11
1.3.2 相對本原 ..................................................................................... 12
1.3.3 關注點分離 ................................................................................. 12
1.3.4 共同模式 ..................................................................................... 12
1.3.5 穩定的中間形式 ......................................................................... 13
1.4 有組織和無組織的復雜性 ..................................................................... 13
1.4.1 復雜係統的規範形式 ................................................................. 13
1.4.2 人在處理復雜性時的能力局限 ................................................. 16
1.5 從混沌到有序 ......................................................................................... 17
1.5.1 分解的作用 ................................................................................. 17
1.5.2 抽象的作用 ................................................................................. 21
1.5.3 層次結構的作用 ......................................................................... 22
1.6 復雜係統的設計 ..................................................................................... 23
1.6.1 作為科學和藝術的工程 ............................................................. 23
1.6.2 設計的含義 ................................................................................. 23
1.7 小結 ......................................................................................................... 26
第 2 章 對象模型 ................................................................................. 27
2.1 對象模型的演進 ..................................................................................... 27
2.1.1 程序設計語言的換代 ................................................................. 28
2.1.2 第一代和第二代早期程序設計語言的拓撲結構 ..................... 30
2.1.3 第二代後期和第三代早期程序設計語言的結構 ..................... 31
2.1.4 第三代後期程序設計語言的結構 ............................................. 32
2.1.5 基於對象和麵嚮對象的程序設計語言的結構 ......................... 33
2.2 對象模型基礎 ......................................................................................... 35
2.2.1 麵嚮對象編程 ............................................................................. 38
2.2.2 麵嚮對象設計 ............................................................................. 39
2.2.3 麵嚮對象分析 ............................................................................. 40
2.3 對象模型要素 ......................................................................................... 40
2.3.1 抽象的意義 ................................................................................. 42
2.3.2 封裝的意義 ................................................................................. 48
2.3.3 模塊化的意義 ............................................................................. 51
2.3.4 層次結構的意義 ......................................................................... 55
2.3.5 類型的意義 ................................................................................. 61
2.3.6 並發的意義 ................................................................................. 64
2.3.7 持久的意義 ................................................................................. 66
2.4 應用對象模型 ......................................................................................... 68
2.4.1 對象模型的好處 ......................................................................... 69
2.4.2 開放式問題 ................................................................................. 70
2.5 小結 ......................................................................................................... 70
第 3 章 類與對象 ................................................................................. 71
3.1 對象的本質 ............................................................................................. 71
3.1.1 什麼是對象,什麼不是對象 ..................................................... 72
3.1.2 狀態 ............................................................................................. 74
3.1.3 行為 ............................................................................................. 77
3.1.4 標識符 ......................................................................................... 81
3.2 對象之間的關係 ..................................................................................... 83
3.2.1 鏈接 ............................................................................................. 84
3.2.2 聚閤 ............................................................................................. 87
3.3 類的本質 ................................................................................................. 88
3.3.1 什麼是類,什麼不是類 ............................................................. 88
3.3.2 接口和實現 ................................................................................. 90
3.3.3 類的生命周期 ............................................................................. 91
3.4 類之間的關係 ......................................................................................... 92
3.4.1 關聯 ............................................................................................. 92
3.4.2 繼承 ............................................................................................. 94
3.4.3 聚閤 ........................................................................................... 105
3.4.4 依賴關係 ................................................................................... 106
3.5 類與對象的互動 ................................................................................... 106
3.5.1 類與對象的關係 ....................................................................... 107
3.5.2 類與對象在分析和設計中的角色 ........................................... 107
3.6 創建高品質的類與對象 ....................................................................... 107
3.6.1 評判一種抽象的品質 ............................................................... 108
3.6.2 選擇操作 ................................................................................... 109
3.6.3 選擇關係 ................................................................................... 111
3.6.4 選擇實現 ................................................................................... 113
3.7 小結 ....................................................................................................... 114
第 4 章 分類........................................................................................115
4.1 正確分類的重要性 ............................................................................... 115
4.1.1 分類的睏難 ............................................................................... 116
4.1.2 分類的增量和迭代本質 ........................................................... 118
4.2 確定類和對象 ....................................................................................... 120
4.2.1 經典方法和現代方法 ............................................................... 120
4.2.2 麵嚮對象分析 ........................................................................... 124
4.3 關鍵抽象與機製 ................................................................................... 132
4.3.1 確定關鍵抽象 ........................................................................... 132
4.3.2 識彆機製 ................................................................................... 134
4.4 小結 ....................................................................................................... 137
第 2 篇 方法
第 5 章 錶示法 ................................................................................... 140
5.1 統一建模語言 ....................................................................................... 140
5.1.1 簡單曆史迴顧 ........................................................................... 141
5.1.2 模型與多重視圖 ....................................................................... 141
5.1.3 圖分類 ....................................................................................... 142
5.1.4 在實踐中使用圖 ....................................................................... 144
5.1.5 概念模型、邏輯模型和物理模型 ........................................... 145
5.1.6 工具的角色 ............................................................................... 145
5.1.7 麵嚮對象開發的産品 ............................................................... 146
5.1.8 規模上的伸縮 ........................................................................... 147
5.1.9 UML 的語法和語義 ................................................................. 147
5.1.10 UML 2.0 信息資源 ................................................................. 148
5.2 包圖 ....................................................................................................... 148
5.2.1 基本概念:包錶示法 ............................................................... 149
5.2.2 基本概念:元素的可見性 ....................................................... 150
5.2.3 基本概念:依賴關係 ............................................................... 151
5.2.4 基本概念:包圖 ....................................................................... 152
5.2.5 高級概念:導入和訪問 ........................................................... 154
5.3 組件圖 ................................................................................................... 156
5.3.1 基本概念:組件錶示法 ........................................................... 157
5.3.2 基本概念:組件圖 ................................................................... 158
5.3.3 基本概念:組件接口 ............................................................... 160
5.3.4 基本概念:組件實現 ............................................................... 161
5.3.5 高級概念:組件的內部結構 ................................................... 163
5.4 部署圖 ................................................................................................... 164
5.4.1 基本概念:工件錶示法 ........................................................... 165
5.4.2 基本概念:節點錶示法 ........................................................... 165
5.4.3 基本概念:部署圖 ................................................................... 166
5.5 用例圖 ................................................................................................... 168
5.5.1 基本概念:執行者 ................................................................... 169
5.5.2 基本概念:用例 ....................................................................... 169
5.5.3 基本概念:用例圖 ................................................................... 169
5.5.4 高級概念: ?include?和?extend?關係..................................... 172
5.5.5 高級概念:泛化 ....................................................................... 176
5.6 活動圖 ................................................................................................... 177
5.6.1 基本概念:動作 ....................................................................... 178
5.6.2 基本概念:開始和停止 ........................................................... 178
5.6.3 基本概念:判斷節點和閤並節點 ........................................... 179
5.6.4 基本概念:分區 ....................................................................... 179
5.6.5 高級概念:分叉、結閤和並發 ............................................... 180
5.6.6 高級概念:對象流 ................................................................... 182
5.6.7 高級概念:其他元素 ............................................................... 182
5.7 類圖 ....................................................................................................... 182
5.7.1 基本概念:類錶示法 ............................................................... 184
5.7.2 基本概念:類關係 ................................................................... 186
5.7.3 高級概念:模闆(參數化)類 ............................................... 189
5.7.4 高級概念:可見性 ................................................................... 190
5.7.5 高級概念:關聯端名稱和限定符 ........................................... 191
5.7.6 高級概念:約束 ....................................................................... 192
5.7.7 高級概念:關聯類和注解 ....................................................... 196
5.8 序列圖 ................................................................................................... 197
5.8.1 基本概念:對象與交互 ........................................................... 197
5.8.2 基本概念:生命綫與消息 ....................................................... 198
5.8.3 高級概念:銷毀事件 ............................................................... 199
5.8.4 高級概念:執行說明 ............................................................... 200
5.8.5 高級概念:交互使用 ............................................................... 201
5.8.6 高級概念:控製結構 ............................................................... 201
5.9 交互概述圖 ........................................................................................... 204
5.9.1 基本概念:框 ........................................................................... 204
5.9.2 基本概念:控製流元素 ........................................................... 204
5.9.3 基本概念:交互圖元素 ........................................................... 206
5.10 組閤結構圖 ......................................................................................... 206
5.10.1 基本概念:組閤結構的部分 ................................................. 206
5.10.2 基本概念:組閤結構的部分與接口 ..................................... 207
5.10.3 基本概念:組閤結構連接器 ................................................. 208
5.10.4 高級概念:協作 ..................................................................... 208
5.11 狀態機圖 .............................................................................................. 209
5.11.1 基本概念:初始狀態、最終狀態和簡單狀態 ..................... 210
5.11.2 基本概念:轉換與事件 ......................................................... 211
5.11.3 高級概念:狀態活動——入口活動、 ................................. 213
執行活動和齣口活動 ............................................................. 213
5.11.4 高級概念:控製轉換 ............................................................. 213
5.11.5 高級概念:復閤狀態與嵌套狀態 ......................................... 215
5.11.6 高級概念:並發與控製 ......................................................... 216
5.11.7 高級概念:子狀態機狀態 ..................................................... 221
5.11.8 高級概念:其他狀態機圖元素 ............................................. 222
5.12 時間圖 ................................................................................................. 222
5.12.1 基本概念:更多相同之處 ..................................................... 223
5.12.2 基本概念:布局 ..................................................................... 223
5.12.3 基本概念:事件 ..................................................................... 224
5.12.4 基本概念:約束 ..................................................................... 224
5.12.5 高級概念:另一種錶示形式 ................................................. 225
5.12.6 高級概念:事件與消息 ......................................................... 226
5.13 對象圖 ................................................................................................. 226
5.13.1 基本概念:對象 ..................................................................... 227
5.13.2 基本概念:對象關係 ............................................................. 228
5.13.3 高級概念:端點名稱和限定符 ............................................. 229
5.14 通信圖 ................................................................................................. 230
5.14.1 基本概念:對象、鏈接和消息 ............................................. 230
5.14.2 基本概念:順序錶達式 ......................................................... 230
5.14.3 高級概念:消息與同步 ......................................................... 233
5.14.4 高級概念:迭代子句和約束條件 ......................................... 233
5.15 小結 ..................................................................................................... 234
第 6 章 過程....................................................................................... 236
6.1 首要原則 ............................................................................................... 236
6.1.1 成功項目的特徵 ....................................................................... 236
6.1.2 追求理性的開發過程 ............................................................... 240
6.2 宏觀過程:軟件開發生命周期 ........................................................... 244
6.2.1 概述 ........................................................................................... 244
6.2.2 宏觀過程的內容維:科目 ....................................................... 246
6.2.3 宏觀過程的時間維:裏程碑和階段 ....................................... 249
6.2.4 宏觀過程的時間維:迭代 ....................................................... 255
6.2.5 發行計劃 ................................................................................... 257
6.3 微觀過程:分析與設計過程 ............................................................... 260
6.3.1 概述 ........................................................................................... 260
6.3.2 抽象層次 ................................................................................... 261
6.3.3 活動 ........................................................................................... 262
6.3.4 産品 ........................................................................................... 263
6.3.5 微觀過程與抽象層次 ............................................................... 267
6.3.6 識彆元素 ................................................................................... 270
6.3.7 確定元素間的協作 ................................................................... 274
6.3.8 確定元素間的關係 ................................................................... 278
6.3.9 詳細確定元素的語義 ............................................................... 281
6.4 小結 ....................................................................................................... 285
第 7 章 實戰....................................................................................... 287
7.1 管理和計劃 ........................................................................................... 288
7.1.1 風險管理 ................................................................................... 288
7.1.2 任務計劃 ................................................................................... 289
7.1.3 開發復查 ................................................................................... 290
7.2 人員配備 ............................................................................................... 292
7.2.1 資源配置 ................................................................................... 292
7.2.2 開發團隊角色 ........................................................................... 293
7.3 發布版本管理 ....................................................................................... 296
7.3.1 配置管理和版本控製 ............................................................... 296
7.3.2 集成 ........................................................................................... 297
7.3.3 測試 ........................................................................................... 298
7.4 復用 ....................................................................................................... 298
7.4.1 復用的元素 ............................................................................... 298
7.4.2 建立復用製度 ........................................................................... 299
7.5 質量保證和測量指標 ........................................................................... 299
7.5.1 軟件質量 ................................................................................... 300
7.5.2 麵嚮對象測量指標 ................................................................... 301
7.6 文檔化 ................................................................................................... 304
7.6.1 開發遺産 ................................................................................... 304
7.6.2 文檔化的內容 ........................................................................... 305
7.7 工具 ....................................................................................................... 306
7.7.1 工具種類 ................................................................................... 306
7.7.2 組織上的意義 ........................................................................... 307
7.8 特殊主題 ............................................................................................... 308
7.8.1 領域特定問題 ........................................................................... 308
7.8.2 采納麵嚮對象技術 ................................................................... 309
7.9 麵嚮對象開發的好處和風險 ............................................................... 310
7.9.1 麵嚮對象開發的好處 ............................................................... 310
7.9.2 麵嚮對象開發的風險 ............................................................... 311
7.10 小結 ..................................................................................................... 313
第 3 篇 應用
第 8 章 係統架構——基於衛星的導航 ............................................... 316
8.1 初始 ....................................................................................................... 317
8.1.1 衛星導航係統的需求 ............................................................... 318
8.1.2 定義問題的邊界 ....................................................................... 319
8.1.3 確定任務用例 ........................................................................... 322
8.1.4 確定係統用例 ........................................................................... 325
8.2 細化 ....................................................................................................... 329
8.2.1 開發一個好的架構 ................................................................... 329
8.2.2 定義架構開發活動 ................................................................... 330
8.2.3 驗證所建議的係統架構 ........................................................... 331
8.2.4 分配非功能需求和確定接口 ................................................... 339
8.2.5 規定係統架構及其部署 ........................................................... 341
8.2.6 分解係統架構 ........................................................................... 344
8.3 構造 ....................................................................................................... 350
8.4 交付之後 ............................................................................................... 350
8.4.1 添加新的功能 ........................................................................... 351
8.4.2 改變目標硬件 ........................................................................... 352
第 9 章 控製係統——交通管理 .......................................................... 353
9.1 初始 ....................................................................................................... 354
9.1.1 列車交通管理係統的需求 ....................................................... 354
9.1.2 決定係統用例 ........................................................................... 357
9.2 細化 ....................................................................................................... 362
9.2.1 分析係統功能 ........................................................................... 362
9.2.2 定義 TTMS 架構 ...................................................................... 366
9.2.3 從係統工程到硬件和軟件工程 ............................................... 368
9.2.4 關鍵抽象和機製 ....................................................................... 371
9.3 構造 ....................................................................................................... 373
9.3.1 消息傳送 ................................................................................... 374
9.3.2 列車時刻錶計劃 ....................................................................... 377
9.3.3 顯示信息 ................................................................................... 381
9.3.4 傳感器數據采集 ....................................................................... 382
9.3.5 發布版本管理 ........................................................................... 383
9.3.6 係統架構 ................................................................................... 384
9.3.7 子係統規格說明 ....................................................................... 385
9.4 交付之後 ............................................................................................... 387
第 10 章 人工智能——密碼分析 ........................................................ 389
10.1 初始 ..................................................................................................... 390
10.1.1 密碼分析需求 ......................................................................... 390
10.1.2 定義問題的邊界 ..................................................................... 391
10.1.3 黑闆框架的架構 ..................................................................... 394
10.1.4 知識源的分析 ......................................................................... 396
10.2 細化 ..................................................................................................... 397
10.2.1 黑闆對象 ................................................................................. 397
10.2.2 依賴和認定 ............................................................................. 399
10.3 構造 ..................................................................................................... 401
10.3.1 設計黑闆對象 ......................................................................... 402
10.3.2 設計知識源 ............................................................................. 407
10.3.3 設計控製器 ............................................................................. 414
10.3.4 集成黑闆框架 ......................................................................... 416
10.3.5 添加新的知識源 ..................................................................... 419
10.4 交付之後 ............................................................................................. 421
10.4.1 係統增強 ................................................................................. 421
10.4.2 改變需求 ................................................................................. 423
第 11 章 數據采集——氣象監測站 .................................................... 424
11.1 初始 ...................................................................................................... 424
11.1.1 氣象監測站需求 ..................................................................... 425
11.1.2 定義問題的邊界 ..................................................................... 425
11.1.3 場景 ......................................................................................... 437
11.2 細化 ...................................................................................................... 438
11.2.1 氣象監測係統用例 ................................................................. 438
11.2.2 架構框架 ................................................................................. 448
11.3 構造 ...................................................................................................... 450
11.3.1 幀機製 ..................................................................................... 450
11.3.2 發布計劃 ................................................................................. 454
11.3.3 傳感器機製 ............................................................................. 455
11.3.4 顯示機製 ................................................................................. 457
11.3.5 用戶界麵機製 ......................................................................... 458
11.4 交付之後 .............................................................................................. 461
第 12 章 Web 應用——休假跟蹤係統 ............................................... 463
12.1 初始 ..................................................................................................... 464
12.1.1 需求 ......................................................................................... 464
12.1.2 用例模型 ................................................................................. 466
12.2 細化 ..................................................................................................... 467
12.2.1 部署視圖 ................................................................................. 468
12.2.2 邏輯視圖 ................................................................................. 470
12.2.3 進程視圖 ................................................................................. 472
12.2.4 實現視圖 ................................................................................. 475
12.2.5 用例視圖 ................................................................................. 475
12.3 構造 ..................................................................................................... 480
12.3.1 用戶體驗模型 ......................................................................... 480
12.3.2 分析和設計模型 ..................................................................... 482
12.3.3 實體 ......................................................................................... 493
12.3.4 控製器 ..................................................................................... 502
12.3.5 Web 頁麵和用戶界麵 ............................................................. 503
12.4 交付和交付之後 ................................................................................. 508
附錄 A 麵嚮對象編程語言 ................................................................. 510
附錄 B 進一步閱讀 ............................................................................ 530
注解 ..................................................................................................... 539
術語錶 .................................................................................................. 566
· · · · · · (
收起)