劉輝 牛振東
文章編號:1672-5913(2015)11-0025-03
中圖分類號:G642
摘要:專業(yè)學(xué)位教育是我國大力提倡的新興教育模式,其目的是針對行業(yè)的特定職業(yè)需求,培養(yǎng)具有專業(yè)能力的可以勝任目標(biāo)職業(yè)角色的高層次專門人才。碩士專業(yè)學(xué)位教育有別于學(xué)術(shù)型碩士教育,因此需要摸索出針對專業(yè)碩士的教育教學(xué)方法。文章闡述在軟件工程專業(yè)碩士核心課程軟件體系結(jié)構(gòu)教學(xué)中探索出的一套行之有效的碩士專業(yè)學(xué)位教學(xué)方法,介紹探索和實(shí)踐過程中的經(jīng)驗及教訓(xùn),為相關(guān)課程的教學(xué)改革提供借鑒。
關(guān)鍵詞:專業(yè)學(xué)位教育;實(shí)踐;軟件工程;體系結(jié)構(gòu)
0 引 言
專業(yè)學(xué)位是針對特定職業(yè)領(lǐng)域的需要,為培養(yǎng)具有較強(qiáng)專業(yè)能力和職業(yè)素養(yǎng)的高層次專門人才而設(shè)置的一種學(xué)位類型。雖然專業(yè)學(xué)位與學(xué)術(shù)學(xué)位培養(yǎng)的人才類型有所不同,但是二者不存在誰高誰低的問題,都處于同一層次。目前,我國已基本形成了以碩士學(xué)位為主,博士、碩士、學(xué)士3個學(xué)位層次并存的專業(yè)學(xué)位教育體系。
我國的專業(yè)學(xué)位教育尤其是碩士專業(yè)學(xué)位的教育迅猛發(fā)展。圖1所示為我國1996-2009年全國碩士專業(yè)學(xué)位授予人數(shù)的統(tǒng)計圖示。從圖中可見,專業(yè)碩士授予數(shù)量從1996年的0.03萬迅猛增長到2009年的11.74萬,13年間增長了390倍,年均增長率高達(dá)58%。2009年3月,教育部決定增招的碩士研究生名額全部用于招收應(yīng)屆畢業(yè)生攻讀碩士專業(yè)學(xué)位。2010年起,所有國務(wù)院批準(zhǔn)通過的碩士專業(yè)學(xué)位類別招生工作可納入全國碩士研究生統(tǒng)一招收安排,這標(biāo)志著我國碩士專業(yè)學(xué)位教育迎來了一個新的時期。
基于IT產(chǎn)業(yè)的迅猛發(fā)展及其對專業(yè)高級人才的強(qiáng)勁需求,軟件工程專業(yè)在工程碩士中非常受歡迎。然而,目前軟件工程中的許多專業(yè)課程(如軟件體系結(jié)構(gòu))沿用學(xué)術(shù)型學(xué)位教育的教學(xué)模式,不利于培養(yǎng)專業(yè)學(xué)位研究生的實(shí)踐動手能力。學(xué)生畢業(yè)后難以迅速進(jìn)入職業(yè)角色,往往需要一個較長時間的職位培訓(xùn),這也一定程度上影響了專業(yè)學(xué)位碩士畢業(yè)生的就業(yè)及職業(yè)前景。為了解決以上問題,我們需要對現(xiàn)有的教學(xué)模式進(jìn)行改革探索,堅持以實(shí)踐能力為核心,對專業(yè)課程的教學(xué)內(nèi)容、教學(xué)方法、考核方式和教學(xué)團(tuán)隊進(jìn)行改革探索,使之符合專業(yè)學(xué)位研究生的培養(yǎng)特征。
1 課程現(xiàn)狀
軟件體系結(jié)構(gòu)多年以來一直是全日制碩士專業(yè)學(xué)位研究生(計算機(jī)技術(shù)及軟件工程專業(yè))的核心課程,該課程的建設(shè)對培養(yǎng)專業(yè)碩士在大型軟件系統(tǒng)上的構(gòu)架能力、軟件系統(tǒng)評估能力等具有重要意義,是將碩士研究生的目標(biāo)職業(yè)從普通程序員提升至系統(tǒng)構(gòu)架師的核心課程。國內(nèi)外知名高校均已開設(shè)軟件體系結(jié)構(gòu)課程,國外的卡內(nèi)基·梅隆大學(xué)等在軟件工程領(lǐng)域處于領(lǐng)先地位的高校都將該課程作為核心課程進(jìn)行建設(shè);國內(nèi)的北京大學(xué)等亦將軟件體系結(jié)構(gòu)作為計算機(jī)技術(shù)及軟件工程領(lǐng)域碩士專業(yè)學(xué)位的核心課程。
相比于職業(yè)技術(shù)學(xué)院培養(yǎng)的程序員,計算機(jī)技術(shù)及軟件工程領(lǐng)域?qū)I(yè)碩士的核心競爭力主要表現(xiàn)為對大型軟件系統(tǒng)的架構(gòu)能力,具體包括對軟件系統(tǒng)結(jié)構(gòu)分析、設(shè)計和評估的能力。軟件體系結(jié)構(gòu)課程的主要目標(biāo)就是培養(yǎng)學(xué)生對軟件系統(tǒng)架構(gòu)進(jìn)行分析、設(shè)計和評估的能力,為其日后的職業(yè)生涯奠定基礎(chǔ)。我們的教學(xué)團(tuán)隊早在2004年便開始承擔(dān)該課程的教學(xué)任務(wù),建立了較為完備的教學(xué)大綱和教案,編寫、編譯了相關(guān)教材,設(shè)計了實(shí)踐性教學(xué)案例與教學(xué)環(huán)境。教學(xué)團(tuán)隊編譯的教材《軟件體系結(jié)構(gòu)》《UML用戶指南》等受到北京理工大學(xué)學(xué)生以及兄弟院校的廣泛歡迎和采用。采用啟發(fā)式教學(xué)與實(shí)踐性教學(xué)相結(jié)合的教學(xué)方法,可以使學(xué)生不僅理解相關(guān)的理論和技術(shù),而且掌握具體的應(yīng)用和操作方法,能夠收到良好的教學(xué)效果。采用雙語授課可以有效提高學(xué)生以英文為載體進(jìn)行專業(yè)知識學(xué)習(xí)和交流的能力,為專業(yè)碩士日后自主學(xué)習(xí)國際最新技術(shù)奠定堅實(shí)的基礎(chǔ)。相關(guān)經(jīng)驗總結(jié)參見課題組于2009年發(fā)表的教學(xué)改革論文。
軟件體系結(jié)構(gòu)課程前期的主要問題在于缺少企業(yè)專家的參與,缺乏學(xué)生能真正接觸到的大型企業(yè)軟件系統(tǒng)案例,為此教師需要引入相關(guān)企事業(yè)單位的高級企業(yè)專家參與授課,引入相關(guān)單位的真實(shí)案例以進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)興趣。此外,原有教學(xué)大綱主要來源于學(xué)術(shù)型碩士研究生的相關(guān)課程,不利于培養(yǎng)專業(yè)碩士的實(shí)踐動手能力,因此尚須完善教學(xué)內(nèi)容及考核方式,通過吸收工業(yè)實(shí)踐中用到的最新知識豐富教學(xué)大綱;轉(zhuǎn)變課程考核方式,重點(diǎn)考查學(xué)生分析問題和解決問題的能力。
2 課程建設(shè)
我們通過多年的摸索實(shí)踐,將軟件體系結(jié)構(gòu)碩士專業(yè)學(xué)位課程建設(shè)主要分為完善教學(xué)內(nèi)容與教學(xué)大綱、建設(shè)專業(yè)化教學(xué)團(tuán)隊、設(shè)計課程考核方式3方面。
1)完善教學(xué)內(nèi)容與教學(xué)大綱。
我們通過企業(yè)調(diào)研、專家研討等方式了解軟件架構(gòu)師所必需的理論知識與技術(shù)技能。調(diào)研結(jié)果表明,僅僅掌握基本的軟件體系結(jié)構(gòu)概念以及經(jīng)典的軟件體系結(jié)構(gòu)風(fēng)格是無法真正從事復(fù)雜軟件體系結(jié)構(gòu)建模與分析工作的,需要在實(shí)際應(yīng)用中對主流建模語言(unified modeling language,UML)、面向?qū)ο笤O(shè)計、設(shè)計模式、軟件開發(fā)過程等有較好的理解和把握,才能構(gòu)造和評估真正實(shí)用的軟件體系結(jié)構(gòu)。此外,一些老舊的知識如面向?qū)ο篌w系風(fēng)格、子程序/主程序結(jié)構(gòu)等要么因為已經(jīng)成為常識,要么因為已經(jīng)很少使用而沒有必要在課堂上進(jìn)行講授。最后,軟件體系結(jié)構(gòu)的形式化描述與驗證在企業(yè)中很少用到,可以從專業(yè)碩士的課程中移除以減少課程負(fù)擔(dān)。軟件體系結(jié)構(gòu)的形式化描述與驗證,在經(jīng)典軟件體系結(jié)構(gòu)課程中經(jīng)常作為重點(diǎn)和難點(diǎn)向?qū)W術(shù)型研究生講授是必需的,因為這是對軟件體系結(jié)構(gòu)進(jìn)行定量、自動化的科學(xué)分析的前提和基礎(chǔ);然而,對于專業(yè)碩士而言,教學(xué)的著重點(diǎn)是實(shí)用性,因此對于這部分教學(xué)困難而使用機(jī)會不多的內(nèi)容,可以大幅壓縮或者直接取消講授。
通過詳細(xì)對照課程知識點(diǎn)與軟件架構(gòu)師所需職業(yè)理論與技能,教師可分析和抽取該課程教學(xué)大綱尚未覆蓋的知識點(diǎn),刪除課程中某些陳舊或與培養(yǎng)目標(biāo)關(guān)系不大的知識點(diǎn),逐步完善教學(xué)大綱。新的教學(xué)大綱不但增添了新的實(shí)用知識點(diǎn),而且通過刪減部分內(nèi)容確保了教學(xué)工作量的穩(wěn)定。
2)建設(shè)專業(yè)化教學(xué)團(tuán)隊。
專業(yè)學(xué)位培養(yǎng)的是能快速應(yīng)用所學(xué)專業(yè)知識解決企業(yè)實(shí)際問題的高級專門人才,因此需要教師對工程實(shí)際問題有較為深入的理解,但是傳統(tǒng)上高校教師通常主要從事基礎(chǔ)理論研究,缺乏企業(yè)背景和實(shí)際開發(fā)經(jīng)驗。解決授課需求與教師背景之間不匹配問題最直接的方法,是引入具有豐富工程實(shí)踐經(jīng)驗的企事業(yè)專家進(jìn)行案例授課,而校內(nèi)教師主要負(fù)責(zé)基礎(chǔ)理論和基本概念的講授。
教學(xué)團(tuán)隊可與中國移動研究院、中國農(nóng)業(yè)科學(xué)研究院等建立全面的合作關(guān)系,聘請資深軟件專家加入教學(xué)團(tuán)隊。移動研究院的專家可結(jié)合其大型軟件系統(tǒng)“中國移動開放平臺OMP”講授軟件體系結(jié)構(gòu)的概念、風(fēng)格、設(shè)計方法和模式、評估等;農(nóng)科院專家可結(jié)合農(nóng)業(yè)信息采集與分析系統(tǒng)深入淺出地介紹軟件體系結(jié)構(gòu)的基本構(gòu)架模型、描述方法、設(shè)計中的主要影響因素等。此外,教師還可利用企事業(yè)單位的真實(shí)軟件體系結(jié)構(gòu)及其演化歷史作為教學(xué)案例,強(qiáng)調(diào)教學(xué)案例的分析與討論;對每個教學(xué)案例,分組討論其體系結(jié)構(gòu)的主要特色、體系結(jié)構(gòu)風(fēng)格的決策過程、體系結(jié)構(gòu)對軟件性能與軟件演化的影響等,引導(dǎo)學(xué)生利用軟件體系結(jié)構(gòu)知識分析和理解實(shí)際應(yīng)用中軟件體系結(jié)構(gòu)分析、設(shè)計、評估的主要過程與方法,大幅提高學(xué)生的學(xué)習(xí)積極性以及對實(shí)際問題的分析解決能力。
3)設(shè)計課程考核方式。
教師需轉(zhuǎn)變課程考核方式,主要考查學(xué)生的實(shí)踐能力以及對軟件體系結(jié)構(gòu)核心概念與主要理論的理解和應(yīng)用能力;以考查學(xué)生分析、設(shè)計和評估軟件體系結(jié)構(gòu)的能力為核心,設(shè)計難度適中的實(shí)踐性大作業(yè)作為課程考核的主要方式,同時適當(dāng)輔以理論考試,考查學(xué)生對課程核心概念和核心理論的掌握程度。
教學(xué)團(tuán)隊設(shè)計了一個基于UML建模工具的大作業(yè),要求學(xué)生根據(jù)給定的軟件需求設(shè)計最佳的軟件體系結(jié)構(gòu)。為了突出軟件體系結(jié)構(gòu)不斷演化的特性,教師可將大作業(yè)的需求分成兩個階段,分兩次發(fā)給學(xué)生以模擬真實(shí)環(huán)境下不斷變更的軟件需求。學(xué)生不僅要給出最終的設(shè)計結(jié)果,還必須對軟件體系結(jié)構(gòu)的總體構(gòu)架和風(fēng)格作出解釋,說明其設(shè)計的合理性;此外,對設(shè)計過程中的每個決策都要給出決策的依據(jù)。
圖2所示為學(xué)生設(shè)計的一個優(yōu)秀案例。該案例充分考慮了UML元素需要逐漸演化的需求,通過多態(tài)(繼承)很好地滿足了系統(tǒng)的可擴(kuò)展性;此外,該設(shè)計利用經(jīng)典的MVC結(jié)構(gòu)合理地解決了圖形界面與文檔元素的分離問題。
最后的理論考試則完全以軟件體系結(jié)構(gòu)的概念和理論為考核要點(diǎn),不再結(jié)合案例進(jìn)行考核??紤]到專業(yè)碩士的培養(yǎng)目標(biāo)是解決工程項目中的實(shí)際問題,因此我們在課程考核中以大作業(yè)考核為主(占總成績的2/3),以理論考試為輔(占總成績的1/3);此外,理論考試難度相比學(xué)術(shù)型碩士相關(guān)課程有所降低,保證學(xué)生有足夠的精力投入到實(shí)踐動手能力培養(yǎng)中。
3 結(jié)語
針對碩士專業(yè)學(xué)位的特殊性,我們對軟件工程專業(yè)的核心課程軟件體系結(jié)構(gòu)進(jìn)行了改革探索并取得了一定的成效。課程改革的重點(diǎn)在于:根據(jù)企業(yè)需求和學(xué)科發(fā)展前沿調(diào)整教學(xué)大綱;引入企業(yè)專家以加強(qiáng)案例教學(xué);調(diào)整課程考核方式以加強(qiáng)學(xué)生實(shí)踐動手能力的培養(yǎng)。經(jīng)過幾年的改革和探索,該課程的教學(xué)質(zhì)量明顯提高,其改革實(shí)踐也對其他專業(yè)碩士課程具有一定的借鑒意義。