當前位置:成語大全網 - 新華字典 - 軟件設計師

軟件設計師

軟件設計師考試的總體要求

軟件設計師主要完成三項工作:(1)編寫文檔;(2)組織指導程序員開展工作;(3)軟件優化和集成測試,開發高質量軟件。本工作要求具有工程師的實際工作能力和業務水平。具體講就是,通過本考試的合格人員,能根據軟件開發項目管理和軟件工程的要求,按照系統總體設計規格說明書進行軟件設計,編寫程序設計規格說明書等相應的文檔,組織和指導程序員編寫、調試程序,並對軟件進行優化和集成測試,開發出符合系統總體設計要求的高質量軟件。

考試內容要求

知識點的掌握程度從深到淺可分五個層次,分別要求為熟練掌握、掌握、理解、熟悉和了解。其中包括2個熟練掌握(常用數據結構和常用算法、軟件設計的方法和技術)、8個掌握、2個熟悉,1個正確理解,具體體現在以下12個方面:

(1) 掌握數據表示、算術和邏輯運算;

(2) 掌握相關的應用數學、離散數學的基礎知識;

(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;

(4) 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;

(5) 熟練掌握常用數據結構和常用算法;

(6) 熟悉數據庫、網絡和多媒體的基礎知識;

(7) 掌握C程序設計語言,以及C++、Java、Visual Basic、Visual C++中的壹種程序設計語言;

(8) 熟悉軟件工程、軟件過程改進和軟件開發項目管理的基礎知識;

(9) 熟練掌握軟件設計的方法和技術;

(10) 掌握常用信息技術標準、安全性,以及有關法律、法規的基本知識;

(11) 了解信息化、計算機應用的基礎知識;

(12) 正確閱讀和理解計算機領域的英文資料。

分析:相對於2001年考試大綱,新大綱對知識面的要求更寬,更註重軟件設計開發的實踐能力,這壹點充分體現在下午考試中。考試內容除了技術要求外,還增加了對軟件工程實踐能力、安全性、標準化、法律法規等方面知識的要求,畢竟軟件設計師是軟件產業的骨幹,因此考試要求相對較高。

二、考試範圍

考試科目1:計算機與軟件工程知識

本部分包含以下內容:

l 計算機科學基礎

l 計算機系統知識

l 系統開發和運行知識

l 安全性知識

l 標準化知識

l 信息化基礎知識

l 計算機專業英語

1.計算機科學基礎

1.1 數制及其轉換

· 二進制、十進制和十六進制等常用制數制及其相互轉換

1.2 數據的表示

·(原碼、反碼、補碼、移碼表示,整數和實數的機內表示,精度和溢出)

· 非數值表示(字符和漢字表示、聲音表示、圖像表示)

· 校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗余校驗碼)

1.3 算術運算和邏輯運算

· 計算機中的二進制數運算方法

· 邏輯代數的基本運算和邏輯表達式的化簡

分析1.1 / 1.2 / 1.3

本部分要求與程序員考試大綱基本壹致

重點:數的表示、校驗碼

難點:數的四種編碼:原碼、反碼、補碼、移碼及相互之間的變換方法。浮點數的表示以及其規格化。

考試題型壹般分布在:數制表示、數據表示、校驗碼的長度、邏輯表達式(公式、等效變換),明確“與”、“非”、“異或”的運算規則。

考試出現頻率較高的內容:浮點數規格化、進制轉換、求反補碼。

1.4 數學基礎知識

· 命題邏輯、謂詞邏輯、形式邏輯的基礎知識

· 常用數值計算(誤差、矩陣和行列式、近似求解方程、插值、數值積分)

· 排列組合、概率論應用、應用統計(數據的統計分析)

· 運算基本方法(預測與決策、線性規劃、網絡圖、模擬)

分析1.4

考綱要求掌握相關的應用數學、離散數學的基礎知識

本部分內容作為背景知識,雖不專門考察,但在其他題目中尤其是程序設計中出現。

1.5 常用數據結構

