1. 程式人生 > >系統架構設計師教程(第4版) introduction

系統架構設計師教程(第4版) introduction

系統架構設計師教程(第4版)


第1章 計算機組成與體系結構 1
1.1 計算機系統組成 1
1.1.1 計算機硬體的組成 1
1.1.2 計算機系統結構的分類 2
1.1.3 複雜指令集系統與精簡指令集系統 3
1.1.4 匯流排 5
1.2 儲存器系統 5
1.2.1 主儲存器 6
1.2.2 輔助儲存器 7
1.2.3 Cache儲存器 8
1.3 流水線 13
1.3.1 流水線週期 13
1.3.2 計算流水線執行時間 13
1.3.3 流水線的吞吐率 14
1.3.4 流水線的加速比 14
第2章 作業系統 15
2.1 作業系統的型別與結構 15
2.1.1 作業系統的定義 15
2.1.2 作業系統分類 16
2.2 作業系統基本原理 16
2.2.1 程序管理 16
2.2.2 儲存管理 23
2.2.3 裝置管理 27
2.2.4 檔案管理 28
2.2.5 作業管理 32
第3章 資料庫系統 34
3.1 資料庫管理系統的型別 34
3.2 資料庫模式與正規化 34
3.2.1 資料庫的結構與模式 34
3.2.2 資料模型 37
3.2.3 關係代數 37
3.2.4 資料的規範化 40
3.2.5 反規範化 42
3.3 資料庫設計 43
3.3.1 資料庫設計的方法 43
3.3.2 資料庫設計的基本步驟 45
3.3.3 需求分析 46
3.3.4 概念結構設計 47
3.3.5 邏輯結構設計 51
3.3.6 物理結構設計 56
3.4 事務管理 56
3.4.1 併發控制 57
3.4.2 故障與恢復 58
3.5 備份與恢復 60
3.6 分散式資料庫系統 61
3.6.1 分散式資料庫的概念 61
3.6.2 分散式資料庫的架構 64
3.7 資料倉庫 68
3.7.1 資料倉庫的概念 69
3.7.2 資料倉庫的結構 70
3.7.3 資料倉庫的實現方法 72
3.8 資料探勘 74
3.8.1 資料探勘的概念 74
3.8.2 資料探勘的功能 76
3.8.3 資料探勘常用技術 76
3.8.4 資料探勘的流程 78
3.9 NOSQL 79
3.10 大資料 81
第4章 計算機網路 83
4.1 網路架構與協議 83
4.1.1 網路互聯模型 84
4.1.2 常見的網路協議 85
4.1.3 IPv6 87
4.2 區域網與廣域網 89
4.2.1 區域網基礎知識 89
4.2.2 無線區域網 91
4.2.3 廣域網技術 93
4.2.4 網路接入技術 93
4.3 網路互連與常用裝置 95
4.4 網路工程 97
4.4.1 網路規劃 97
4.4.2 網路設計 99
4.4.3 網路實施 101
4.5 網路儲存技術 102
4.6 綜合佈線 104
第5章 系統性能評價 106
5.1 效能指標 106
5.1.1 計算機 107
5.1.2 網路 109
5.1.3 作業系統 110
5.1.4 資料庫管理系統 110
5.1.5 Web伺服器 111
5.2 效能計算 111
5.3 效能設計 112
5.3.1 阿姆達爾解決方案 112
5.3.2 負載均衡 113
5.4 效能評估 116
5.4.1 基準測試程式 116
5.4.2 Web伺服器的效能評估 117
5.4.3 系統監視 118
第6章 開發方法 120
6.1 軟體生命週期 120
6.2 軟體開發模型 121
6.2.1 瀑布模型 121
6.2.2 演化模型 124
6.2.3 螺旋模型 124
6.2.4 增量模型 125
6.2.5 構件組裝模型 125
6.3 統一過程 126
6.4 敏捷方法 129
6.4.1 極限程式設計 129
6.4.2 特徵驅動開發 133
6.4.3 Scrum 135
6.4.4 水晶方法 138
6.4.5 其他敏捷方法 139
6.5 軟體重用 140
6.5.1 軟體重用 140
6.5.2 構件技術 140
6.6 基於架構的軟體設計 141
6.6.1 ABSD方法與生命週期 141
6.6.2 基於架構的軟體開發模型 143
6.7 形式化方法 148
第7章 系統計劃 150
7.1 專案的提出與選擇 150
7.1.1 專案的立專案標和動機 150
7.1.2 專案的選擇和確定 151
7.1.3 專案提出和選擇的結果 154
7.2 可行性研究與效益分析 155
7.2.1 可行性研究的內容 156
7.2.2 成本效益分析 157
7.2.3 可行性分析報告 158
7.3 方案的制訂和改進 159
7.4 新舊系統的分析和比較 161
7.4.1 遺留系統的評價方法 162
7.4.2 遺留系統的演化策略 165
第8章 系統分析與設計方法 167
8.1 定義問題與歸結模型 167
8.1.1 問題分析 167
8.1.2 問題定義 170
8.2 需求分析與軟體設計 172
8.2.1 需求分析的任務與過程 172
8.2.2 如何進行系統設計 174
8.2.3 軟體設計的任務與活動 175
8.3 結構化分析與設計 176
8.3.1 結構化分析 176
8.3.2 結構化設計 180
8.3.3 模組設計 182
8.4 面向物件的分析與設計 184
8.4.1 面向物件的基本概念 184
8.4.2 面向物件分析 186
8.4.3 統一建模語言 188
8.5 使用者介面設計 199
8.5.1 使用者介面設計的原則 199
8.5.2 使用者介面設計過程 200
8.6 工作流設計 200
8.6.1 工作流設計概述 201
8.6.2 工作流管理系統 202
8.7 簡單分散式計算機應用系統的設計 203
8.8 系統執行環境的整合與設計 204
8.9 系統過渡計劃 206
第9章 軟體架構設計 208
9.1 軟體架構概述 208
9.1.1 軟體架構的定義 209
9.1.2 軟體架構的重要性 210
9.1.3 架構的模型 211
9.2 架構需求與軟體質量屬性 213
9.2.1 軟體質量屬性 213
9.2.2 6個質量屬性及實現 214
9.3 軟體架構風格 221
9.3.1 軟體架構風格分類 222
9.3.2 資料流風格 222
9.3.3 呼叫/返回風格 224
9.3.4 獨立構件風格 226
9.3.5 虛擬機器風格 227
9.3.6 倉庫風格 228
9.4 層次系統架構風格 229
9.4.1 二層及三層C/S架構風格 229
9.4.2 B/S架構風格 230
9.4.3 MVC架構風格 231
9.4.4 MVP架構風格 233
9.5 面向服務的架構 234
9.5.1 SOA概述 234
9.5.2 SOA的關鍵技術 236
9.5.3 SOA的實現方法 238
9.5.4 微服務 241
9.6 架構設計 244
9.7 軟體架構文件化 246
9.8 軟體架構評估 250
9.8.1 軟體架構評估的方法 250
9.8.2 架構的權衡分析法 250
9.8.3 成本效益分析法 252
9.9 構件及其複用 253
9.9.1 商用構件標準規範 253
9.9.2 應用系統簇與構件系統 255
9.9.3 基於複用開發的組織結構 255
9.10 產品線及系統演化 256
9.10.1 複用與產品線 256
9.10.2 基於產品線的架構 257
9.10.3 產品線的開發模型 258
9.10.4 特定領域軟體架構 258
9.10.5 架構及系統演化 259
9.11 軟體架構檢視 260
9.11.1 軟體檢視的分類 260
9.11.2 模組檢視型別及其風格 262
9.11.3 C&C檢視型別及其風格 263
9.11.4 分配檢視型別及其風格 265
9.11.5 各檢視型別間的對映關係 267
第10章 設計模式 268
10.1 設計模式概述 268
10.1.1 設計模式的概念 268
10.1.2 設計模式的組成 269
10.1.3 GoF設計模式 269
10.1.4 其他設計模式 271
10.1.5 設計模式與軟體架構 272
10.1.6 設計模式分類 272
10.2 設計模式及實現 273
10.2.1 Abstract Factory模式 273
10.2.2 Singleton模式 276
10.2.3 Decorator模式 277
10.2.4 Facade/Session Facade模式 279
10.2.5 Mediator模式 281
10.2.6 Observer模式 282
10.2.7 Intercepting Filter模式 284
10.3 設計模式總結 286
第11章 測試評審方法 288
11.1 測試方法 288
11.1.1 軟體測試階段 288
11.1.2 白盒測試和黑盒測試 290
11.1.3 缺陷的分類和級別 292
11.1.4 除錯 293
11.2 評審方法 294
11.3 驗證與確認 295
11.4 測試自動化 297
11.5 面向物件的測試 297
第12章 嵌入式系統設計 300
12.1 嵌入式系統概論 300
12.2 嵌入式系統的組成 301
12.2.1 硬體架構 301
12.2.2 軟體架構 306
12.3 嵌入式開發平臺與除錯環境 307
12.3.1 嵌入式系統軟體開發平臺 307
12.3.2 嵌入式開發除錯 309
12.4 嵌入式網路系統 312
12.4.1 現場匯流排網 312
12.4.2 家庭資訊網 313
11.4.3 無線資料通訊網 313
12.4.4 嵌入式Internet 314
12.5 嵌入式資料庫管理系統 315
12.5.1 使用環境的特點 315
12.5.2 系統組成與關鍵技術 316
12.6 實時系統與嵌入式作業系統 319
12.6.1 嵌入式系統的實時概念 319
12.6.2 嵌入式作業系統概述 320
12.6.3 實時嵌入式作業系統 321
12.6.4 主流嵌入式作業系統介紹 324
12.7 嵌入式系統開發設計 325
12.7.1 嵌入式系統設計概述 325
12.7.2 開發模型與設計流程 327
12.7.3 嵌入式系統設計的核心技術 329
12.7.4 嵌入式開發設計環境 331
12.7.5 嵌入式軟體設計模型 332
12.7.6 需求分析 335
12.7.7 系統設計 337
12.7.8 系統整合與測試 342
第13章 開發管理 344
13.1 專案的範圍、時間與成本 344
13.1.1 專案範圍管理 345
13.1.2 專案成本管理 345
13.1.3 專案時間管理 346
13.2 配置管理與文件管理 347
13.2.1 軟體配置管理的概念 347
13.2.2 軟體配置管理的解決方案 348
13.2.3 軟體文件管理 351
13.3 軟體需求管理 355
13.3.1 需求變更 355
13.3.2 需求跟蹤 356
13.4 軟體開發的質量與風險 356
13.4.1 軟體質量管理 356
13.4.2 專案風險管理 359
13.5 人力資源管理 363
13.6 軟體的執行與評價 368
13.7 軟體過程改進 368
第14章 資訊系統基礎知識 371
14.1 資訊系統概述 371
14.1.1 資訊系統的組成 371
14.1.2 資訊系統的生命週期 373
14.1.3 資訊系統建設的原則 375
14.1.4 資訊系統開發方法 376
14.2 資訊系統工程 378
14.2.1 資訊系統工程的概念 378
14.2.2 資訊系統工程的內容 380
14.2.3 資訊系統工程的總體規劃 383
14.2.4 總體規劃的方法論 389
14.3 政府資訊化與電子政務 394
14.3.1 我國政府資訊化的歷程和策略 394
14.3.2 電子政務的內容 398
14.3.3 電子政務建設的過程模式和技術模式 399
14.4 企業資訊化與電子商務 403
14.4.1 企業資訊化概述 403
14.4.2 企業資源規劃 406
14.4.3 客戶關係管理 410
14.4.4 產品資料管理 413
14.4.5 企業門戶 416
14.4.6 企業應用整合 418
14.4.7 供應鏈管理 421
14.4.8 電子商務概述 423
14.6 知識管理與商業智慧 425
14.6.1 知識管理 425
14.6.2 商業智慧 427
14.7 業務流程重組 427
第15章 基於中介軟體的開發 431
15.1 中介軟體技術 431
15.1.1 中介軟體的概念 432
15.1.2 中介軟體的分類 433
15.1.3 中介軟體產品介紹 434
15.2 應用伺服器技術 435
15.2.1 應用伺服器的概念 436
15.2.2 主要的應用伺服器 438
15.3 J2EE 439
15.3.1 表示層 440
15.3.2 應用服務層 441
15.4 .NET 443
15.4.1 .NET平臺 444
15.4.2 .NET框架 445
15.5 企業應用整合 450
15.6 輕量級架構和重量級架構 453
15.6.1 Struts框架 453
15.6.2 Spring框架 454
15.6.3 Hibernate框架 455
15.6.4 基於Struts、Spring和Hibernate的輕量級架構 456
15.6.5 輕量級架構和重量級架構的探討 457
第16章 安全性和保密性設計 459
16.1 加密和解密 459
16.1.1 對稱金鑰加密演算法 460
16.1.2 不對稱金鑰加密演算法 461
16.2 數字簽名與數字水印 463
16.2.1 數字簽名 463
16.2.2 數字信封 465
16.3 數字證書與金鑰管理 466
16.3.1 金鑰分配中心 466
16.3.2 數字證書和公開金鑰基礎設施 467
16.4 安全協議 470
16.4.1 IPSec協議簡述 471
16.4.2 SSL協議 474
16.4.3 PGP協議 477
16.5 計算機病毒與防治 480
16.5.1 計算機病毒概述 480
16.5.2 網路環境下的病毒發展新趨勢 482
16.5.3 計算機病毒的檢測與清除 483
16.5.4 計算機病毒的預防 485
16.6 身份認證與訪問控制 486
16.6.1 身份認證技術 486
16.6.2 訪問控制技術 492
16.7 網路安全體系 494
16.7.1 OSI安全架構 494
16.7.2 VPN在網路安全中的應用 496
16.8 系統的安全性設計 499
16.8.1 物理安全問題與設計 499
16.8.2 防火牆及其在系統安全中的應用 499
16.8.3 入侵檢測系統 501
16.9 安全性規章 503
16.9.1 安全管理制度 503
16.9.2 計算機犯罪與相關法規 505
第17章 系統的可靠性分析與設計 508
17.1 可靠性概述 508
17.2 系統故障模型 509
17.2.1 故障的來源以及表現 509
17.2.2 幾種常用的故障模型 510
17.3 系統配置方法 510
17.3.1 單機容錯技術 511
17.3.2 雙機熱備份技術 511
17.3.3 伺服器叢集技術 512
17.4 系統可靠性模型 513
17.4.1 時間模型 513
17.4.2 故障植入模型 513
17.4.3 資料模型 514
17.5 系統的可靠性分析和可靠度計算 515
17.5.1 組合模型 515
17.5.2 馬爾柯夫模型 517
17.6 提高系統可靠性的措施 519
17.6.1 硬體冗餘 519
17.6.2 資訊冗餘 522
17.7 備份與恢復 523
第18章 軟體的智慧財產權保護 525
18.1 著作權法及實施條例 525
18.1.1 著作權法客體 525
18.1.2 著作權法的主體 526
18.1.3 著作權 527
18.2 計算機軟體保護條例 528
18.3 商標法及實施條例 529
18.4 專利法及實施細則 530
18.5 反不正當競爭法 532
第19章 標準化知識 534
19.1 標準化概論 534
19.2 標準分級與標準型別 534
19.2.1 標準分級 535
19.2.2 強制性標準與推薦性標準 536
第20章 應用數學 538
20.1 運籌方法 538
20.1.1 網路計劃技術 538
20.1.2 線性規劃 542
20.1.3 決策論 545
20.1.4 對策論 548
20.2 數學建模 549
第21章 虛擬化、雲端計算與物聯網 551
21.1 虛擬化 551
21.1.1 虛擬化技術的分類 551
21.1.2 虛擬化的模式 553
21.2 雲端計算 554
21.2.1 雲端計算的特點 555
21.2.2 雲端計算的型別 556
21.2.3 雲端計算的應用 556
21.3 物聯網 557
21.3.1 物聯網的層次結構 558
21.3.2 物聯網的相關領域與技術 559
21.3.3 物聯網的應用 562