圖書簡介
本書由全國計算機專業技術資格考試辦公室組織編寫,是系統分析師考試的指定教材。本書圍繞系統分析師的工作職責和任務而展開,對系統分析師所必須掌握的理論基礎和套用技術做了詳細的介紹,重在培養系統分析師所必須具備的專業技能。
本書內容既符合系統分析師考試總體綱領性的要求,也是系統分析師職業生涯所必需的知識與技能體系。準備參加考試的人員可通過閱讀本書掌握考試大綱規定的知識,把握考試重點和難點。
本書可作為系統分析師的工作手冊,也可作為系統分析與設計技術的培訓和輔導教材,還可以作為計算機專業教師的教學參考用書。
前 言
在信息系統建設中,系統分析師起著十分重要的作用。系統分析師是用戶和開發人員之間的橋樑,並為管理人員提供控制開發的手段。系統分析師的知識水平和工作能力直接決定了信息系統建設的成敗。一名合格的系統分析師不但應具備堅實的信息技術知識,掌握計算機技術的發展方向,而且還必須具備管理科學的知識;不但要具備較強的系統觀點和邏輯分析能力,能夠從複雜的事物中抽象出系統模型,而且還要具備較好的口頭和書面表達能力,較強的組織能力,善於與人共事;不但要具備紮實的理論基礎,還要具備豐富的項目實踐經驗。
通過全國計算機技術與軟體專業技術資格(水平)考試,廣泛調動了專業技術人員工作和學習的積極性,為選拔高素質的專業技術人員起到了積極的促進和推動作用。為了培養更多的系統分析與設計專業人才,幫助廣大考生順利通過系統分析師考試,全國計算機專業技術資格考試辦公室組織有關專家,在清華大學出版社的大力支持下,編寫和出版了本書,作為系統分析師考試的指定教材。
本書圍繞系統分析師的工作職責和任務而展開,對系統分析師所必須掌握的理論基礎和套用技術做了詳盡的介紹,重在培養系統分析師所必須具備的專業技能和分析方法。本書內容既是對系統分析師考試的總體綱領性的要求,也是系統分析師職業生涯所必需的知識與技能體系。準備參加考試的人員可通過閱讀本書掌握考試大綱規定的知識,把握考試重點和難點。
本書由全國計算機專業技術資格考試辦公室組織編寫,由張友生主編。全書共分為20章。第1章由劉興編寫,第2、6、7、9~12、19、20章由張友生編寫,第3章由鍾經偉編寫,第4章由胡釗源編寫,第5章由王勇編寫,第8章由劉現軍編寫,第13章由劉偉編寫,第14章由殷建民編寫,第15章由施游編寫,第16章由戎檄、陳世帝、施游、黃建新、尹晶海、黃少華編寫,第17章由高新岩編寫,第18章由桂陽編寫,陳建忠參與了19.1節的編寫工作。
本書參考和引用了許多高水平的資料和書籍(詳見參考文獻列表),在此,編者對這些參考文獻的作者表示真誠的感謝。
特別要感謝吳小軍、楊紅蕾、方海光、徐鋒、溫昱、漆英、馬映冰、田俊國、李炳森和劉寅虓等顧問,在本書的寫作過程中,編者就有關技術和實踐問題曾多次與他們進行討論,得到了顧問們的無私幫助。而且,編者還就某些章節的內容,請一些顧問進行了審核和修改。
感謝全國計算機專業技術資格考試辦公室的譚志彬老師,他在本書的策劃、寫作大綱的確定、寫作內容的審核等方面做了大量的工作;感謝清華大學出版社的老師們,他們在本書的編輯和出版等方面,付出了辛勤的勞動和智慧,給予了編者很多的支持和 幫助。
由於編者水平有限,且本書涉及的知識點較多,書中肯定有不妥和錯誤之處。編者誠懇地期望各位專家和讀者不吝指教和幫助,對此,編者將深為感激。
張友生
2009年8月
II
系統分析師教程
___________________________________________
目 錄
第1章 緒論 1
1.1 信息與信息系統 1
1.1.1 信息的基本概念 1
1.1.2 系統及相關理論 3
1.1.3 系統工程方法論 6
1.1.4 信息系統工程 9
1.2 系統分析師 10
1.2.1 系統分析師的角色定位 11
1.2.2 系統分析師的任務 13
1.2.3 系統分析師的知識體系 15
第2章 經濟管理與套用數學 19
2.1 會計常識 19
2.2 會計報表 21
2.2.1 資產負債表 21
2.2.2 利潤表與利潤分配表 22
2.3 現代企業組織結構 23
2.3.1 企業組織結構模式 23
2.3.2 企業組織結構設計 26
2.4 業績評價 27
2.4.1 成本中心的業績評價 27
2.4.2 利潤中心的業績評價 28
2.4.3 投資中心的業績評價 29
2.5 企業文化管理 30
2.5.1 企業文化的內容 31
2.5.2 企業文化管理的作用 32
2.6 IT審計相關常識 33
2.6.1 IT審計概述 33
2.6.2 IT審計程式 35
2.6.3 IT審計的方法與工具 37
2.6.4 IT審計的重點環節 38
2.7 機率統計套用 39
2.7.1 古典機率套用 39
2.7.2 隨機變數及其分布 43
2.7.3 隨機變數的數字特徵 44
2.7.4 常用分布 46
2.7.5 常用統計分析方法 49
2.8 圖論套用 53
2.8.1 最小生成樹 53
2.8.2 最短路徑 55
2.8.3 網路與最大流量 57
2.9 組合分析 60
2.9.1 排列和組合 61
2.9.2 抽屜原理和容斥原理 63
2.10 算法的選擇與套用 65
2.10.1 非數值算法 65
2.10.2 數值算法 68
2.11 運籌方法 73
2.11.1 網路計畫技術 73
2.11.2 線性規劃 79
2.11.3 決策論 82
2.11.4 對策論 87
2.11.5 排隊論 90
2.11.6 存貯論 93
2.12 數學建模 95
第3章 作業系統基本原理 97
3.1 作業系統概述 97
3.1.1 作業系統的類型 98
3.1.2 作業系統的結構 99
3.2 進程管理 101
3.2.1 進程的狀態 101
3.2.2 信號量與PV操作 103
3.2.3 死鎖問題 105
3.2.4 執行緒管理 108
3.3 記憶體管理 111
3.3.1 地址變換 111
3.3.2 分區存儲管理 112
3.3.3 段頁式存儲管理 114
3.3.4 虛擬存儲管理 116
3.4 檔案系統 119
3.4.1 檔案的組織結構 119
3.4.2 存儲空間管理 121
3.4.3 分散式檔案系統 122
第4章 數據通信與計算機網路 124
4.1 數據通信基礎知識 124
4.1.1 信道特性 124
4.1.2 數據傳輸技術 127
4.1.3 數據編碼與調製 128
4.2 網路體系結構與協定 131
4.2.1 網路互聯模型 131
4.2.2 常見的網路協定 133
4.2.3 網路地址與分配 135
4.3 區域網路與廣域網 138
4.3.1 區域網路基礎知識 138
4.3.2 乙太網技術 139
4.3.3 無線區域網路 141
4.3.4 廣域網技術 143
4.3.5 網路接入技術 145
4.4 網路互連與常用設備 147
4.5 網路工程 149
4.5.1 網路規劃 149
4.5.2 網路設計 151
4.5.3 網路實施 153
第5章 資料庫系統 154
5.1 資料庫模式 154
5.2 數據模型 156
5.2.1 數據模型的分類 156
5.2.2 關係模型 157
5.2.3 規範化理論 160
5.3 資料庫訪問接口 164
5.4 資料庫的控制功能 165
5.4.1 並發控制 165
5.4.2 資料庫性能最佳化 168
5.4.3 資料庫的完整性 170
5.4.4 資料庫的安全性 172
5.4.5 備份與恢復技術 174
5.4.6 數據中心的建設 177
5.5 資料庫設計與建模 178
5.5.1 資料庫設計階段 179
5.5.2 實體聯繫模型 180
5.6 分散式資料庫系統 183
5.6.1 分散式資料庫概述 183
5.6.2 數據分片 185
5.6.3 分散式資料庫查詢最佳化 186
5.7 數據倉庫技術 190
5.7.1 在線上分析處理 190
5.7.2 數據倉庫概述 192
5.7.3 數據倉庫的設計方法 194
5.8 數據挖掘技術 195
5.8.1 數據挖掘概述 195
5.8.2 常用技術與方法 197
5.8.3 數據挖掘技術的套用 200
第6章 系統配置與性能評價 202
6.1 計算機系統層次結構 202
6.1.1 計算機硬體的組成 202
6.1.2 計算機軟體的分類 204
6.1.3 計算機系統結構的分類 205
6.2 存儲器系統 207
6.2.1 主存儲器 208
6.2.2 輔助存儲器 209
6.2.3 Cache存儲器 213
6.2.4 網路存儲技術 217
6.2.5 虛擬存儲技術 220
6.3 輸入輸出系統 222
6.3.1 輸入輸出方式 222
6.3.2 匯流排 225
6.3.3 接口 227
6.4 指令系統 230
6.4.1 基本指令系統 230
6.4.2 複雜指令系統 232
6.4.3 精簡指令系統 233
6.5 流水線技術 236
6.5.1 流水線工作原理 236
6.5.2 流水線的性能分析 238
6.5.3 局部相關與全局相關 241
6.6 多處理機系統 244
6.6.1 多處理機系統概述 244
6.6.2 海量並行處理結構 246
6.6.3 對稱多處理機結構 247
6.6.4 互連網路 248
6.7 系統性能設計 250
6.7.1 系統性能指標 251
6.7.2 系統性能調整 253
6.8 系統性能評估 256
6.8.1 評估方法體系 256
6.8.2 經典評估方法 257
6.8.3 基準程式法 259
第7章 企業信息化戰略與實施 262
7.1 企業信息化概述 262
7.2 企業信息化規劃 264
7.2.1 信息化規劃的內容 264
7.2.2 信息化規劃與企業戰略規劃 266
7.3 信息系統開發方法 268
7.3.1 結構化方法 268
7.3.2 面向對象方法 270
7.3.3 面向服務方法 274
7.3.4 原型化方法 277
7.4 信息系統戰略規劃方法 279
7.4.1 企業系統規劃法 279
7.4.2 關鍵成功因素法 285
7.4.3 戰略集合轉化法 286
7.4.4 戰略數據規劃法 287
7.4.5 信息工程方法 290
7.4.6 戰略柵格法 292
7.4.7 價值鏈分析法 293
7.4.8 戰略一致性模型 294
7.5 企業資源規劃和實施 296
7.5.1 ERP概述 296
7.5.2 ERP的開發方法 298
7.5.3 ERP的實施 300
7.6 信息資源管理 302
7.6.1 信息資源管理概述 302
7.6.2 規範與標準 304
7.6.3 信息資源規劃 306
7.6.4 信息資源網建設 307
7.7 企業信息系統 309
7.7.1 客戶關係管理 309
7.7.2 供應鏈管理 311
7.7.3 產品數據管理 313
7.7.4 產品生命周期管理 315
7.7.5 知識管理 316
7.7.6 商業智慧型 318
7.7.7 企業門戶 319
7.7.8 電子商務 321
7.7.9 決策支持系統 323
7.8 電子政務 325
7.8.1 政府職能 325
7.8.2 電子政務的模式 327
7.8.3 電子政務的實施 328
7.9 業務流程重組 331
7.9.1 BPR概述 331
7.9.2 BPR的實施 332
7.9.3 基於BPR的信息系統規劃 334
7.10 企業套用集成 335
7.10.1 傳統企業套用集成 335
7.10.2 事件驅動的企業套用集成 338
7.11 首席信息官 340
第8章 軟體工程 342
8.1 軟體生命周期 342
8.2 軟體開發方法 345
8.2.1 形式化方法 345
8.2.2 逆向工程 347
8.3 軟體開發模型 348
8.3.1 軟體開發模型概述 348
8.3.2 快速套用開發 351
8.3.3 統一過程 352
8.3.4 敏捷方法 355
8.4 軟體開發環境與工具 357
8.4.1 軟體開發環境 357
8.4.2 軟體開發工具 359
8.5 軟體過程管理 360
8.5.1 軟體能力成熟度模型 360
8.5.2 軟體過程評估 363
第9章 系統規劃 366
9.1 系統規劃概述 366
9.2 項目的提出與選擇 368
9.2.1 項目的立項目標和動機 368
9.2.2 項目立項的價值判斷 369
9.2.3 項目的選擇和確定 370
9.3 初步調查 372
9.4 可行性研究 373
9.4.1 可行性評價準則 374
9.4.2 可行性研究的步驟 376
9.4.3 可行性研究報告 377
9.5 成本效益分析技術 379
9.5.1 成本和收益 379
9.5.2 淨現值分析 382
9.5.3 投資回收期與投資回報率 385
9.6 系統方案 386
9.6.1 候選方案的可行性評價 386
9.6.2 系統建議方案報告 388
第10章 系統分析 389
10.1 系統分析概述 389
10.2 詳細調查 390
10.2.1 詳細調查的原則 391
10.2.2 詳細調查的內容 392
10.2.3 詳細調查的方法 393
10.3 現有系統分析 395
10.4 組織結構分析 396
10.4.1 組織結構圖 396
10.4.2 組織結構調查 397
10.5 系統功能分析 398
10.6 業務流程分析 399
10.6.1 業務流程分析概述 400
10.6.2 業務流程圖 401
10.6.3 業務活動圖示 403
10.6.4 業務流程建模 405
10.7 數據與數據流程分析 412
10.7.1 數據匯總分析 412
10.7.2 數據屬性分析 412
10.7.3 數據流程分析 414
10.8 系統需求規格說明 414
第11章 軟體需求工程 417
11.1 軟體需求概述 417
11.2 需求獲取 418
11.2.1 用戶訪談 419
11.2.2 問卷調查 420
11.2.3 採樣 422
11.2.4 情節串聯板 423
11.2.5 聯合需求計畫 425
11.2.6 需求記錄技術 426
11.3 需求分析 429
11.3.1 需求分析的任務 429
11.3.2 需求分析的方法 430
11.4 結構化分析方法 431
11.4.1 數據流圖 432
11.4.2 狀態轉換圖 434
11.4.3 數據字典 435
11.5 面向對象分析方法 437
11.5.1 統一建模語言 437
11.5.2 用例模型 440
11.5.3 分析模型 447
11.6 需求定義 451
11.6.1 需求定義的方法 451
11.6.2 軟體需求規格說明書 453
11.7 需求驗證 454
11.7.1 需求評審 454
11.7.2 需求測試 457
11.8 需求管理 459
11.8.1 需求變更管理 459
11.8.3 需求風險管理 461
11.8.4 需求跟蹤 463
第12章 軟體架構設計 466
12.1 構件與軟體復用 466
12.1.1 主流構件標準 467
12.1.2 構件獲取與管理 469
12.1.3 構件復用的方法 470
12.2 軟體架構概述 472
12.3 軟體架構建模 475
12.4 軟體架構風格 477
12.4.1 經典架構風格 477
12.4.2 層次架構風格 479
12.4.3 富網際網路套用 484
12.5 面向服務的架構 487
12.5.1 SOA概述 487
12.5.2 SOA的關鍵技術 489
12.5.3 SOA的實現方法 491
12.6 軟體架構評估 495
12.6.1 架構評估概述 495
12.6.2 ATAM評估方法 497
12.6.3 SAAM評估方法 499
12.7 軟體產品線 501
12.7.1 產品線的過程模型 501
12.7.2 產品線的建立方式 504
第13章 系統設計 507
13.1 系統設計概述 507
13.2 處理流程設計 510
13.2.1 流程設計概述 510
13.2.2 工作流管理系統 512
13.2.3 流程設計工具 514
13.3 結構化設計 519
13.3.1 模組結構 519
13.3.2 系統結構圖 523
13.4 面向對象設計 527
13.4.1 設計軟體類 527
13.4.2 對象持久化與資料庫 528
13.4.3 面向對象設計的原則 529
13.5 設計模式 532
13.5.1 設計模式概述 533
13.5.2 設計模式分類 534
第14章 系統實現與測試 538
14.1 系統實現概述 538
14.1.1 程式設計方法 538
14.1.2 程式設計語言與風格 539
14.2 軟體測試概述 540
14.2.1 測試自動化 541
14.2.2 軟體調試 543
14.3 軟體測試方法 544
14.3.1 靜態測試 544
14.3.2 白盒測試 546
14.3.3 黑盒測試 548
14.4 測試的類型 551
14.4.1 單元測試 551
14.4.2 集成測試 553
14.4.3 系統測試 555
14.4.4 其他測試類型 556
14.5 面向對象系統的測試 557
14.5.1 面向對象系統的測試策略 557
14.5.2 面向對象系統的單元測試 559
14.5.3 面向對象系統的集成測試 559
14.6 軟體測試的組織 561
第15章 系統運行與維護 564
15.1 遺留系統的處理策略 564
15.1.1 評價方法 564
15.1.2 演化策略 567
15.2 系統轉換與交接 568
15.2.1 新舊系統的轉換策略 568
15.2.2 數據轉換和遷移 570
15.3 系統的擴展和集成 573
15.4 系統運行管理 574
15.4.1 系統成本管理 574
15.4.2 系統用戶管理 575
15.4.3 網路資源管理 577
15.4.4 軟體資源管理 578
15.5 系統故障管理 579
15.5.1 故障監視 579
15.5.2 故障調查 580
15.5.3 故障支持和恢復處理 581
15.6 軟體維護 582
15.6.1 軟體維護概述 582
15.6.2 軟體維護的影響因素 583
15.6.3 軟體維護成本 585
15.6.4 軟體維護管理 586
15.8 系統監理與評價 588
15.8.1 工程監理 589
15.8.2 系統評價 590
第16章 新技術套用 592
16.1 中間件技術 592
16.1.1 中間件概述 592
16.1.2 主要的中間件 595
16.1.3 中間件與構件的關係 599
16.2 J2EE與.NET平台 600
16.2.1 J2EE核心技術 601
16.2.2 Java企業套用框架 603
16.2.3 .NET平台概述 606
16.2.4 比較分析 607
16.3 虛擬計算 610
16.3.1 P2P計算 610
16.3.2 雲計算 616
16.3.3 軟體即服務 618
16.3.4 格線計算 621
16.3.5 普適計算 623
16.4 片上系統 625
16.4.1 SoC設計 626
16.4.2 SoC驗證 628
16.5 多核技術 630
16.5.1 多核與多執行緒 630
16.5.2 多核編程 631
16.6 面向方面的編程 632
16.6.1 AOP概述 632
16.6.2 AOP關鍵技術 635
第17章 嵌入式系統分析與設計 638
17.1 嵌入式系統概述 638
17.2 嵌入式資料庫系統 640
17.3 嵌入式實時作業系統 643
17.3.1 嵌入式作業系統概述 643
17.3.2 多任務調度算法 646
17.3.3 優先權反轉 650
17.4 嵌入式系統開發 653
17.4.1 開發平台 654
17.4.2 開發流程 655
17.4.3 軟硬體協同設計 657
17.4.4 系統分析與設計 660
17.4.5 低功耗設計 663
第18章 系統安全性分析與設計 666
18.1 信息系統安全體系 666
18.2 數據安全與保密 669
18.2.1 數據加密技術 669
18.2.2 認證技術 670
18.2.3 密鑰管理體制 673
18.3 通信與網路安全技術 675
18.3.1 防火牆 675
18.3.2 虛擬專用網 680
18.3.3 安全協定 681
18.3.4 單點登錄技術 683
18.4 病毒防治與防闖入 685
18.4.1 病毒防護技術 685
18.4.2 入侵檢測技術 687
18.4.3 入侵防護技術 689
18.4.4 網路攻擊及預防 690
18.4.5 計算機犯罪與防範 693
18.5 系統訪問控制技術 694
18.5.1 訪問控制概述 694
18.5.2 訪問控制模型 696
18.5.3 訪問控制分類 697
18.6 容災與業務持續 699
18.6.1 災難恢復技術 699
18.6.2 災難恢復規劃 700
18.6.3 業務持續性規劃 702
18.7 安全管理措施 704
18.7.1 安全管理的內容 705
18.7.2 安全審計 706
18.7.3 私有信息保護 707
第19章 系統可靠性分析與設計 709
19.1 系統可靠性概述 709
19.1.1 系統故障模型 709
19.1.2 系統可靠性指標 711
19.1.3 系統可靠性模型 711
19.2 系統可靠性分析 713
19.3 冗餘技術 715
19.3.1 冗餘技術的分類 716
19.3.2 冗餘系統 717
19.4 軟體容錯技術 718
19.4.1 N版本程式設計 719
19.4.2 恢復塊方法 720
19.4.3 防衛式程式設計 721
19.5 雙機容錯技術 722
19.6 集群技術 724
19.6.1 集群技術概述 724
19.6.2 高性能計算集群 726
19.6.3 負載均衡集群 728
19.6.4 高可用性集群 729
19.6.5 負載均衡技術 731
19.6.6 進程遷移技術 734
第20章 項目管理 737
20.1 項目開發計畫 737
20.1.1 項目開發計畫概述 737
20.1.2 項目開發計畫的編制 740
20.2 範圍管理 741
20.2.1 範圍計畫的編制 742
20.2.2 創建工作分解結構 743
20.2.3 範圍確認和控制 744
20.3 進度管理 746
20.3.1 活動排序 746
20.3.2 活動資源估算 749
20.3.3 活動歷時估算 750
20.3.4 進度控制 754
20.4 成本管理 756
20.4.1 成本估算 756
20.4.2 成本預算 757
20.4.3 成本控制 759
20.5 軟體配置管理 762
20.5.1 配置管理概述 762
20.5.2 配置標識 764
20.5.3 變更控制 766
20.5.4 版本控制 768
20.5.5 配置審核 769
20.5.6 配置狀態報告 770
20.6 質量管理 772
20.6.1 軟體質量模型 772
20.6.2 質量管理計畫 774
20.6.3 質量保證與質量控制 776
20.7 人力資源管理 778
20.7.1 人力資源計畫編制 778
20.7.2 組建項目團隊 780
20.7.3 項目團隊建設 781
20.7.4 管理項目團隊 784
20.7.5 溝通管理 785
20.8 風險管理 787
20.8.1 風險管理的概念 788
20.8.2 風險的主要類型 789
20.8.3 風險管理的過程 790
20.9 信息(文檔)管理 793
20.9.1 軟體文檔概述 793
20.9.2 軟體文檔標準 796
20.9.3 數據需求說明 798
20.9.4 軟體測試計畫 798
20.9.5 軟體測試報告 800
20.9.6 技術報告 800
20.9.7 項目開發總結報告 802
參考文獻 804
XII
系統分析師教程
XIII
目 錄