· 數組(靜態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹、平衡樹、線索樹、線索樹、堆)、圖等的定義、存儲和操作

· Hash(存儲地址計算,沖突處理)

1.6 常用算法

· 排序算法、查找算法、數值計算方法、字符串處理方法、數據壓縮算法、遞歸算法、圖的相關算法

· 算法與數據結構的關系、算法效率、算法設計、算法描述(流程圖、偽代碼、決策表)、算法的復雜性

分析1.5/1.6

因為數據結構是程序設計的基礎,算法與數據結構密切相關,因此本部分為考試重點內容,要求熟練掌握。

重點:順序存儲結構和鏈式存儲結構的特點、鏈表中的頭結點、棧的運算與溢出、循環隊列的基本操作

數組元素的存儲位置、特殊矩陣的壓縮存儲、廣義表的表頭和表尾求法

二叉樹存儲方法、由遍歷序列確定二叉樹、二叉樹的計數問題

圖的遍歷算法、最小生成樹算法、拓樸排序和關鍵路徑、最短路徑算法

平均查找長度、折半查找判定樹、平衡二叉樹的最少結點數、插入運算及平衡化處理、哈希表的構造和查找

排序的穩定問題、快速排序的分析及改進、內部排序的時間下界、算法時間復雜度分析

難點:二叉樹節點與深度的關系、圖的存儲(矩陣、鄰接表)與操作、遍歷、

考試出現頻率較高的內容:樹的遍歷、數據元素存儲方式、查找樹、平衡樹

考試題型壹般分布在:數據元素存儲方式、隊和棧的性質及其對比、鏈表操作、二叉樹的定義及其性質、二叉樹的遍歷/節點計算、樹的遍歷、查找樹、平衡樹等,圖的概念及其性質。

常見的排序算法、查找算法、遞歸算法、算法的基本特點、常用算法思想、算法效率的比較(時間、空間復雜度)、算法描述、算法復雜性比較

2.計算機系統知識

2.1 硬件知識

2.1.1 計算機系統的組成、體系結構分類及特性

· CPU和存儲器的組成、性能和基本工作原理

· 常用I/O設備、通信設備的性能,以及基本工作原理

· I/O接口的功能、類型和特性

·(中斷系統、DMA、I/O處理機方式)

· CISC/RISC,流水線操作,多處理機,並行處理

2.1.2 存儲系統

· 主存-Cache存儲系統的工作原理

· 虛擬存儲器基本工作原理,多級存儲體系的性能價格

· RAID類型和特性

分析2.1.1/2.1.2

分析:磁盤存儲器的容量計算、地址映射、流水線、系統結構分類

重點:Cache替換算法、內存與接口的編址方式、流水線操作

難點:I/O控制方式、地址計算、並行處理的概念和層次

考試出現頻率較高的內容:指令的尋址方式以及指令的執行過程;存儲容量的計算、

流水線處理機的主要指標、CISC/RISC比較等

2.1.3 安全性、可靠性與系統性能評測基礎知識

· 診斷與容錯

· 系統可靠性分析評價

· 計算機系統性能評測方式

分析2.1.3本部分內容多為記憶型內容

重點:數據加密/解密知識、計算機安全等級、認證技術、數字簽名等

平均無故障時間、平均修復時間定義、計算機可靠性模型、性能評價

難點:數據加密/解密知識、密鑰體制

考試出現頻率較高的內容:可靠性能評價、數據安全知識、計算機可靠性及性能評價

2.2 軟件知識

2.2.1 操作系統知識

· 操作系統的內核(中斷控制)、進程、線程概念

· 處理機管理(狀態轉換、***享與互斥、分時輪轉、搶占、死鎖)

· 存儲管理(主存保護、動態連接分配、分段、分頁、虛存)

· 設備管理(I/O控制、假脫機)

· 文件管理(文件目錄、文件組織、存取方法、存取控制、恢復處理)

· 作業管理(作業調度、作業控制語言(JCL)、多道程序設計)

· 漢字處理,多媒體處理,人機界面

· 網絡操作系統和嵌入式操作系統基礎知識

