內容簡介
本書作為中級職稱的軟考指定教材,具有比較權威的指導意義。本書根據《軟體設計師考試大綱》的重點內容,闡述了12章的內容,考生在學習教材內容的同時,還須對照考試大綱(2009版),認真學習和複習大綱的知識點。 本書是在《軟體設計師考試大綱》的指導下,對《軟體設計師教程(第三版)》進行了認真的修訂,部分章節重寫後形成。
圖書目錄
第1章 計算機系統知識 1
1.1 計算機系統基礎知識 1
1.1.1 計算機系統硬體基本組成 1
1.1.2 中央處理單元 1
1.1.3 數據表示 4
1.1.4 校驗碼 9
1.2 計算機體系結構 11
1.2.1 計算機體系結構的發展 11
1.2.2 存儲系統 19
1.2.3 輸入輸出技術 28
1.2.4 匯流排結構 32
1.3 安全性、可靠性與系統性能評測
基礎知識 34
1.3.1 計算機安全概述 34
1.3.2 加密技術和認證技術 37
1.3.3 計算機可靠性 44
1.3.4 計算機系統的性能評價 47
第2章 程式語言基礎知識 51
2.1 程式語言概述 51
2.1.1 程式語言的基本概念 51
2.1.2 程式語言的基本成分 55
2.2 語言處理程式基礎 61
2.2.1 彙編程式基本原理 61
2.2.2 編譯程式基本原理 64
2.2.3 解釋程式基本原理 91
第3章 作業系統知識 94
3.1 作業系統基礎知識 94
3.1.1 作業系統的定義與作用 94
3.1.2 作業系統的特徵與功能 94
3.1.3 作業系統的類型 95
3.2 處理機管理 98
3.2.1 基本概念 98
3.2.2 進程的控制 102
3.2.3 進程間的通信 103
3.2.4 管程 107
3.2.5 進程調度 109
3.2.6 死鎖 111
3.2.7 執行緒 115
3.3 存儲管理 115
3.3.1 基本概念 116
3.3.2 存儲管理方案 117
3.3.3 分頁存儲管理 118
3.3.4 分段存儲管理 121
3.3.5 段頁式存儲管理 122
3.3.6 虛擬存儲管理 123
3.4 設備管理 128
3.4.1 設備管理概述 128
3.4.2 I/O軟體 129
3.4.3 設備管理採用的相關緩衝技術 130
3.4.4 磁碟調度 132
3.5 檔案管理 134
3.5.1 檔案與檔案系統 135
3.5.2 檔案的結構和組織 136
3.5.3 檔案目錄 137
3.5.4 存取方法和存儲空間的管理 139
3.5.5 檔案的使用 141
3.5.6 檔案的共享和保護 141
3.5.7 系統的安全與可靠性 143
3.6 作業管理 145
3.6.1 作業與作業控制 145
3.6.2 作業調度 146
3.6.3 用戶界面 147
3.7 網路與嵌入式作業系統基礎知識 148
3.7.1 網路作業系統 148
3.7.2 嵌入式作業系統 149
3.8 UNIX作業系統實例 150
3.8.1 UNIX作業系統 150
3.8.2 UNIX檔案系統 150
3.8.3 UNIX進程與存儲管理 152
3.8.4 UNIX設備管理 152
3.8.5 shell程式 154
第4章 系統開發和運行知識 159
4.1 軟體工程基礎知識 159
4.1.1 軟體工程概述 159
4.1.2 軟體需求分析 163
4.1.3 軟體項目管理 165
4.1.4 軟體配置管理 170
4.1.5 軟體工具與軟體開發環境 172
4.1.6 軟體過程管理 175
4.1.7 軟體質量管理與質量保證 179
4.2 系統分析基礎知識 188
4.2.1 系統分析概述 188
4.2.2 結構化分析方法 189
4.2.3 系統分析報告 195
4.3 系統設計知識 196
4.3.1 系統設計的內容和步驟 196
4.3.2 系統設計的基本原理 198
4.3.3 系統總體結構設計 200
4.3.4 結構化設計方法 204
4.3.5 面向數據結構的設計方法 206
4.3.6 系統詳細設計 207
4.4 系統實施知識 212
4.4.1 系統實施概述 212
4.4.2 程式設計 213
4.4.3 系統測試與調試 216
4.4.4 測試策略和測試方法 217
4.4.5 調試 224
4.4.6 系統文檔 225
4.4.7 系統轉換 226
4.5 系統運行和維護知識 227
4.5.1 系統維護概述 227
4.5.2 系統評價 231
第5章 網路基礎知識 233
5.1 網路概述 233
5.1.1 計算機網路的概念 233
5.1.2 計算機網路的分類 236
5.1.3 網路的拓撲結構 237
5.2 ISO/OSI網路體系結構 239
5.3 網路互連硬體 242
5.3.1 網路的設備 242
5.3.2 網路的傳輸介質 245
5.3.3 組建網路 247
5.4 網路的協定與標準 250
5.4.1 網路的標準 250
5.4.2 區域網路協定 252
5.4.3 廣域網協定 256
5.4.4 TCP/IP協定簇 260
5.5 Internet及套用 266
5.5.1 Internet概述 266
5.5.2 Internet地址 267
5.5.3 Internet服務 275
5.6 網路安全 280
5.6.1 網路安全概述 281
5.6.2 網路的信息安全 282
5.6.3 防火牆技術 287
第6章 多媒體基礎知識 293
6.1 多媒體的基本概念 293
6.1.1 多媒體基本概念 293
6.1.2 虛擬現實基本概念 295
6.2 聲音 296
6.2.1 基本概念 296
6.2.2 聲音檔案格式 302
6.3 圖形和圖像 303
6.3.1 基礎知識 303
6.3.2 圖形、圖像檔案格式 310
6.4 動畫和視頻 312
6.4.1 基礎知識 312
6.4.2 視頻檔案格式 319
6.5 多媒體網路 321
6.5.1 超文本與超媒體 321
6.5.2 流媒體 322
6.6 多媒體計算機系統 324
6.6.1 多媒體計算機硬體系統 325
6.6.2 多媒體計算機軟體系統 326
第7章 資料庫技術基礎 329
7.1 基本概念 329
7.1.1 資料庫與資料庫管理系統 329
7.1.2 DBMS的功能 330
7.1.3 DBMS的特徵及分類 331
7.1.4 資料庫系統的體系結構 332
7.1.5 資料庫的三級模式結構 335
7.2 數據模型 337
7.2.1 數據模型的基本概念 337
7.2.2 數據模型的三要素 337
7.2.3 E-R模型 338
7.2.4 層次模型 344
7.2.5 網狀模型 346
7.2.6 關係模型 347
7.2.7 面向對象模型 348
7.3 關係代數 350
7.3.1 關係資料庫的基本概念 350
7.3.2 五種基本的關係代數運算 354
7.3.3 擴展的關係代數運算 357
7.4 關係資料庫SQL語言簡介 365
7.4.1 SQL資料庫體系結構 365
7.4.2 SQL的基本組成 366
7.4.3 SQL數據定義 367
7.4.4 SQL數據查詢 372
7.4.5 SQL數據更新 380
7.4.6 SQL訪問控制 381
7.4.7 嵌入式SQL 383
7.5 關係資料庫規範化 384
7.5.1 函式依賴 384
7.5.2 規範化 385
7.5.3 模式分解及分解應具有的特性 387
7.6 資料庫的控制功能 388
7.6.1 事務管理 388
7.6.2 資料庫的備份與恢復 388
7.6.3 並發控制 390
第8章 數據結構 393
8.1 線性結構 393
8.1.1 線性表 393
8.1.2 棧和佇列 398
8.1.3 串 402
8.2 數組、矩陣和廣義表 407
8.2.1 數組 407
8.2.2 矩陣 409
8.2.3 廣義表 410
8.3 樹 411
8.3.1 樹與二叉樹的定義 412
8.3.2 二叉樹的性質與存儲結構 413
8.3.3 二叉樹的遍歷 416
8.3.4 線索二叉樹 419
8.3.5 最優二叉樹 421
8.3.6 樹和森林 424
8.4 圖 427
8.4.1 圖的定義與存儲 428
8.4.2 圖的遍歷 432
8.4.3 生成樹及最小生成樹 434
8.4.4 拓撲排序和關鍵路徑 437
8.4.5 最短路徑 440
8.5 查找 442
8.5.1 查找的基本概念 442
8.5.2 靜態查找表的查找方法 443
8.5.3 動態查找表 447
8.5.4 哈希表 454
8.6 排序 458
8.6.1 排序的基本概念 458
8.6.2 簡單排序 459
8.6.3 希爾排序 461
8.6.4 快速排序 462
8.6.5 堆排序 463
8.6.6 歸併排序 465
8.6.7 基數排序 467
8.6.8 內部排序方法小結 467
8.6.9 外部排序 468
第9章 算法設計與分析 473
9.1 算法設計與分析的基本概念 473
9.1.1 算法 473
9.1.2 算法設計 473
9.1.3 算法分析 474
9.1.4 算法的表示 474
9.2 算法分析基礎 475
9.2.1 時間複雜性 475
9.2.2 漸進符號 476
9.2.3 遞歸式 477
9.3 分治法 479
9.3.1 遞歸的概念 479
9.3.2 分治法的基本思想 480
9.3.3 分治法的典型實例 480
9.4 動態規劃法 483
9.4.1 動態規劃法的基本思想 483
9.4.2 動態規劃法的典型實例 484
9.5 貪心法 489
9.5.1 貪心法的基本思想 489
9.5.2 貪心法的典型實例 489
9.6 回溯法 492
9.6.1 回溯法的算法框架 492
9.6.2 回溯法的典型實例 495
9.7 其他算法 499
9.7.1 分支限界法 499
9.7.2 機率算法 500
9.7.3 近似算法 501
第10章 面向對象技術 503
10.1 面向對象的基本概念 503
10.2 面向對象程式設計 506
10.2.1 面向對象程式設計語言 506
10.2.2 程式設計語言中的OOP機制 509
10.2.3 面向對象的程式 514
10.3 面向對象開發技術 517
10.3.1 面向對象分析 517
10.3.2 面向對象設計 519
10.3.3 面向對象測試 519
10.4 面向對象分析與設計方法 520
10.4.1 Peter Coad和Edward Yourdon
的OOA和OOD方法 520
10.4.2 Booch的OOD方法 522
10.4.3 OMT方法 522
10.4.4 UML概述 525
10.5 設計模式 534
10.5.1 設計模式的要素 534
10.5.2 創建型設計模式 535
10.5.3 結構型設計模式 536
10.5.4 行為設計模式 537
第11章 標準化和軟體智慧財產權基礎知識 541
11.1 標準化基礎知識 541
11.1.1 標準化的基本概念 541
11.1.2 信息技術標準化 549
11.1.3 標準化組織 551
11.1.4 ISO 9000標準簡介 555
11.1.5 ISO/IEC 15504過程評估
標準簡介 557
11.2 智慧財產權基礎知識 559
11.2.1 智慧財產權基本概念 559
11.2.2 計算機軟體著作權 563
11.2.3 計算機軟體的商業秘密權 574
11.2.4 專利權概述 576
11.2.5 企業智慧財產權的保護 581
第12章 軟體系統分析與設計 584
12.1 結構化分析與設計 584
12.1.1 需求說明 586
12.1.2 結構化分析 586
12.1.3 總體設計 588
12.1.4 詳細設計 589
12.2 資料庫分析與設計 590
12.2.1 資料庫設計的步驟 590
12.2.2 需求分析 590
12.2.3 概念結構設計 592
12.2.4 邏輯結構設計 595
12.2.5 資料庫的物理設計 597
12.2.6 資料庫實施與維護 600
12.2.7 案例分析 603
12.3 面向對象分析與設計 608
12.3.1 面向對象分析與設計的步驟 608
12.3.2 需求說明 609
12.3.3 建模用例 610
12.3.4 建模活動 611
12.3.5 設計類圖 613
12.3.6 建模對象狀態 613
12.3.7 建模序列圖 615
12.4 算法分析與設計 616
12.4.1 算法與軟體系統 616
12.4.2 算法設計過程 617
12.4.3 算法問題類型 620
12.4.4 典型實例 622
12.5 面向過程的程式設計與實現 627
12.5.1 指針類型 627
12.5.2 指針與數據結構 634
12.5.3 C語言實現面向對象設計思路 640
12.6 面向對象的程式設計與實現 643
12.6.1 設計與實現方法 643
12.6.2 設計模式的套用 644