考試介紹
軟體設計師考試屬於全國計算機技術與軟體專業技術資格考試(簡稱計算機軟體資格考試)中的一個中級考試。考試不設學歷與資歷條件,也不論年齡和專業,考生可根據自己的技術水平選擇合適的級別合適的資格,但一次考試只能報考一種資格。考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標準、統一證書的考試辦法。
分級形式
初級:程式設計師
中級:軟體設計師
高級:系統分析師
考試科目
1:計算機與軟體工程知識
2:軟體設計
職業要求
作為套用軟體開發中最頂層的角色,軟體設計師的能力要求更強,除了具備更強的編程技巧能力外,還需要了解系統結構、主流軟體技術和軟體趨勢,同時要具備相當的專業知識,包括:能開發高質量軟體,有內部設計和程式設計的能力,有網路和資料庫套用開發能力,掌握一種或多種程式設計語言,有最佳化程式能力,掌握集成測試的方法和技能。
一個軟體設計師首先要是非常好的程式設計師,軟體設計師在編程的時候,用的工具和普通程式設計師沒有任何差別,但使用深度是不一樣的。因而對軟體設計師來說,還應具備抽象能力、領悟和突破能力、快速學習非軟體專業知識能力。
職業前景
隨著IT技術在通信建設、醫療、教育、交通、旅遊、財政、國家政務、郵電、民航等各個方面的全面發展,帶動了各行業軟體的全面開發,促進了軟體設計開發人才的旺盛需求。
從IT技術分類看:微電子技術是基礎,網路與通信技術是載體,軟體技術是核心。軟體設計作為核心技術,作為掌握核心技術的軟體設計師就有了非常好的職業前景。且IT行業的平穩增長必然會帶來軟體設計師需求的增長。
軟體設計師進一步發展目標是走向系統分析師、系統架構師。
報考資格
凡遵守中華人民共和國憲法和各項法律,恪守職業道德,具有一定計算機技術套用能力的人員,不受學歷、資歷限制均可報考。
注意:每次考試每人只允許報考一種資格。
報名流程
根據《計算機技術與軟體專業技術資格(水平)考試實施辦法》第八條相關規定:
符合《暫行規定》(即《計算機技術與軟體專業技術資格(水平)考試暫行規定》)第八條規定的人員,由本人提出申請,按規定攜帶身份證明到當地考試管理機構報名,領取准考證。憑準考證、身份證明在指定的時間、地點參加考試。
各地的報名辦法由考生報考所在地的當地考試機構決定。考生相關報考費用標準由當地物價部門核准。
考生報名方式主要分為:網上報名與考生本人到指定地點報名兩種。
註:報名時依據的身份證明包括:居民身份證、軍人的證件、護照、戶口本等。
報名時間
根據《計算機技術與軟體專業技術資格(水平)考試實施辦法》第三條相關規定:
計算機專業技術資格(水平)考試原則上每年組織兩次,在每年第二季度和第四季度舉行。
各地的報名時間由考生報考所在地的當地考試機構決定。
最新考試大綱
考試目標
通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程式設計規格說明書等相應的文檔,組織和指導程式設計師編寫、調試程式,並對軟體進行最佳化和集成測試,開發出符合系統總體設計要求的高質量軟體;具有工程師的實際工作能力和業務水平。
考試要求
(1) 掌握計算機內的數據表示、算術和邏輯運算方法;
(2) 掌握相關的套用數學及離散數學基礎知識;
(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(4) 掌握作業系統、程式設計語言的基礎知識,了解編譯程式的基本知識;
(5) 熟練掌握常用數據結構和常用算法;
(6) 熟悉資料庫、網路和多媒體的基礎知識;
(7) 掌握C程式設計語言,以及C++、Java中的一種程式設計語言;
(8) 熟悉軟體工程、軟體過程改進和軟體開發項目管理的基礎知識;
(9) 掌握軟體設計的方法和技術;
(10) 了解信息化、常用信息技術標準、安全性,以及有關法律、法規的基礎知識;
(11) 正確閱讀和理解計算機領域的英文資料。
科目包括
(1) 計算機與軟體工程知識,考試時間為150分鐘,筆試;
(2) 軟體設計,考試時間為150分鐘,筆試。
二、考試範圍
考試科目1:計算機與軟體工程知識
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用制數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼、移碼錶示,整數和實數的機內表示,精度和溢出)
非數值表示(字元和漢字表示、聲音表示、圖像表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗餘校驗碼)
1.3 算術運算和邏輯運算
計算機中的二進制數運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學基礎知識
命題邏輯、謂詞邏輯、形式邏輯的基礎知識
常用數值計算(誤差、矩陣和行列式、近似求解方程、插值、數值積分)
排列組合、機率論套用、套用統計(數據的統計分析)
運算基本方法(預測與決策、線性規劃、網路圖、模擬)
1.5 常用數據結構
數組(靜態數組、動態數組)、線性表、鍊表(單向鍊表、雙向鍊表、循環鍊表)、佇列、棧、樹(二叉樹、查找樹、平衡樹、線索樹、線索樹、堆)、圖等的定義、存儲和操作
Hash(存儲地址計算,衝突處理)
1.6 常用算法
排序算法、查找算法、數值計算方法、字元串處理方法、數據壓縮算法、遞歸算法、圖的相關算法
算法與數據結構的關係、算法效率、算法設計、算法描述(流程圖、偽代碼、決策表)、算法的複雜性
2. 計算機系統知識
2.1 硬體知識
2.1.1 計算機系統的組成、體系結構分類及特性
CPU和存儲器的組成、性能和基本工作原理
常用I/O設備、通信設備的性能,以及基本工作原理
I/O接口的功能、類型和特性
I/O控制方式(中斷系統、DMA、I/O處理機方式)
CISC/RISC,流水線操作,多處理機,並行處理
2.1.2 存儲系統
主存-Cache存儲系統的工作原理
虛擬存儲器基本工作原理,多級存儲體系的性能價格
RAID類型和特性
2.1.3 安全性、可靠性與系統性能評測基礎知識
診斷與容錯
系統可靠性分析評價
計算機系統性能評測方式
2.2 軟體知識
2.2.1 作業系統知識
作業系統的核心(中斷控制)、進程、執行緒概念
處理機管理(狀態轉換、共享與互斥、分時輪轉、搶占、死鎖)
存儲管理(主存保護、動態連線分配、分段、分頁、虛存)
設備管理(I/O控制、假脫機)
檔案管理(檔案目錄、檔案組織、存取方法、存取控制、恢復處理)
作業管理(作業調度、作業控制語言(JCL)、多道程式設計)
漢字處理,多媒體處理,人機界面
網路作業系統和嵌入式作業系統基礎知識
作業系統的配置
2.2.2 程式設計語言和語言處理程式的知識
彙編、編譯、解釋系統的基礎知識和基本工作原理
程式設計語言的基本成分:數據、運算、控制和傳輸,過程(函式)調用
各類程式設計語言主要特點和適用情況
2.3 計算機網路知識
網路體系結構(網路拓撲、OSI/RM、基本的網路協定)
傳輸介質、傳輸技術、傳輸方法、傳輸控制
常用網路設備和各類通信設備
Client/Server結構、Browser/Server結構
LAN拓撲,存取控制,LAN的組網,LAN間連線,LAN-WAN連線
網際網路基礎知識以及套用
網路軟體
網路管理
網路性能分析
2.4 資料庫知識
資料庫管理系統的功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖,第一範式、第二範式、第三範式
數據操作(集合運算和關係運算)
資料庫語言(SQL)
資料庫的控制功能(並發控制、恢復、安全性、完整性)
數據倉庫和分散式資料庫基礎知識
2.5 多媒體知識
多媒體系統基礎知識,多媒體設備的性能特性,常用多媒體檔案格式
簡單圖形的繪製,圖像檔案的處理方法
音頻和視頻信息的套用
多媒體套用開發過程
2.6 系統性能知識
性能指標(回響時間、吞吐量、周轉時間)和性能設計
性能測試和性能評估
可靠性指標及計算、可靠性設計
可靠性測試和可靠性評估
2.7 計算機套用基礎知識
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等基礎知識
遠程通信服務基礎知識
常用套用系統
3. 系統開發和運行知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
軟體工程知識
軟體開發生命周期各階段的目標和任務
軟體開發項目管理基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
軟體開發工具與環境知識
軟體過程改進知識
軟體質量管理知識
軟體開發過程評估、軟體能力成熟評估基礎知識
3.2 系統分析基礎知識
系統分析的目的和任務
結構化分析方法(數據流圖(DFD)、數據字典(DD)、實體關係圖(ERD)、描述加工處理的結構化語言)
統一建模語言(UML)
系統規格說明書
3.3 系統設計知識
系統設計的目的和任務
結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
系統總體結構設計(總體布局、設計原則、模組結構設計、數據存儲設計、系統配置方案)
系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
系統設計說明書
3.4 系統實施知識
系統實施的主要任務
結構化程式設計、面向對象程式設計、可視化程式設計
程式設計風格
程式設計語言的選擇
系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試用例設計、系統測試報告)
系統轉換基礎知識
3.5 系統運行和維護知識
系統運行管理基礎知識
系統維護基礎知識
系統評價基礎知識
3.6 面向對象開發方法
面向對象開發概念(類、對象、屬性、封裝性、繼承性、多態性、對象之間的引用)
面向對象開發方法的優越性以及有效領域
面向對象設計方法(體系結構、類的設計、用戶接口設計)
面向對象實現方法(選擇程式設計語言、類的實現、方法的實現、用戶接口的實現、準備測試數據)
面向對象程式設計語言(如C++、Java、Visual Basic、Visual C++)的基本機制
面向對象資料庫、分散式對象的概念
4. 安全性知識
安全性基本概念
防治計算機病毒、防範計算機犯罪
存取控制、防闖入、安全管理措施
加密與解密機制
風險分析、風險類型、抗風險措施和內部控制
5. 標準化知識
標準化意識、標準化的發展、標準制訂過程
國際標準、國家標準、行業標準、企業標準基本知識
代碼標準、檔案格式標準、安全標準、軟體開發規範和文檔標準知識
標準化機構
6. 信息化基礎知識
信息化意識
全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
有關的法律、法規
遠程教育、電子商務、電子政務等基礎知識
企業信息資源管理基礎知識
7. 計算機專業英語
掌握計算機技術的基本辭彙
能正確閱讀和理解計算機領域的英文資料
考試科目2:軟體設計
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))
軟體過程改進模型
3.考試科目
(1) 計算機與軟體工程知識,考試時間為150分鐘,筆試,選擇題;
(2) 軟體設計,考試時間為150分鐘,筆試,問答題。