· 操作系統的配置

分析2.2.1

重點:操作系統的五大管理功能,其中如處理機管理、存儲管理、作業調度、進程調度、頁面調度等尤為重要、狀態轉換、***享與互斥、分時輪轉、搶占、死鎖

難點:作業調度、進程調度、頁面調度算法、PV操作

考試題型壹般分布在:操作系統的概述、處理機管理、存儲、文件管理、作業、進程調度、進程狀態變化

考試出現頻率較高的內容:PV操作、進程死鎖/同步、內存分配、並發執行程序、進程間狀態轉換、PV實現進程間的同步與互斥、死鎖及其避免、地址變換、頁面置換、工作集

2.2.2 程序設計語言和語言處理程序的知識

· 匯編、編譯、解釋系統的基礎知識和基本工作原理

· 程序設計語言的基本成分:數據、運算、控制和傳輸,過程(函數)調用

· 各類程序設計語言主要特點和適用情況

分析2.2.2

分析:文法考查、自動機、正則式

重點:編譯程序的基本組成、正則表達式和有限自動機、文法及語言的形式描述、中間代碼、自動機原理、文法和語言的定義

考試出現頻率較高的內容:正則表達式和正則集、有限自動機和正則表達式的轉換

2.3 計算機網絡知識

· 網絡體系結構(網絡拓撲、OSI/RM、基本的網絡協議)

· 傳輸介質、傳輸技術、傳輸方法、傳輸控制

· 常用網絡設備和各類通信設備

· Client/Server結構、Browser/Server結構

· LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接

· 因特網基礎知識以及應用

· 網絡軟件

· 網絡管理

· 網絡性能分析

分析2.3

計算機網絡中對OSI/RM七層的劃分,及各種協議的功能。傳輸理論、互聯設備、Internet知識,除參考模型理論外,其他的比較比較瑣碎,需要知識積累。

重點:網絡分類、拓撲結構、OSI參考模型層次劃分及對應的協議、帶寬計算、子網劃分、防火墻技術

難點:IP子網劃分;傳輸控制、各層協議的功能

考試題型壹般分布在:這部分知識除了上面的難點部分外,基本屬於了解記憶性的知識點,知識點比較散亂,但考試中考點均落在大綱中列出的知識點中。

考試出現頻率較高的內容:TCP/IP協議、參考模型7層協議、IP地址的分類、各種網絡設備的比較;

2.4 數據庫知識

· 數據庫管理系統的功能和特征

· 數據庫模型(概念模式、外模式、內模式)

· 數據模型,ER圖,第壹範式、第二範式、第三範式

· 數據操作(集合運算和關系運算)

· 數據庫語言(SQL)

· 數據庫的控制功能(並發控制、恢復、安全性、完整性)

· 數據倉庫和分布式數據庫基礎知識

分析2.4

無論對上午題目還是下午題目,本部分都很重要,這是學習和復習的壹個重點。

重點:用E-R模型表示現實問題,擴充的E-R模型、ER圖向關系模式的轉換、數據庫語言(SQL)、對SELECT查詢語句的應用、關系代數表達式、關系模型的完整性約束、函數依賴

難點:五種基本的關系運算方法、組合的關系運算方法、規則化理論()、函數依賴、分解的保持函數依賴、無損連接又保持函數依賴的分解、判斷壹個分解的無損連接性和保持函數

考試出現頻率較高的內容:數據模型、關系運算與SQL語句的轉換、函數依賴

2.5 多媒體知識

· 多媒體系統基礎知識,多媒體設備的性能特性,常用多媒體文件格式

· 簡單圖形的繪制,圖像文件的處理方法

· 音頻和視頻信息的應用

· 多媒體應用開發過程

分析2.5

基本屬於了解記憶性的知識點。

重點:多媒體的基本概念、聲音數字化的過程、圖像壓縮編碼、視頻文件的國際標準、流媒體概念、多媒體計算機系統、虛擬現實技術

難點:多媒體信息的容量計算、數據壓縮、常用多媒體文件格式、音頻和視頻的物理特征等

