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