李麗
摘 要: 軟件設(shè)計(jì)師考試是計(jì)算機(jī)技術(shù)與軟件技術(shù)考試的中級(jí)資格考試,把軟件設(shè)計(jì)師考試與計(jì)算機(jī)專(zhuān)業(yè)教學(xué)靈活地結(jié)合起來(lái)可以拓寬在校大學(xué)生的發(fā)展空間。基于參加2013年下半年軟件設(shè)計(jì)師考試的經(jīng)歷,總結(jié)出了一些應(yīng)對(duì)軟件設(shè)計(jì)師考試的方法,并將這些方法融入計(jì)算機(jī)專(zhuān)業(yè)課程的教學(xué)。將軟件設(shè)計(jì)師考試的知識(shí)點(diǎn),特別是常見(jiàn)的設(shè)計(jì)模式引入實(shí)際的教學(xué)中取得了一定的成果。
關(guān)鍵詞: 軟件設(shè)計(jì)師考試; 計(jì)算機(jī)專(zhuān)業(yè); 教學(xué); 設(shè)計(jì)模式
中圖分類(lèi)號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)05-50-02
Abstract: The test of software designers is the intermediate qualification certificate test of national computer technology test (software designer). Combining the test with computer professional teaching flexibly can broaden the development space of college students. In this paper, based on the author's experience in the software designer examination in 2013, some methods to pass the examination are summarized. The methods are integrated into computer science courses. Integrating the knowledge of the test, especially common design pattern, into the practical teaching has made some achievements.
Key words: the test of software designers; computer science; teaching; design patterns
0 引言
軟件設(shè)計(jì)師考試是計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格水平考試的中級(jí)資格考試,該考試在計(jì)算機(jī)領(lǐng)域具有權(quán)威性。在校大學(xué)生通過(guò)報(bào)考、復(fù)習(xí)、應(yīng)考軟件設(shè)計(jì)師資格,在一定程度上可以拓寬他們的專(zhuān)業(yè)知識(shí)領(lǐng)域,提高他們的實(shí)踐能力。在當(dāng)前就業(yè)難的形勢(shì)下,擁有軟件設(shè)計(jì)師資格證書(shū)的大學(xué)畢業(yè)生能跨過(guò)某些就業(yè)考試的門(mén)檻,抓住工作機(jī)會(huì),獲得更好的發(fā)展。筆者有軟件設(shè)計(jì)師考試的經(jīng)歷,總結(jié)出了一些應(yīng)對(duì)軟件設(shè)計(jì)師考試的方法,以期在以后的計(jì)算機(jī)專(zhuān)業(yè)課的教學(xué)過(guò)程中融合軟件設(shè)計(jì)師知識(shí)點(diǎn)進(jìn)行教學(xué),以考促教,同時(shí)也希望這些方法能夠?qū)?bào)考2014年上半年軟件設(shè)計(jì)師的在校考生有一定的參考價(jià)值,使他們更有效地進(jìn)行復(fù)習(xí),順利地通過(guò)軟件設(shè)計(jì)師考試。
1 迎戰(zhàn)軟件設(shè)計(jì)師
為了能夠更好地把握軟件設(shè)計(jì)師的考核知識(shí)點(diǎn),以便將來(lái)能夠更靈活地將其融入計(jì)算機(jī)相關(guān)專(zhuān)業(yè)課程的教學(xué)中,筆者與本學(xué)院軟件工程專(zhuān)業(yè)大三的一些學(xué)生一起參加了2013年下半年的軟件設(shè)計(jì)師考試,獲得了較好的通過(guò)率,總結(jié)下來(lái),我們作了以下幾個(gè)方面的努力。
1.1 堅(jiān)定信念
報(bào)名之后,因?yàn)榉N種原因,考生可能會(huì)缺乏自信心,不知從何下手。此時(shí),考生要自我鼓勵(lì),堅(jiān)定考試的信心;然后,參考自身以往類(lèi)似成功的經(jīng)驗(yàn),選擇一些適合自己的復(fù)習(xí)方法;接著,根據(jù)剩余的時(shí)間做好全面的復(fù)習(xí)計(jì)劃。例如,瀏覽所在地的軟考網(wǎng)及相關(guān)的權(quán)威網(wǎng)站、逛51CTO論壇、看上學(xué)吧、咨詢(xún)前輩等等。自從有了最新的2013版的軟件設(shè)計(jì)師考試大綱以來(lái),我們需關(guān)注2009年以后的相關(guān)消息,較好的網(wǎng)站有中國(guó)計(jì)算機(jī)技術(shù)職業(yè)資格網(wǎng)http://www.rkb.gov.cn/。因?yàn)橛醒芯堪l(fā)現(xiàn)軟件設(shè)計(jì)師的歷年考試內(nèi)容比較穩(wěn)定,所以歷年的真題非常重要,考生必須要融會(huì)貫通歷年真題。
1.2 兩輪復(fù)習(xí)
收集最新版的考試大綱[1]、命題組指定教程[2]、歷年真題[3]、模擬練習(xí)試卷等資料,通過(guò)練習(xí)促進(jìn)復(fù)習(xí)。第一輪,對(duì)照大綱,通過(guò)做各章節(jié)的真題和模擬題來(lái)促進(jìn)對(duì)新知識(shí)、新考核知識(shí)點(diǎn)的學(xué)習(xí)。筆者先了解了大綱中標(biāo)注的知識(shí)點(diǎn),再做此章節(jié)練習(xí),遇到不懂的翻看指定教程和相應(yīng)的真題精解。先易后難,查缺補(bǔ)漏。有些題目各種參考書(shū)的答案不統(tǒng)一,始終沒(méi)有辦法理解的,要請(qǐng)教其他同學(xué)或相應(yīng)課程的任課教師。因?yàn)檐浖O(shè)計(jì)師考核的知識(shí)面很廣,考查掌握和運(yùn)用基礎(chǔ)知識(shí)的情況,所以一定要吃透各章節(jié)的考核要點(diǎn)。考慮到自己以前考試時(shí)復(fù)習(xí)過(guò)軟件工程、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)、專(zhuān)業(yè)英語(yǔ),對(duì)于上午試題本人花了更多的時(shí)間復(fù)習(xí)計(jì)算機(jī)組成、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)等。例如UML序列圖的過(guò)程調(diào)用、消息返回、對(duì)象應(yīng)實(shí)現(xiàn)的方法,UML活動(dòng)圖同時(shí)運(yùn)行的最大線(xiàn)程數(shù),IPV4、IPV6,多個(gè)矩陣相乘的動(dòng)態(tài)規(guī)劃算法等,大家認(rèn)為有疑問(wèn)的問(wèn)題都在章節(jié)要點(diǎn)練習(xí)之后逐一討論解決并做好筆記。考慮到本人以前做畢業(yè)論文時(shí)使用過(guò)數(shù)據(jù)流圖和數(shù)據(jù)庫(kù)設(shè)計(jì),對(duì)于下午試題花了更多的時(shí)間復(fù)習(xí)面向?qū)ο蠛蚒ML、數(shù)據(jù)結(jié)構(gòu)中的算法、程序設(shè)計(jì)題(C++和Java選做)。例如背包問(wèn)題、裝箱問(wèn)題、回溯問(wèn)題、不常見(jiàn)的設(shè)計(jì)模式等邏輯性較強(qiáng)的問(wèn)題都是在其他問(wèn)題練習(xí)之后再逐一討論解決的并做好筆記。討論時(shí),為了培養(yǎng)自己靈活運(yùn)用基礎(chǔ)知識(shí)解決實(shí)際問(wèn)題的能力,看一些結(jié)合實(shí)際的書(shū),如《大話(huà)設(shè)計(jì)模式》等。第二輪,通過(guò)做歷年真題試卷和模擬試卷來(lái)鞏固對(duì)考核知識(shí)點(diǎn)的把握。在模擬考試的過(guò)程中,根據(jù)考核的知識(shí)點(diǎn)繪制知識(shí)結(jié)構(gòu)圖,強(qiáng)化記憶。按照考試時(shí)間提前一周反復(fù)演練,提高自己分析問(wèn)題、解決問(wèn)題的能力。
1.3 檢測(cè)自我
有些題目雖然我們會(huì)經(jīng)常做但就是認(rèn)識(shí)模糊,例如軟件成熟度模型CMM、動(dòng)態(tài)規(guī)劃算法、狀態(tài)設(shè)計(jì)模式和裝飾器設(shè)計(jì)模式等。要找出這類(lèi)薄弱環(huán)節(jié),進(jìn)行再測(cè)試再理解。
1.4 從容應(yīng)戰(zhàn)
考前調(diào)整好身體狀況,應(yīng)考時(shí)認(rèn)真審題,先易后難。在2013年下半年軟件設(shè)計(jì)師考試下午試題的試卷內(nèi)容中,比以往多了幾個(gè)小的問(wèn)答題,這就要求考生進(jìn)行全面的分析解答,以確保回答要點(diǎn)的完整性。
2 將軟件設(shè)計(jì)師考試融入計(jì)算機(jī)專(zhuān)業(yè)教學(xué)
在參加軟件設(shè)計(jì)師考試之前,筆者承擔(dān)了軟件結(jié)構(gòu)與設(shè)計(jì)這門(mén)課程的教學(xué),學(xué)生普遍認(rèn)為此課程的理論課過(guò)于抽象,對(duì)此,王春林老師提出“以活動(dòng)來(lái)培養(yǎng)興趣”、“以考促學(xué)”、“以信息系統(tǒng)開(kāi)發(fā)和設(shè)計(jì)來(lái)積累經(jīng)驗(yàn)”等方案來(lái)對(duì)學(xué)生進(jìn)行有效的培養(yǎng)[4]。筆者覺(jué)得如果自己能夠把軟件設(shè)計(jì)師的一部分實(shí)例作為學(xué)生學(xué)習(xí)這門(mén)課的興趣點(diǎn),并結(jié)合“以考促學(xué)”,那么學(xué)生學(xué)習(xí)的效果應(yīng)該會(huì)更好一些。例如上午試題的B/S、C/S、MVC、CORBA、Web服務(wù)等常見(jiàn)的軟件體系結(jié)構(gòu)風(fēng)格,下午試題的抽象工廠(chǎng)、策略、組合、觀察者、狀態(tài)等常見(jiàn)的設(shè)計(jì)模式。對(duì)于對(duì)以后此門(mén)課程的教學(xué),本人準(zhǔn)備先講解課本上的基本知識(shí)點(diǎn),然后結(jié)合經(jīng)典案例和相關(guān)的真題案例,進(jìn)行軟件設(shè)計(jì),最后選取某個(gè)典型的信息系統(tǒng)進(jìn)行綜合性的應(yīng)用設(shè)計(jì)。在使用講授法對(duì)知識(shí)點(diǎn)進(jìn)行講解的過(guò)程中,結(jié)合案例教學(xué)法和任務(wù)驅(qū)動(dòng)法,補(bǔ)充更多的圖示、數(shù)據(jù)、案例、軟件設(shè)計(jì)師考題等相關(guān)材料。
2.1 軟件體系結(jié)構(gòu)和設(shè)計(jì)模式
軟件體系結(jié)構(gòu)是軟件的總體框架,就好比建造房屋風(fēng)格的選擇。在軟件開(kāi)發(fā)過(guò)程中,須考慮使用何種體系結(jié)構(gòu)才能保證系統(tǒng)的易修改性,每種應(yīng)用領(lǐng)域到底需要什么樣的構(gòu)件,構(gòu)件怎樣設(shè)計(jì)才能保證搭配的合理性,以及構(gòu)件如何修改才能保證這個(gè)系統(tǒng)框架不受影響等。多年來(lái)總結(jié)出了許多成熟的軟件體系結(jié)構(gòu)風(fēng)格,其中:兩層C/S是一種胖客戶(hù)機(jī)——瘦服務(wù)器的工作模型,客戶(hù)機(jī)側(cè)重?cái)?shù)據(jù)的顯示和分析,服務(wù)器側(cè)重?cái)?shù)據(jù)的管理;B/S是三層C/S體系結(jié)構(gòu)的一種實(shí)現(xiàn)方式,主要利用了WWW技術(shù),結(jié)合瀏覽器的多腳本語(yǔ)言,使系統(tǒng)的安裝、修改、維護(hù)都在Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器上進(jìn)行,是“零客戶(hù)端”的運(yùn)作模式;MVC提供了一個(gè)結(jié)構(gòu),用于交互應(yīng)用程序的用戶(hù)界面的裁剪[5]。例如2013年下半年的上午題:POP3采用C/S模式,當(dāng)客戶(hù)機(jī)需要接受電子郵件服務(wù)時(shí),客戶(hù)端軟件(Outlook Express)與POP3服務(wù)器建立TCP連接。POP3是一種規(guī)定怎樣將個(gè)人計(jì)算機(jī)連接到Internet的郵件服務(wù)器和下載電子郵件的電子協(xié)議,是因特網(wǎng)電子郵件的第一個(gè)離線(xiàn)標(biāo)準(zhǔn)。POP3允許用戶(hù)把服務(wù)器上的郵件存儲(chǔ)到本地主機(jī),同時(shí)刪除先前保存在郵件服務(wù)器上的郵件。POP3服務(wù)器是遵循POP3協(xié)議的郵件接收服務(wù)器,是用于接收電子郵件的。
使用規(guī)范化的軟件體系結(jié)構(gòu)描述來(lái)描述系統(tǒng)構(gòu)件之間的接口,可以幫助設(shè)計(jì)師完成設(shè)計(jì)工作。常常使用UML來(lái)描述軟件體系結(jié)構(gòu)。UML通過(guò)提供一些圖(用例圖、類(lèi)圖、順序圖、活動(dòng)圖等),使得可以通過(guò)多個(gè)視圖從不同角度來(lái)描述一個(gè)系統(tǒng)。有時(shí),某些對(duì)象具有生命周期,它們對(duì)應(yīng)于軟件的功能需求是非常重要的,但它們卻很復(fù)雜,這就需要我們能夠經(jīng)常跟蹤其狀態(tài)的變化。例如2013年下半年的下午試題之UML:狀態(tài)圖。在設(shè)計(jì)軟件體系結(jié)構(gòu)時(shí),可以使用一些設(shè)計(jì)模式(創(chuàng)建型設(shè)計(jì)模式、結(jié)構(gòu)型設(shè)計(jì)模式、行為性設(shè)計(jì)模式),來(lái)幫助設(shè)計(jì)師選擇可使系統(tǒng)重用的設(shè)計(jì)方案。而當(dāng)我們使用領(lǐng)域驅(qū)動(dòng)和用例驅(qū)動(dòng)的方法在構(gòu)造軟件體系結(jié)構(gòu)時(shí)都用到了領(lǐng)域模型[6]。領(lǐng)域建模(概念模型)顯示最重要的業(yè)務(wù)概念和它們之間的關(guān)系的類(lèi)圖。例如2013年下半年的上午試題之軟件工程:領(lǐng)域模型通常不包含操作。領(lǐng)域模型是真實(shí)世界的各個(gè)事物的表示,而不是軟件中各構(gòu)件的表示。領(lǐng)域模型是現(xiàn)實(shí)世界的一個(gè)可視化抽象字典,是沒(méi)有方法的類(lèi)圖的集合。
3 結(jié)束語(yǔ)
2013年下半年全國(guó)計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格(水平)考試第一次實(shí)行全國(guó)統(tǒng)一改卷,對(duì)考生做答下午試題的要求更高了。要想在軟件設(shè)計(jì)師考試中取得較滿(mǎn)意的成績(jī),我們應(yīng)該在備考中堅(jiān)定信心,堅(jiān)持不懈地努力復(fù)習(xí),參照考試大綱,邊練習(xí)邊歸納知識(shí)點(diǎn),在應(yīng)考時(shí)從容不迫,認(rèn)真審題和答題。雖然在軟件結(jié)構(gòu)與設(shè)計(jì)和軟件需求工程課程的教學(xué)中適當(dāng)?shù)貞?yīng)用了軟件設(shè)計(jì)師考試中的設(shè)計(jì)模式、DFD和UML,并取得了較為滿(mǎn)意的效果,但是要想更靈活地將其融入到計(jì)算機(jī)專(zhuān)業(yè)課程體系中,還有待提高我們自身的專(zhuān)業(yè)素養(yǎng)。
參考文獻(xiàn):
[1] 全國(guó)計(jì)算機(jī)專(zhuān)業(yè)技術(shù)資格考試辦公室.軟件設(shè)計(jì)師考試大綱與培訓(xùn)
指南[M].清華大學(xué)出版社,2013.
[2] 胡圣明.軟件設(shè)計(jì)師教程(第三版)[M].清華大學(xué)出版社,2009.
[3] 軟件設(shè)計(jì)師——3年真題精解與實(shí)戰(zhàn)模擬[M].清華大學(xué)出版社,
2013.
[4] 王春林.計(jì)算機(jī)與“軟考”結(jié)合培養(yǎng)的探索[J].楚雄師范學(xué)院學(xué)報(bào),
2010.25(6):5-8
[5] 張春祥.軟件體系結(jié)構(gòu)理論與實(shí)踐[M].中國(guó)電力出版社,2011.
[6] 付燕.軟件體系結(jié)構(gòu)實(shí)用教程[M].西安電子科技大學(xué)出版社,2009.