考試出現頻率較高的內容:基本知識、信息的容量計算

2.6 系統性能知識

· 性能指標(響應時間、吞吐量、周轉時間)和性能設計

· 性能測試和性能評估

· 可靠性指標及計算、可靠性設計

· 可靠性測試和可靠性評估

分析2.6

重點:可靠性評估

考試出現頻率較高的內容:系統可靠性的計算、設備周轉時間

2.7 計算機應用基礎知識

· 信息管理、數據處理、輔助設計、自動控制、科學計算、人工智能等基礎知識

· 遠程通信服務基礎知識

· 常用應用系統

分析2.7

本部分內容不是考試重點,做壹般了解即可。

3.系統開發和運行知識

本部分內容涉及上午考試和下午考試,是軟件設計師工作能力的考查重點。

3.1 軟件工程、軟件過程改進和軟件開發項目管理知識

· 軟件工程知識

· 軟件開發生命周期各階段的目標和任務

· 軟件開發項目管理基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具

· 主要的軟件開發方法(生命周期法、原型法、面向對象法、CASE)

· 軟件開發工具與環境知識

· 軟件過程改進知識

· 軟件質量管理知識

· 軟件開發過程評估、軟件能力成熟評估基礎知識

分析3.1

重點:軟件開發方法、CMM、成本估算、風險分析、進度管理、人員管理、軟件開發環境

3.2 系統分析基礎知識

· 系統分析的目的和任務

· 結構化分析方法(數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)、描述加工處理的結構化語言)

· 統壹建模語言(UML)

· 系統規格說明書

分析3.2

高度重視UML在系統分析中的應用

重點:數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)

考點:UML的各類圖

3.3 系統設計知識

· 系統設計的目的和任務

· 結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)

· 系統總體結構設計(總體布局、設計原則、模塊結構設計、數據存儲設計、系統配置方案)

· 系統詳細設計(代碼設計、數據庫設計、用戶界面設計、處理過程設計)

· 系統設計說明書

分析3.3

重點:系統流程圖、HIPO圖、控制流程圖

3.4 系統實施知識

· 系統實施的主要任務

· 結構化程序設計、面向對象程序設計、可視化程序設計

· 程序設計風格

· 程序設計語言的選擇

· 系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)

· 測試設計和管理(錯誤曲線、錯誤排除、收斂、註入故障、測試用例設計、系統測試報告)

· 系統轉換基礎知識

3.5 系統運行和維護知識

· 系統運行管理基礎知識

· 系統維護基礎知識

· 系統評價基礎知識

分析3.4/3.5

重點:結構化設計中信息流、變換分析、系統結構設計原則、系統劃分、模塊設計、數據存儲設計、面向對象程序設計、測試方法、系統維護的分類

難點:系統測試方法、測試分類、系統可維護性評價指標

3.6 面向對象開發方法

· 面向對象開發概念(類、對象、屬性、封裝性、繼承性、多態性、對象之間的引用)

· 面向對象開發方法的優越性以及有效領域

· 面向對象設計方法(體系結構、類的設計、用戶接口設計)

· 面向對象實現方法(選擇程序設計語言、類的實現、方法的實現、用戶接口的實現、準備測試數據)

· 面向對象程序設計語言(如C++、Java、Visual、Bsasic、Visual C++)的基本機制

· 面向對象數據庫、分布式對象的概念

分析3.6

重點:面向對象開發:類、對象、屬性、封裝性、繼承性、多態性、OMT方法

難點:建議在數據流圖、結構化分析方法上多加掌握。

分析3

考試題型壹般分布在:DFD、軟件的生存周期;數據流圖;模塊間的關系;軟件測試的分類、軟件質量管理(標準)軟件的特性、主要的軟件開發方法、系統測試、軟件能力成熟評估

考試出現頻率較高的內容:數據流圖、黑盒/白盒測試、面向對象技術的概念

4.安全性知識

· 安全性基本概念

· 防治計算機病毒、防範計算機犯罪

