全國計算機技術與軟件專業技術資格(水平)考試實施至今已經歷了二十餘年,在社會上產生了很大的影響,對我國軟件產業的造成和發展作出了重要的貢獻。爲了適應我國計算機信息技術發展的需求,人力資源和社會保障部、工業和信息化部決定將考試的級別拓展到計算機信息技術行業的各個方面,以知足社會上對各類計算機信息技術人才的須要。算法
編者受全國計算機專業技術資格考試辦公室委託,對《軟件設計師教程(第4版)》進行改寫,以適應新的考試大綱要求。在考試大綱中,要求考生掌握的知識面很廣,每一個章節的內容都能構成相關領域的一門甚至多門課程,所以編寫的難度很高。考慮到參加考試的人員已有必定的基礎,因此本書中只對考試大綱中所涉及的知識領域的要點加以闡述,但限於篇幅所限,不能詳細地展開,請讀者諒解。數據庫
全書共分12章,各章節內容安排以下:編程
第1章主要介紹計算機系統基礎知識、計算機體系結構以及安全性、可靠性和系統性能評測基礎。設計模式
第2章主要介紹程序設計語言的基本概念與基本成分,闡述了彙編程序、編譯程序與解釋程序的基本原理。數組
第3章主要介紹數據結構的基礎知識,包括線性結構、數組、廣義表、樹和圖,以及查找和排序的基本算法。安全
第4章主要介紹操做系統基本概念與分類及特色、進程管理、存儲管理、設備管理、文件管理、做業管理等。網絡
第5章主要介紹軟件工程中軟件過程與過程模型、需求分析與需求工程、系統設計、系統測試、系統運行與維護、軟件項目管理、軟件質量、軟件度量、軟件工具與軟件開發環境基礎知識。數據結構
第6章主要介紹系統分析與設計、結構化分析與設計、Web應用系統分析與設計、用戶界面設計基礎知識。併發
第7章主要介紹面向對象的基本概念和麪向對象開發技術,包括面向對象的分析與設計方法,UML以及設計模式的概念和應用。框架
第8章主要介紹算法設計與分析的基本概念,包括分治法、動態規劃法、貪心法、回溯法、分支界限法、機率算法、近似算法、數據挖掘算法及智能優化算法。
第9章主要介紹數據庫的基本概念、數據模型、關係代數、SQL語言、規範化理論和事務處理等控制功能。
第10章主要介紹網絡與信息安全基礎知識,包括網絡體系結構、網絡互連設備、網絡構件、網絡協議、網絡應用、信息安全和網絡安全方面的基礎知識。
第11章主要介紹標準化與知識產權基礎知識。
第12章主要介紹結構化分析與設計、數據庫分析與設計、面向對象分析與設計、算法分析與設計以及面向過程、面向對象的程序設計與實現。
本書第1章由張淑平、馬志欣編寫,第2章由張淑平編寫,第3章由張淑平、陳靜玉、宋勝利編寫,第4章由王亞平編寫,第5章、第6章、第7章由霍秋豔、褚華編寫,第8章由覃桂敏、褚華編寫,第9章由王亞平編寫,第10章由嚴體華編寫,第11章由劉強編寫,第12章由王亞平、褚華、霍秋豔、覃桂敏、張淑平編寫,最後由霍秋豔、褚華統稿。
在本書的編寫過程當中,參考了許多相關的書籍和資料,編者在此對這些參考文獻的做者表示感謝。同時感謝清華大學出版社在本書出版過程當中所給予的支持和幫助。
因水平有限,書中不免存在欠妥之處,望讀者指正,以利改進和提升。
編 者
2018年1月
第1章 計算機網絡概論 1
1.1 計算機系統基礎知識 1
1.1.1 計算機系統硬件基本組成 1
1.1.2 中央處理單元 1
1.1.3 數據表示 4
1.1.4 校驗碼 10
1.2 計算機體系結構 12
1.2.1 計算機體系結構的發展 12
1.2.2 存儲系統 20
1.2.3 輸入/輸出技術 31
1.2.4 總線結構 35
1.3 安全性、可靠性與系統性能評測基礎知識 38
1.3.1 計算機安全概述 38
1.3.2 加密技術和認證技術 40
1.3.3 計算機可靠性 48
1.3.4 計算機系統的性能評價 51
第2章 程序設計語言基礎知識 56
2.1 程序設計語言概述 56
2.1.1 程序設計語言的基本概念 56
2.1.2 程序設計語言的基本成分 61
2.2 語言處理程序基礎 67
2.2.1 彙編程序基本原理 67
2.2.2 編譯程序基本原理 69
2.2.3 解釋程序基本原理 96
第3章 數據結構 99
3.1 線性結構 99
3.1.1 線性表 99
3.1.2 棧和隊列 104
3.1.3 串 108
3.2 數組、矩陣和廣義表 113
3.2.1 數組 113
3.2.2 矩陣 115
3.2.3 廣義表 116
3.3 樹 118
3.3.1 樹與二叉樹的定義 118
3.3.2 二叉樹的性質與存儲結構 119
3.3.3 二叉樹的遍歷 122
3.3.4 線索二叉樹 125
3.3.5 最優二叉樹 126
3.3.6 樹和森林 130
3.4 圖 133
3.4.1 圖的定義與存儲 134
3.4.2 圖的遍歷 138
3.4.3 生成樹及最小生成樹 140
3.4.4 拓撲排序和關鍵路徑 143
3.4.5 最短路徑 146
3.5 查找 149
3.5.1 查找的基本概念 149
3.5.2 靜態查找表的查找方法 150
3.5.3 動態查找表 154
3.5.4 哈希表 161
3.6 排序 165
3.6.1 排序的基本概念 165
3.6.2 簡單排序 165
3.6.3 希爾排序 168
3.6.4 快速排序 169
3.6.5 堆排序 170
3.6.6 歸併排序 173
3.6.7 基數排序 174
3.6.8 內部排序方法小結 175
3.6.9 外部排序 176
第4章 操做系統知識 180
4.1 操做系統概述 180
4.1.1 操做系統的基本概念 180
4.1.2 操做系統分類及特色 181
4.1.3 操做系統的發展 185
4.2 進程管理 185
4.2.1 基本概念 185
4.2.2 進程的控制 189
4.2.3 進程間的通訊 189
4.2.4 管程 193
4.2.5 進程調度 195
4.2.6 死鎖 198
4.2.7 線程 202
4.3 存儲管理 202
4.3.1 基本概念 203
4.3.2 存儲管理方案 204
4.3.3 分頁存儲管理 205
4.3.4 分段存儲管理 208
4.3.5 段頁式存儲管理 209
4.3.6 虛擬存儲管理 211
4.4 設備管理 216
4.4.1 設備管理概述 216
4.4.2 I/O軟件 217
4.4.3 設備管理採用的相關技術 218
4.4.4 磁盤調度 221
4.5 文件管理 224
4.5.1 文件與文件系統 224
4.5.2 文件的結構和組織 225
4.5.3 文件目錄 227
4.5.4 存取方法和存儲空間的管理 229
4.5.5 文件的使用 231
4.5.6 文件的共享和保護 231
4.5.7 系統的安全與可靠性 233
4.6 做業管理 234
4.6.1 做業與做業控制 235
4.6.2 做業調度 236
4.6.3 用戶界面 238
第5章 軟件工程基礎知識 239
5.1 軟件工程概述 239
5.1.1 計算機軟件 240
5.1.2 軟件工程基本原理 241
5.1.3 軟件生存週期 243
5.1.4 軟件過程 245
5.2 軟件過程模型 247
5.2.1 瀑布模型(Waterfall Model) 248
5.2.2 增量模型(Incremental Model) 249
5.2.3 演化模型(Evolutionary Model) 250
5.2.4 噴泉模型(Water Fountain Model) 252
5.2.5 基於構件的開發模型(Component-based Development Model) 252
5.2.6 形式化方法模型(Formal Methods Model) 253
5.2.7 統一過程(UP)模型 253
5.2.8 敏捷方法(Agile Development) 254
5.3 需求分析 256
5.3.1 軟件需求 256
5.3.2 需求分析原則 257
5.3.3 需求工程 257
5.4 系統設計 260
5.4.1 概要設計 261
5.4.2 詳細設計 262
5.5 系統測試 262
5.5.1 系統測試與調試 262
5.5.2 傳統軟件的測試策略 264
5.5.3 測試面向對象軟件 271
5.5.4 測試Web應用 272
5.5.5 測試方法 273
5.5.6 調試 276
5.6 運行和維護知識 278
5.6.1 系統轉換 278
5.6.2 系統維護概述 279
5.6.3 系統評價 283
5.7 軟件項目管理 284
5.7.1 軟件項目管理涉及的範圍 284
5.7.2 軟件項目估算 287
5.7.3 進度管理 289
5.7.4 軟件項目的組織 292
5.7.5 軟件配置管理 294
5.7.6 風險管理 296
5.8 軟件質量 300
5.8.1 軟件質量特性 300
5.8.2 軟件質量保證 302
5.8.3 軟件評審 304
5.8.4 軟件容錯技術 306
5.9 軟件度量 307
5.9.1 軟件度量分類 307
5.9.2 軟件複雜性度量 309
5.10 軟件工具與軟件開發環境 311
5.10.1 軟件工具 311
5.10.2 軟件開發環境 313
第6章 結構化開發方法 315
6.1 系統分析與設計概述 315
6.1.1 系統分析概述 315
6.1.2 系統設計的基本原理 317
6.1.3 系統整體結構設計 319
6.1.4 系統文檔 323
6.2 結構化分析方法 325
6.2.1 結構化分析方法概述 325
6.2.2 數據流圖 325
6.2.3 數據字典(DD) 335
6.3 結構化設計方法 337
6.3.1 結構化設計的步驟 337
6.3.2 數據流圖到軟件體系結構的
映射 338
6.4 WebApp分析與設計 340
6.4.1 WebApp的特性 341
6.4.2 WebApp需求模型 341
6.4.3 WebApp設計 344
6.5 用戶界面設計 346
6.5.1 用戶界面設計的黃金原則 346
6.5.2 用戶界面的分析與設計 348
6.5.3 用戶界面設計問題 349
第7章 面向對象技術 351
7.1 面向對象基礎 351
7.1.1 面向對象的基本概念 351
7.1.2 面向對象分析 354
7.1.3 面向對象設計 355
7.1.4 面向對象程序設計 357
7.1.5 面向對象測試 362
7.2 UML 363
7.2.1 事物 364
7.2.2 關係 365
7.2.3 UML中的圖 366
7.3 設計模式 378
7.3.1 設計模式的要素 378
7.3.2 建立型設計模式 379
7.3.3 結構型設計模式 384
7.3.4 行爲設計模式 394
7.3.5 應用舉例 407
第8章 算法設計與分析 416
8.1 算法設計與分析的基本概念 416
8.1.1 算法 416
8.1.2 算法設計 416
8.1.3 算法分析 417
8.1.4 算法的表示 417
8.2 算法分析基礎 417
8.2.1 時間複雜度 417
8.2.2 漸進符號 418
8.2.3 遞歸式 419
8.3 分治法 422
8.3.1 遞歸的概念 422
8.3.2 分治法的基本思想 423
8.3.3 分治法的典型實例 423
8.4 動態規劃法 427
8.4.1 動態規劃法的基本思想 427
8.4.2 動態規劃法的典型實例 428
8.5 貪心法 433
8.5.1 貪心法的基本思想 433
8.5.2 貪心法的典型實例 434
8.6 回溯法 437
8.6.1 回溯法的算法框架 437
8.6.2 回溯法的典型實例 440
8.7 分支限界法 445
8.8 機率算法 446
8.9 近似算法 448
8.10 數據挖掘算法 448
8.11 智能優化算法 450
第9章 數據庫技術基礎 455
9.1 基本概念 455
9.1.1 數據庫與數據庫系統 455
9.1.2 數據庫管理系統的功能 456
9.1.3 數據庫管理系統的特徵及分類 457
9.1.4 數據庫系統的體系結構 458
9.1.5 數據庫的三級模式結構 461
9.1.6 大數據 463
9.2 數據模型 466
9.2.1 基本概念 466
9.2.2 數據模型的三要素 466
9.2.3 E-R模型 466
9.2.4 數據模型 472
9.2.5 關係模型 473
9.3 關係代數 474
9.3.1 關係數據庫的基本概念 474
9.3.2 5種基本的關係代數運算 478
9.3.3 擴展的關係代數運算 481
9.4 關係數據庫SQL語言簡介 489
9.4.1 SQL數據庫體系結構 490
9.4.2 SQL的基本組成 490
9.4.3 SQL數據定義 491
9.4.4 SQL數據查詢 496
9.4.5 SQL數據更新 504
9.4.6 SQL訪問控制 505
9.4.7 嵌入式SQL 507
9.5 關係數據庫的規範化 508
9.5.1 函數依賴 508
9.5.2 規範化 509
9.5.3 模式分解及分解應具備的特性 511
9.6 數據庫的控制功能 512
9.6.1 事務管理 512
9.6.2 數據庫的備份與恢復 513
9.6.3 併發控制 514
第10章 網絡與信息安全基礎知識 517
10.1 網絡概述 517
10.1.1 計算機網絡的概念 517
10.1.2 計算機網絡的分類 520
10.1.3 網絡的拓撲結構 521
10.1.4 ISO/OSI網絡體系結構 523
10.2 網絡互連硬件 526
10.2.1 網絡的設備 526
10.2.2 網絡的傳輸介質 529
10.2.3 組建網絡 531
10.3 網絡的協議與標準 534
10.3.1 網絡的標準 534
10.3.2 局域網協議 536
10.3.3 廣域網協議 541
10.3.4 TCP/IP協議族 544
10.4 Internet及應用 549
10.4.1 Internet概述 550
10.4.2 Internet地址 550
10.4.3 Internet服務 558
10.5 信息安全基礎知識 564
10.6 網絡安全概述 568
第11章 標準化和軟件知識產權基礎知識 573
11.1 標準化基礎知識 573
11.1.1 基本概念 573
11.1.2 信息技術標準化 579
11.1.3 標準化組織 581
11.1.4 ISO 9000標準簡介 584
11.1.5 ISO/IEC 15504過程評估標準簡介 587
11.2 知識產權基礎知識 588
11.2.1 基本概念 589
11.2.2 計算機軟件著做權 592
11.2.3 計算機軟件的商業祕密權 603
11.2.4 專利權概述 605
11.2.5 企業知識產權的保護 610
第12章 軟件系統分析與設計 612
12.1 結構化分析與設計 612
12.1.1 需求說明 614
12.1.2 結構化分析 614
12.1.3 整體設計 616
12.1.4 詳細設計 617
12.2 數據庫分析與設計 618
12.2.1 數據庫設計的策略與步驟 618
12.2.2 需求分析 619
12.2.3 概念結構設計 621
12.2.4 邏輯結構設計 623
12.2.5 數據庫的物理設計 625
12.2.6 數據庫的實施與維護 628
12.2.7 案例分析 631
12.3 面向對象分析與設計 635
12.3.1 面向對象分析與設計的步驟 636
12.3.2 需求說明 637
12.3.3 建模用例 637
12.3.4 建模活動 638
12.3.5 設計類圖 640
12.3.6 建模對象狀態 642
12.3.7 建模交互 643
12.4 算法分析與設計 645
12.4.1 C程序設計語言與實現 646
12.4.2 算法設計與實現 659
12.5 面向對象的程序設計與實現 672
12.5.1 設計與實現方法 672
12.5.2 設計模式的應用 672
引用: http://www.ruankao.org.cn/book/bookdetails?id=100000180628120744920839