軟件設計師考試分為上午和下午。
上午的考試是選題,範圍很廣。
C和C++都有,但是題目不難,匯編語言不考。建議多讀壹些軟件工程的理論知識,多考壹些,尤其是下午。有操作系統,編譯原理等與計算機科學相關的理論。
概述如下:
軟件設計師考試大綱
壹、考試說明
1.考試要求:
(1)掌握數據表示、算術和邏輯運算;
(2)掌握相關應用數學和離散數學的基礎知識;
(3)掌握計算機體系結構、各主要部件的性能和基本工作原理;
(4)掌握操作系統和編程語言的基礎知識,了解編譯器的基礎知識;
(5)熟悉常用數據結構和常用算法;
(6)熟悉數據庫、網絡和多媒體的基礎知識;
(7)掌握C程序設計語言和C++、Java、Visual、Basic、Visual C++中的壹種;
(8)熟悉軟件工程、軟件過程改進和軟件開發項目管理的基礎知識;
(9)熟悉軟件設計的方法和技術;
(10)掌握常用信息技術標準、安全、相關法律法規基礎知識;
(11)了解信息化和計算機應用基礎知識;
(12)正確閱讀和理解計算機領域的英文資料。
2.通過本次考核的合格人員,能夠按照軟件開發項目管理和軟件工程的要求進行軟件設計,編寫程序設計說明書等相應文檔,組織和指導程序員編寫和調試程序,對軟件進行優化和集成,開發出符合系統總體設計要求的高質量軟件;具備工程實際工作能力和專業水平。
3.本次考試設置的科目包括:
(1)計算機與軟件工程知識,考試時間為150分鐘,筆試;
(2)軟件設計,考試時間為150分鐘,筆試。
二、考試範圍
考試科目1:計算機與軟件工程知識
1.計算機科學基礎
1.1數系及其變換
二進制、十進制、十六進制等常用十進制系統及其相互轉換。
1.2數據的表示
數字的表示(原碼、補碼、移位碼表示、整數和實數的內置表示、精度和溢出)
非數字表示法(字符和漢字表示法、聲音表示法、圖像表示法)
校驗方法和校驗碼(奇偶校驗碼、漢明校驗碼、循環冗余校驗碼)
1.3算術和邏輯運算
計算機中的二進制數運算方法
邏輯代數的基本運算和邏輯表達式的簡化
1.4數學基礎知識
命題邏輯、謂詞邏輯和形式邏輯的基礎知識
常用數值計算(誤差、矩陣和行列式、近似方程求解、插值、數值積分)
排列組合,概率論的應用,應用統計學(數據的統計分析)
基本操作方法(預測和決策、線性規劃、網絡圖、模擬)
1.5通用數據結構
數組(靜態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、堆棧、樹(二叉樹、搜索樹、平衡樹、線索樹、線索樹、堆)和圖等的定義、存儲和操作。
哈希(存儲地址計算、沖突處理)
1.6常用算法
排序算法、搜索算法、數值計算方法、字符串處理方法、數據壓縮算法、遞歸算法、圖形關聯算法。
算法與數據結構的關系,算法效率,算法設計,算法描述(流程圖,偽代碼,決策表),算法復雜度。
2.計算機系統知識
2.1硬件知識
2.1.1計算機系統的組成、體系結構分類和特點
CPU和內存的組成、性能和基本工作原理
常見I/O設備和通信設備的性能,以及基本工作原理。
I/O接口的功能、類型和特性
I/O控制模式(中斷系統、DMA、I/O處理器模式)
CISC/RISC,流水線,多處理器,並行處理。
2.1.2存儲系統
主存-緩存存儲系統的工作原理
虛擬內存的基本工作原理,多級存儲系統的性價比。
RAID類型和特征
2.1.3安全、可靠性和系統性能評估的基礎知識
診斷和容錯
系統可靠性分析和評估
計算機系統性能評估方法
2.2軟件知識
2.2.1操作系統知識
操作系統的內核(中斷控制)、進程和線程的概念。
處理器管理(狀態轉換,* * *共享和互斥、分時輪換、搶占、死鎖)
存儲管理(主存保護、動態連接分配、分段、分頁、虛擬內存)
設備管理(I/O控制、假脫機)
文件管理(文件目錄、文件組織、訪問方法、訪問控制、恢復處理)
作業管理(作業調度、作業控制語言、多道程序設計)
漢字處理,多媒體處理,人機界面
網絡操作系統和嵌入式操作系統的基礎知識
操作系統的配置
2.2.2編程語言和語言處理程序的知識
匯編編譯解釋系統的基本知識和工作原理
程序設計語言的基本組成部分:數據、操作、控制和傳輸、過程(函數)調用。
各種編程語言的主要特點及應用
2.3計算機網絡知識
網絡架構(網絡拓撲、OSI/RM、基本網絡協議)
傳輸介質、傳輸技術、傳輸方法和傳輸控制器
常見的網絡設備和各種通信設備
客戶機/服務器結構,瀏覽器/服務器結構。
局域網拓撲結構,訪問控制,局域網聯網,局域網間連接,局域網-廣域網連接。
互聯網基礎知識及應用
網絡軟件
網絡管理
網絡性能分析
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、Bsasic、Visual C++)的基本機制
面向對象數據庫和分布式對象的概念
4.安全知識
安全的基本概念
防止計算機病毒和計算機犯罪。
訪問控制、入侵防禦和安全管理措施
加密和解密機制
風險分析、風險類型、抗風險措施和內部控制
5.標準化知識
標準化意識、標準化發展和標準制定過程。
國際標準、國家標準、行業標準和企業標準的基本知識
了解代碼標準、文件格式標準、安全標準、軟件開發規範和文檔標準。
標準化組織
6.信息化基礎知識
信息意識
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略。
相關法律法規
遠程教育、電子商務、電子政務等基礎知識。
企業信息資源管理基礎知識
7.計算機英語
掌握計算機技術的基本詞匯
能正確閱讀和理解計算機領域的英文資料。
考試科目二:軟件設計
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方法、面向對象設計方法)
編程(結構化編程、面向對象編程)
軟件測試的原理和方法
軟件質量(軟件質量特征,軟件質量控制)
軟件過程評估和軟件能力成熟度評估的基本方法。
軟件開發環境和開發工具(分析工具、設計工具、編程工具、測試工具、維護工具、案例)
軟件工程的發展趨勢(面向組件、統壹建模語言(UML))
軟件過程改進模型和方法