· 存取控制、防闖入、安全管理措施

· 加密與解密機制

· 風險分析、風險類型、抗風險措施和內部控制

分析4

系統安全問題是目前社會關註的問題,也是應用價值較高的知識,可結合現實中的相關問題來加深理解。

考試出現頻率較高的內容:加密與解密算法、

5.標準化知識

· 標準化意識、標準化的發展、標準制訂過程

· 國際標準、國家標準、行業標準、企業標準基本知識

· 代碼標準、文件格式標準、安全標準、軟件開發規範和文檔標準知識

· 標準化機構

6.信息化基礎知識

· 信息化意識

· 全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略

· 有關的法律、法規

· 遠程教育、電子商務、電子政務等基礎知識

· 企業信息資源管理基礎知識

分析5/6

信息化、標準化知識是新增考點。標準化方面有標準標識,標準修訂等是對基本素質的考查,也要重視。

考試出現頻率較高的內容

7.計算機專業英語

· 掌握計算機技術的基本詞匯

· 能正確閱讀和理解計算機領域的英文資料

分析7

專業英語,是對專業知識和英語水平的考查,考前需有意識閱讀點英文專業資料。

考試題型壹般分布在:軟件行業標準,計算機安全基礎知識,信息化基礎知識。

考試出現頻率較高的內容:行業標準的類別;計算機安全,CMM分類,計算機軟件著作權問題。

考試科目2:軟件設計

本部分具體內容如下:

l 外部設計

l 內部設計

l 程序設計

l 系統實施

l 軟件工程

本部分所涉及內容為軟件設計的日常工作,這些內容同樣出現在上午考試試題中。

1.外部設計

1.1 理解系統需求說明

1.2 系統開發的準備

· 選擇開發方法、準備開發環境、制訂開發計劃

1.3 設計系統功能

· 選擇系統結構,設計各子系統的功能和接口,設計安全性策略、需求和實現方法,制訂詳細的工作流和數據流

1.4 設計數據模型

· 設計ER模型、數據模型

1.5 編寫外部設計文檔

· 系統配置圖、各子系統關系圖、系統流程圖、系統功能說明書、輸入輸出規格說明、數據規格說明、用戶手冊框架

· 設計系統測試要求

1.6 設計評審

應能由考試說明內容,來閱讀

2.內部設計

2.1 設計軟件結構

· 按構件分解,確定構件功能規格以及構件之間的接口

· 采用中間件和工具

2.2 設計輸入輸出

· 屏幕界面設計、設計輸入輸出檢查方法和檢查信息

2.3 設計物理數據

· 分析數據特性,確定邏輯數據組織方式、存儲介質,設計記錄格式和處理方式

· 將邏輯數據結構換成物理數據結構,計算容量,進行優化

2.4 構件的創建和重用

· 創建、重用構件的概念

· 使用子程序庫或類庫

2.5 編寫內部設計文檔

· 構件劃分圖、構件間的接口、構件處理說明、屏幕設計文檔、報表設計文檔、文件設計文檔、數據庫設計文檔

2.6 設計評審

3.程序設計

3.1 模塊劃分(原則、方法、標準)

3.2 編寫程序設計文檔

· 模塊規格說明書(功能和接口說明、程序處理邏輯的描述、輸入輸出數據格式的描述)

· 測試要求說明書(測試類型和目標、測試用例、測試方法)

3.3 程序設計評審

4.系統實施

4.1 配置計算機系統及其環境

4.2 選擇合適的程序設計語言

4.3 掌握C程序設計語言,以及C++、Java、Visual Basic、Visual C++中任壹種程序設計語言,以便能指導程序員進行編程和測試,並進行必要的優化

4.4 系統測試

· 指導程序員進行模塊測試,並進行驗收

· 準備系統集成測試環境和測試工具

· 準備測試數據

· 寫出測試報告

5.軟件工程

· 軟件生存期模型(瀑布模型、螺旋模型、噴泉模型)和軟件成本模型

· 定義軟件需求(系統化的目標、配置、功能、性能和約束)

