全國(guó)計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試,簡(jiǎn)稱“軟考”,其中中級(jí)資格的軟件設(shè)計(jì)師是面向軟件工程開發(fā)領(lǐng)域的重要認(rèn)證。該考試旨在評(píng)估考生是否具備扎實(shí)的軟件工程基礎(chǔ)理論、系統(tǒng)化的分析設(shè)計(jì)能力和規(guī)范的開發(fā)實(shí)踐知識(shí)。考試分為上午的基礎(chǔ)知識(shí)和下午的應(yīng)用技術(shù)兩個(gè)科目。
一、上午考試:基礎(chǔ)知識(shí)(選擇題)
考試形式為75道單項(xiàng)選擇題,涵蓋知識(shí)面廣,要求考生對(duì)軟件工程有全面的理解。主要知識(shí)點(diǎn)包括:
- 計(jì)算機(jī)系統(tǒng)知識(shí):計(jì)算機(jī)組成、體系結(jié)構(gòu)(如Flynn分類法)、存儲(chǔ)系統(tǒng)、可靠性計(jì)算、校驗(yàn)碼等。
- 程序語(yǔ)言與語(yǔ)言處理程序基礎(chǔ):編譯與解釋、文法、正規(guī)式、有限自動(dòng)機(jī)、語(yǔ)法和語(yǔ)義分析。
- 數(shù)據(jù)結(jié)構(gòu)與算法:重點(diǎn)與難點(diǎn)。包括線性表、棧、隊(duì)列、樹與二叉樹、圖、查找(哈希表等)、排序(各類排序算法的復(fù)雜度與穩(wěn)定性)以及算法設(shè)計(jì)與分析(分治、動(dòng)態(tài)規(guī)劃、貪心、回溯等)。
- 操作系統(tǒng):進(jìn)程管理(PV操作、死鎖)、存儲(chǔ)管理、文件管理、設(shè)備管理。
- 軟件工程基礎(chǔ):核心內(nèi)容。軟件過程模型(瀑布、迭代、增量、敏捷等)、需求分析、系統(tǒng)設(shè)計(jì)(結(jié)構(gòu)化設(shè)計(jì)與面向?qū)ο笤O(shè)計(jì))、軟件測(cè)試(方法、用例、階段)、軟件維護(hù)、軟件質(zhì)量保證、軟件項(xiàng)目管理(估算、進(jìn)度、風(fēng)險(xiǎn))。
- 面向?qū)ο蠹夹g(shù):核心內(nèi)容。面向?qū)ο蠡靖拍睢ML各類圖(用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖等)、設(shè)計(jì)模式(23種經(jīng)典模式的意圖與結(jié)構(gòu))。
- 數(shù)據(jù)庫(kù)系統(tǒng):E-R模型、關(guān)系代數(shù)、規(guī)范化理論(鍵與范式)、SQL語(yǔ)言、并發(fā)控制。
- 計(jì)算機(jī)網(wǎng)絡(luò):OSI/RM與TCP/IP體系結(jié)構(gòu)、網(wǎng)絡(luò)設(shè)備、IP地址、常用協(xié)議(HTTP, FTP, DNS等)、網(wǎng)絡(luò)安全基礎(chǔ)。
- 信息安全與標(biāo)準(zhǔn)化:加密解密技術(shù)、數(shù)字簽名、訪問控制、常見攻擊方式、軟件能力成熟度模型(CMM/CMMI)、知識(shí)產(chǎn)權(quán)保護(hù)。
- 多媒體基礎(chǔ)與數(shù)學(xué):多媒體基本概念、計(jì)算問題相關(guān)的離散數(shù)學(xué)、程序設(shè)計(jì)語(yǔ)言基礎(chǔ)。
二、下午考試:應(yīng)用技術(shù)(問答題)
考試形式為6道大題(通常為4道必答題+2道選答題),側(cè)重考查分析和設(shè)計(jì)能力。主要題型與知識(shí)點(diǎn)包括:
- 數(shù)據(jù)流圖(DFD)設(shè)計(jì)與分析:補(bǔ)充外部實(shí)體、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流,指出設(shè)計(jì)錯(cuò)誤。考查結(jié)構(gòu)化分析方法。
- 數(shù)據(jù)庫(kù)設(shè)計(jì):補(bǔ)充E-R圖、關(guān)系模式,指出邏輯結(jié)構(gòu)設(shè)計(jì)問題,編寫SQL查詢。
- UML建模:重中之重。通常給出一個(gè)系統(tǒng)描述,要求補(bǔ)充用例圖、類圖、狀態(tài)圖、序列圖等中的元素,或識(shí)別設(shè)計(jì)模式。
- 算法設(shè)計(jì)與C語(yǔ)言實(shí)現(xiàn):閱讀算法說明和C代碼,填空(補(bǔ)充關(guān)鍵代碼段)。常考經(jīng)典算法,如動(dòng)態(tài)規(guī)劃、回溯、貪心、查找排序的變種等。
- 面向?qū)ο蟪绦蛟O(shè)計(jì)(Java/C++選考):二選一。閱讀程序說明和代碼,填空補(bǔ)充設(shè)計(jì)模式實(shí)現(xiàn)、類定義、方法體等,考查面向?qū)ο缶幊毯驮O(shè)計(jì)模式的應(yīng)用。
備考建議
- 緊扣大綱:以上內(nèi)容均基于官方考試大綱,備考時(shí)應(yīng)以最新大綱為準(zhǔn)。
- 均衡發(fā)力:上午題需廣泛涉獵,理解記憶;下午題需深度練習(xí),掌握解題套路,尤其是數(shù)據(jù)流圖、UML和算法題。
- 真題為王:歷年真題是最好的復(fù)習(xí)資料,通過反復(fù)練習(xí)真題可以熟悉題型、把握重點(diǎn)和出題思路。
- 注重實(shí)踐:對(duì)于設(shè)計(jì)模式和算法,在理解理論的基礎(chǔ)上,嘗試動(dòng)手編寫代碼,能加深印象。
軟件設(shè)計(jì)師考試是對(duì)軟件工程理論知識(shí)與實(shí)踐能力的綜合考察,系統(tǒng)性地學(xué)習(xí)和持續(xù)的練習(xí)是通過考試的關(guān)鍵。