考試介紹
軟件設計師考試屬于全國計算機技術與軟件專業技術資格考試(簡稱計算機軟件資格考試)中的一個中級考試。考試不設學曆與資曆條件,也不論年齡和專業,考生可根據自己的技術水平選擇合适的級别合适的資格,但一次考試隻能報考一種資格。考試采用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一标準、統一證書的考試辦法。
考試目标
通過本考試的合格人員能根據軟件開發項目管理和軟件工程的要求,按照系統總體設計規格說明書進行軟件設計,編寫程序設計規格說明書等相應的文檔,組織和指導程序員編寫、調試程序,并對軟件進行優化和集成測試,開發出符合系統總體設計要求的高質量軟件;具有工程師的實際工作能力和業務水平。
考試要求
(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其他數學基礎知識
◇常用數值計算
◇排列組合,概率論應用,應用統計(數據的統計分析)
◇編碼基礎
◇命題邏輯、謂詞邏輯、形式邏輯的基礎知識
◇運籌基本方法
2.計算機系統知識
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.系統開發和運行知識
3.1軟件工程知識
◇軟件生存周期與軟件生存周期模型
◇軟件開發方法
◇軟件開發項目管理
◇軟件開發工具與軟件開發環境
3.2系統分析基礎知識
◇系統分析的主要步驟
◇機構化分析方法
3.3系統設計基礎知識
◇概要設計與詳細設計的基本任務
◇系統設計的基本原理
◇系統模塊結構設計
◇結構化設計方法
◇面向數據結構的設計方法
◇系統詳細設計
3.4系統實施基礎知識
◇系統實施的基本内容
◇程序設計方法
◇程序設計的基本模塊
◇系統測試
◇系統轉換
3.5系統運行和維護基礎知識
◇系統可維護性的概念
◇系統維護的類型
◇系統評價的概念和類型
3.6軟件質量管理基礎知識
◇軟件質量特性(ISO/IEC9126軟件質量模型)
◇軟件質量保證
◇軟件複雜性的概念及度量方法(McCabe度量法)
◇軟件評審(設計質量評審、程序質量評審)
◇軟件容錯技術
3.7軟件過程改進基礎知識
◇軟件能力成熟度模型CMM
◇統一過程(UP)與極限編程(XP)的基本概念
4.面向對象基礎知識
◇面向對象的基本概念
◇面向對象分析與設計知識
◇分析模式與設計模式知識
◇面向對象程序設計知識
◇面向對象數據庫、分布式對象基礎知識
5.信息安全知識
◇信息系統安全基礎知識
◇信息系統安全管理
◇保障完整性與可用性的措施
◇加密與解密機制基礎知識
◇風險管理(風險分析、風險類型、抗風險措施和内部控制)
◇計算機安全相關的法律、法規基礎知識
6.标準化基礎知識
◇标準化意識,标準化組織機構,标準的内容、分類、代号與編号規定,标準制訂過程
◇國際标準、國家标準、行業标準、企業标準
◇代碼标準、文件格式标準、安全标準、互聯網相關标準、軟件開發規範和文檔标準、基于構件的軟件标準
6.2信息化基礎知識
◇全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
◇互聯網相關的法律、法規
◇個人信息保護規則
◇遠程教育、電子商務、電子政務等基礎知識
◇企業信息資源管理基礎知識
6.3知識産權基礎知識
◇保護知識産權有關的法律、法規
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. 編寫内部設計文檔
◇構件劃分圖、構件間的接口、構件處理說明
◇屏幕界面設計文檔、報表設計文檔、文件設計文檔、數據庫設計文檔
2.6内部設計的評審
3.數據庫應用分析與設計
◇設計關系模式
◇數據庫語言(SQL)
◇數據庫訪問
4.程序設計
4.1模塊劃分
4.2編寫程序設計文檔
4.3程序設計評審
5.系統實施
5.1配置計算機系統及環境
5.2選擇合适的程序設計語言
5.3用C程序設計語言以及C++、Java中的任一種程序設計語言進行程序設計
5.4系統測試
◇指導程序員進行模塊測試,并進行驗收
◇準備系統集成測試環境和測試工具
◇準備測試數據
◇寫出測試報告
6.軟件工程應用
6.1軟件開發周期模型
6.2需求分析
6.3軟件設計
◇軟件設計的基本原則
◇軟件設計方法
◇程序設計(結構化程序設計、面向對象程序設計)
6.4軟件測試的原則與方法
6.5軟件質量(軟件質量特性、軟件質量控制)
6.6軟件過程評估基本方法、軟件能力成熟度評估基本方法
6.7軟件開發環境和開發工具
6.8面向對象技術
◇面向構件技術
◇統一建模語言(UML)
◇軟件過程改進模型和方法
6.9網絡環境軟件技術
工作内容
軟件設計師的工作,受到系統架構師的影響。當系統架構師決定了整個系統架構後,軟件設計師會試着實作一個系統原型。
系統原型的目的,在驗證系統架構師提出的架構。當架構過于複雜,或開發成本過高時,軟件設計師必需要求系統架構師,修改提出的架構,因為在實務上,因為成本、技術等關系,是無法在經濟的狀況下達成。
軟件設計師,必需對軟件技術十分專長,也必需對客戶的需求有一定程度的了解。在系統原型中,軟件設計師會實作多個程式範型(Program Pattern),每個程式範型,對應到一種客戶需求的程式類型。
系統原型開發成功後,後續的團隊,就可以使用完成的程式範型,快速地将客戶的需求,轉化為系統程式。
日常工作
“軟件設計師”的概念,它與電子、機械、建築行業的設計師有着同樣的職責,可以隻輸出一種經過嚴格約束,并有着明顯業務領域特色的設計說明與流程,而交給别人去實現,達到了很高的軟件生産效率。
大多數企業隻是對“系統分析員”與“軟件工程師”做了明顯的界定,“系統分析員”的職責在不同的企業區别較大,其工作範圍涉及需求分析、功能設計、軟件結構設計、接口設計等内容,有相當部分的“系統分析員”要承擔一定程度的系統設計工作,但他們一般不參與編程與模塊詳細設計的工作;而絕大多數軟件工程師則同時承擔模塊詳細設計與編程的工作。
相關報道
1、據《每日電訊報》、《每日郵報》、《每日鏡報》3月12日報道,英國德文郡托特尼斯市的14歲男生阿龍·邦德堪稱是一名計算機神童,他早在8歲時就成立了自己的網頁公司,13歲時又為蘋果公司的iPhone手機編寫了多個遊戲軟件,成為“全歐最年輕的軟件設計師”,去年更獲美國蘋果公司邀請出席蘋果大會。但令人做夢也沒想到的是,本應前途無限阿龍不久前竟然利用他的計算機天賦充當一名“黑客”,悄悄入侵他所就讀的愛德華六世國王學院學校内部的計算機系統,并竊取了大量敏感資料!東窗事發後,顔面掃地的校方日前一怒之下宣布将阿龍開除出校。當昔日的“全歐最年輕的軟件設計師竟淪為“黑客”并被學校開除的消息曝光後,立即在英國引發軒然大波。
2、19歲的易巍是個腦癱兒,身體有缺陷,還有語言障礙。19年來,他從沒進過校門。憑着自學和不懈的鑽研,易巍成為衆人羨慕的電腦軟件設計師,并成功設計出五子棋遊戲軟件和腳本語言生成器軟件。