· 描述軟件需求的方法(功能層次模型、數據流模型、控制流模型、面向數據的模型、面向對象的模型等)

· 定義軟件需求的方法(結構化分析方法、面向對象分析方法)

· 軟件設計(分析與集成、逐步求精、抽象、信息隱蔽)

· 軟件設計方法(結構化設計方法、Jackson方法、Warnier方法、面向對象設計方法)

· 程序設計(結構化程序設計、面向對象程序設計)

· 軟件測試的原則與方法

· 軟件質量(軟件質量特性、軟件質量控制)

· 軟件過程評估基本方法、軟件能力成熟度評估基本方法

· 軟件開發環境和開發工具(分析工具、設計工具、編程工具、測試工具、維護工具、CASE)

· 軟件工程發展趨勢(面向構件,統壹建模語言(UML))

· 軟件過程改進模型和方法

本部分綜合分析:

軟件設計師,關鍵是設計軟件的能力。考綱要求:要熟悉軟件工程、軟件過程改進和軟件開發項目管理的基礎知識;熟練掌握軟件設計的方法和技術;掌握C程序設計語言及指定的四種面向對象語言中的壹種。這部分專業能力嚴重依賴工作實踐,要求有壹定經驗的積累,是具有工程師的實際工作能力和業務水平的體現。如無實踐經驗,要學會借鑒,以取人之長,補已之短。

這部分主要體現在下午考試中,現就如何應對下午考試進行分析:

近幾次考試中下午試題分五個題目,壹個數據庫,壹個程序填空題、壹個面向對象的語言題,另兩個題目分別為數據流圖、UML、或流程圖等。

數據庫題目,要求補全SQL語言,這要求考生熟悉SQL的語言,無論對上午題目還是下午題目都很重要。這是學習和復習的壹個重點。

數據流圖,DFD是壹種分析系統數據流程的圖形,意在讓用戶理解系統的功能、輸入、輸出和數據存儲等。請認真弄清其應用,在畫出數據流圖的情況下,系統的功能也就確定了,再經過細化,逐步向物理結構邁進。考核時,試題多從父圖和子圖的平衡來分析。這部分內容,壹個解題的關鍵是高度重視題目說明,務必正確、深入理解其內容,必要時要讀幾遍,同時對於給出的圖表,也要務必看懂。這樣答題就輕松了,答案實際就蘊含在說明中。

流程圖類題目,是大家再熟悉不過的了,它就壹個具體問題的解題思路進行描述,是面向過程的。但所求問題是千差萬別的,因此應理解思路,細心作答。

答題形式最簡單也是難度最大的是程序填空。為便於閱卷,這類題目以程序填空形式出現,這不僅要求理解問題本質,同時也要弄清作者解題思路,這壹點比自己獨立完成程序設計要難得的多。針對問題,首先設計自己的思路,如何解決問題,先後順序怎樣;然後試讀程序,如何思路大體壹致,很好,這題容易解決了。如思路不壹致,設法弄清每壹段代碼的功能,其邏輯結構怎樣,進而弄清命題人的解題思路,再順勢解決問題。人們常講,答案就在題目中,這是對的。在分析問題過程中,找到所求答案。不過前提條件是考生要熟悉這種語言,又要明白解題思路,這樣才能正確作答。這個題目比較難,要麽不得分,要麽得全分。

近年對於統壹建模語言UML考查較多,已引起了考生的註意。它代表了軟件工程的發展趨勢,目前是可視化建模的事實上的工業標準。人們對於圖的理解相對其他形式更容易壹些,圖能更清晰地描述和說明問題的本質,因此,UML體現了這壹特點。這類題目難度與數據流圖相似,自然解題思想也相同。從形式上看,數據流圖更樸實壹些,UML類的題目則透出壹種新穎、現代的氣息。

最後的題目面向對象語言是壹個選做題,給考生以自由,可以發揮個人的優勢。命題已註意到不同語言的考查難度壹致性,要求考生就同壹問題回答,實現了形式上的公平,自然是壹個進步