內容提要
《系統架構設計師教程(第4版)》由希賽教育軟考學院組織編寫,用以作為計算機技術與軟體專業技術資格(水平)考試中的系統架構設計師級別的考試輔導指定教材。內容涵蓋了最新的系統架構設計師考試大綱的所有知識點,對系統架構設計師所必須掌握的基礎理論知識做了詳細的介紹,重在培養系統架構設計師所必須具備的專業技能和方法。
《系統架構設計師教程(第4版)》內容既是對系統架構設計師考試的總體綱領性的要求,也是系統架構設計師職業生涯的知識與技能體系。準備參加考試的人員可通過閱讀《系統架構設計師教程(第4版)》掌握考試大綱規定的知識,把握考試重點和難點。
《系統架構設計師教程(第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