考試要求
軟件設計師考試輔導
(1) 掌握計算機內的數據表示、算術和邏輯運算方法;
(2) 掌握相關的應用數學及離散數學基礎知識;
(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(4) 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(5) 熟練掌握常用數據結構和常用算法;
(6) 熟悉數據庫、網絡和多媒體的基礎知識;
(7) 掌握C程序設計語言,以及C++、Java中的一種程序設計語言;(2010年取消C語言)
(8) 熟悉軟件工程、軟件過程改進和軟件開發項目管理的基礎知識;
(9) 掌握軟件設計的方法和技術;
(10) 了解信息化、常用信息技術標準、安全性,以及有關法律、法規的基礎知識;
(11) 正確閱讀和理解計算機領域的英文資料。
考試科目
計算機與軟件工程知識,考試時間為150分鐘,筆試,選擇題;
軟件設計,考試時間為150分鐘,筆試,問答題。
考試范圍
軟件工程知識
1. 計算機科學基礎知識
1.1數制及其轉換
◇ 二進制、八進制、十進制和十六進制等常用數制及其相互轉換
1.2 計算機內數據的表示
◇ 數的表示(補碼表示,整數和實數的表示,精度和溢出)
◇ 非數值表示(字符和漢字表示,聲音表示、圖像表示)
1.3算術運算和邏輯運算
◇ 計算機中的二進制數運算方法
◇ 邏輯代數的基本運算
1.4其他數學基礎知識
◇ 常用數值計算
◇ 排列組合,概率論應用,應用統計(數據的統計分析)
◇編碼基礎
◇ 命題邏輯、謂詞邏輯、形式邏輯的基礎知識
◇ 運籌基本方法
計算機系統知識
2.1計算機硬件基礎知識
2.1.1計算機系統的組成、體系結構分類及特性
◇ CPU、存儲器的組成、性能和基本工作原理
◇ 常用I/O設備、通信設備的性能以及基本工作原理
◇ I/O接口的功能、類型和特性
◇ CISC/RISC,流水線操作,多處理機,并行處理
2.1.2存儲系統
◇ 虛擬存儲器基本工作原理,多級存儲體系
◇ RAID類型和特性
2.1.3可靠性與系統性能評測基礎知識
◇ 診斷與容錯
◇ 系統可靠性分析評價
◇ 計算機系統性能評測方法
2.2計算機軟件知識
2.2.1數據結構與算法知識
◇ 數組
◇ 鏈表
◇ 隊列、棧
◇ 樹
◇ 圖的定義、存儲和基本操作
◇ 雜湊(Hash表)
◇ 常用的排序算法、查找算法、數值計算、字符串處理、數據壓縮算法、遞歸算法、圖的相關算法
◇ 算法描述和分析
2.2.2 操作系統知識
◇操作系統的內核
◇ 處理機管理
◇ 存儲管理
◇ 設備管理
◇ 文件管理
◇ 作業管理
◇ 網絡操作系統和嵌入式操作系統基礎知識
◇ 操作系統的配置
2.2.3程序設計語言和語言處理程序知識
◇ 匯編、編譯、解釋系統的基礎知識和基本工作原理
◇ 程序設計語言的基本成分(數據、運算、控制和傳輸),程序調用的實現機制
◇ 各類程序設計語言的主要特點和適用情況
2.2.4 數據庫知識
◇ 數據庫模型(概念模式、外模式、內模式)
◇ 數據模型,ER圖,規范化
◇ 數據操作
◇ 數據庫語言
◇ 數據庫管理系統的功能和特征
◇ 數據庫的控制功能
◇ 數據倉庫和分布式數據庫基礎知識
2.3 計算機網絡知識
◇網絡體系結構
◇傳輸介質,傳輸技術,傳輸方法,傳輸控制
◇常用網絡設備和各類通信設備的特點
◇Client-Server結構,Browser-Server結構
◇LAN(拓撲,存取控制,組網,網間互連)
◇Internet 和Intranet 基礎知識以及應用
◇網絡軟件
◇網絡管理,網絡性能分析
2.4 多媒體基礎知識
◇ 多媒體系統基礎知識
◇ 簡單圖形的繪制,圖像文件的處理方法
◇ 音頻和視頻信息的應用
◇ 多媒體應用開發過程
系統開發和運行
3.1軟件工程知識
◇ 軟件生存周期與軟件生存周期模型
◇ 軟件開發方法
◇ 軟件開發項目管理
◇ 軟件開發工具與軟件開發環境
3.2 系統分析基礎知識
◇ 系統分析的主要步驟
◇ 機構化分析方法
3.3 系統設計基礎知識
◇ 概要設計與詳細設計的基本任務
◇ 系統設計的基本原理
◇ 系統模塊結構設計
◇ 結構化設計方法
◇ 面向數據結構的設計方法
◇ 系統詳細設計
3.4 系統實施基礎知識
◇ 系統實施的基本內容
◇ 程序設計方法
◇ 程序設計的基本模塊
◇ 系統測試
◇ 系統轉換
3.5 系統運行和維護基礎知識
◇ 系統可維護性的概念
◇ 系統維護的類型
◇ 系統評價的概念和類型
3.6 軟件質量管理基礎知識
◇ 軟件質量特性(ISO/IEC 9126軟件質量模型)
◇ 軟件質量保證
◇ 軟件復雜性的概念及度量方法(McCabe度量法)
◇ 軟件評審(設計質量評審、程序質量評審)
◇ 軟件容錯技術
3.7 軟件過程改進基礎知識
◇ 軟件能力成熟度模型CMM
◇ 統一過程(UP)與極限編程(XP)的基本概念
面向對象
◇ 面向對象的基本概念
◇ 面向對象分析與設計知識
◇ 分析模式與設計模式知識
◇ 面向對象程序設計知識
◇ 面向對象數據庫、分布式對象基礎知識
信息安全知識
◇ 信息系統安全基礎知識
◇ 信息系統安全管理
◇ 保障完整性與可用性的措施
◇ 加密與解密機制基礎知識
◇ 風險管理(風險分析、風險類型、抗風險措施和內部控制)
◇ 計算機安全相關的法律、法規基礎知識
標準化基礎知識
◇ 標準化意識,標準化組織機構,標準的內容、分類、代號與編號規定,標準制訂過程
◇ 國際標準、國家標準、行業標準、企業標準
◇ 代碼標準、文件格式標準、安全標準、互聯網相關標準、軟件開發規范和文檔標準、基于構件的軟件標準
6.2 信息化基礎知識
◇ 全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
◇ 互聯網相關的法律、法規
◇ 個人信息保護規則
◇遠程教育、電子商務、電子政務等基礎知識
◇ 企業信息資源管理基礎知識
6.3知識產權基礎知識
◇ 保護知識產權有關的法律、法規
計算機專業英語
◇ 具有工程師所要求的英語閱讀水平
◇ 理解本領域的英語術語
軟件設計
外部設計
1.1 理解系統需求說明
1.2 準備進行系統開發
◇ 選擇開發方法、準備開發環境、制訂開發計劃
1.3 設計系統功能
◇ 選擇系統結構
◇ 設計各子系統的功能和接口
◇ 設計安全性策略、需求和實現方法
◇ 制訂詳細的工作流和數據流
1.4 設計數據模型
◇ 設計ER模型及其他數據模型
1.5 編寫外部設計文檔
◇ 系統配置圖、各子系統關系圖
◇ 系統流程圖、系統功能說明書
◇ 輸入輸出規格說明、數據規格說明、用戶手冊框架
◇ 設計系統測試要求
1.6 外部設計的評審
內部設計
2.1 設計軟件結構
◇ 按構件分解,確定構件功能、規格以及構件之間的接口
◇ 數據結構與算法設計
◇ 采用中間件和工具
2.2 設計輸入輸出
2.3 設計物理數據
2.4 構件的創建和重用
◇ 創建構件、重用構件
◇ 使用子程序庫或類庫
2.5 編寫內部設計文檔
◇ 構件劃分圖、構件間的接口、構件處理說明
◇屏幕界面設計文檔、報表設計文檔、文件設計文檔、數據庫設計文檔
2.6 內部設計的評審
數據庫
◇ 設計關系模式
◇ 數據庫語言(SQL)
◇ 數據庫訪問
程序設計
4.1 模塊劃分
4.2 編寫程序設計文檔
4.3 程序設計評審
5.系統實施
5.1 配置計算機系統及環境
5.2 選擇合適的程序設計語言
5.3 用C程序設計語言以及C++、Java中的任一種程序設計語言進行程序設計
5.4 系統測試
◇ 指導程序員進行模塊測試,并進行驗收
◇ 準備系統集成測試環境和測試工具
◇ 準備測試數據
◇ 寫出測試報告
軟件工程應用
6.1 軟件開發周期模型
6.2 需求分析
6.3 軟件設計
◇ 軟件設計的基本原則
◇ 軟件設計方法
◇ 程序設計(結構化程序設計、面向對象程序設計)
6.4 軟件測試的原則與方法
6.5 軟件質量(軟件質量特性、軟件質量控制)
6.6 軟件過程評估基本方法、軟件能力成熟度評估基本方法
6.7 軟件開發環境和開發工具
6.8 面向對象技術
◇ 面向構件技術
◇ 統一建模語言(UML)
◇ 軟件過程改進模型和方法
6.9 網絡環境軟件技術
工作內容
軟件設計師的工作,受到系統架構師的影響。當系統架構師決定了整個系統架構后,軟件設計師會試著實作一個系統原型。
系統原型的目的,在于驗證系統架構師提出的架構。當架構過于復雜,或開發成本過高時,軟件設計師必需要求系統架構師,修改提出的架構,因為在實務上,由于成本、技術等關系,是無法在經濟的狀況下達成。
軟件設計師,必需對軟件技術十分專長,也必需對客戶的需求有一定程度的了解。在系統原型中,軟件設計師會實作多個程式范型(Program Pattern),每個程式范型,對應到一種客戶需求的程式類型。
系統原型開發成功后,后續的團隊,就可以使用完成的程式范型,快速地將客戶的需求,轉化為系統程式。
日常工作
“軟件設計師”的概念,它與電子、機械、建筑行業的設計師有著同樣的職責,可以只輸出一種經過嚴格約束,并有著明顯業務領域特色的設計說明與流程,而交給別人去實現,達到了很高的軟件生產效率。
大多數企業只是對“系統分析員”與“軟件工程師”做了明顯的界定,“系統分析員”的職責在不同的企業區別較大,其工作范圍涉及需求分析、功能設計、軟件結構設計、接口設計等內容,有相當部分的“系統分析員”要承擔一定程度的系統設計工作,但他們一般不參與編程與模塊詳細設計的工作;而絕大多數軟件工程師則同時承擔模塊詳細設計與編程的工作。
考取證書之后才能繼續為接下來的目標努力和奮斗。軟件設計師需要學習的內容較為復雜。想要了解更多有關軟件設計師的信息,請繼續關注中培偉業。