余久久,張佑生
(安徽三聯(lián)學(xué)院 計算機(jī)科學(xué)與技術(shù)系,安徽 合肥 230601)
軟件工程是在工科類高等院校計算機(jī)及相關(guān)專業(yè)高年級學(xué)生中開設(shè)的一門重要的專業(yè)必修課程,是指導(dǎo)軟件開發(fā)與維護(hù)的一門綜合性課程,也是一門實踐性很強(qiáng)的課程[1].課程的實踐教學(xué)內(nèi)容要求學(xué)生不僅了解軟件工程的基本理論,更要掌握現(xiàn)代軟件開發(fā)的技術(shù)和方法,開發(fā)過程中所涉及到的各種軟件工具的使用、以及軟件測試與管理技術(shù)等.培養(yǎng)出具有計算機(jī)軟件開發(fā)能力、軟件工程管理能力、能夠在軟件領(lǐng)域中從事需求分析、設(shè)計、開發(fā)、測試、實施和管理等工作的高素質(zhì)工程類應(yīng)用型人才,要求學(xué)生具備作為軟件工程師所需的專業(yè)能力及職業(yè)素養(yǎng),為今后從事計算機(jī)軟件開發(fā)和維護(hù)提供方法上的指導(dǎo)[2].由于軟件工程課程的實踐教學(xué)內(nèi)容還涉及到眾多其它領(lǐng)域的知識,如管理學(xué)、心理學(xué)、經(jīng)濟(jì)學(xué)、人機(jī)工程學(xué)等,因此本課程已經(jīng)由最初的一門課程發(fā)展成為以計算機(jī)科學(xué)技術(shù)為基礎(chǔ)的交叉學(xué)科,在當(dāng)今的信息社會中占有重要地位.
針對應(yīng)用型本科計算機(jī)專業(yè)的學(xué)生,應(yīng)該將課程教學(xué)定位在兩個方面[3,4]:一是從軟件生命周期的角度,讓學(xué)生在實踐學(xué)習(xí)過程中了解軟件工程的基本概念、基本原理和軟件開發(fā)的基本方法;二是從應(yīng)用型本科高校人才培養(yǎng)目標(biāo)出發(fā),從工程應(yīng)用的角度,使學(xué)生掌握軟件的系統(tǒng)性與規(guī)范化的最新開發(fā)流程或技術(shù).結(jié)合應(yīng)用型本科計算機(jī)專業(yè)的人才培養(yǎng)目標(biāo),軟件工程課程的教學(xué)過程應(yīng)既重視理論知識以及分析問題、解決問題的方法的傳授,又要重視工程實踐與技能應(yīng)用能力的培養(yǎng).教學(xué)目標(biāo)是使學(xué)生掌握軟件需求分析、概要和詳細(xì)設(shè)計及軟件測試與維護(hù)等內(nèi)容,采用工程化的原則、開發(fā)方法與技術(shù)來實現(xiàn)中、小規(guī)模信息系統(tǒng)的開發(fā)與管理[5].同時培養(yǎng)學(xué)生的操作技能、團(tuán)隊協(xié)作能力、分析與解決問題、談判與溝通、創(chuàng)新與發(fā)展等多方面能力,為將來從事大型軟件系統(tǒng)的開發(fā)與維護(hù)打下扎實的基礎(chǔ).
鑒于課程強(qiáng)調(diào)學(xué)生動手能力及培養(yǎng)其分析、解決實際問題能力,大多數(shù)教師往往依據(jù)學(xué)生現(xiàn)有的知識結(jié)構(gòu),課堂教學(xué)聯(lián)系實際案例,較多采取案例教學(xué)或項目實踐的教學(xué)方式.但是從實際教學(xué)效果來看,教學(xué)效果一般.學(xué)生沒有表現(xiàn)出濃厚的學(xué)習(xí)興趣,實際動手能力也沒有得到顯著提高.作者基于近幾年該課程實際教學(xué)經(jīng)驗,認(rèn)為該課程在教學(xué)過程中主要存在以下幾個問題:
隨著軟件開發(fā)新技術(shù)、新工具、新方法的不斷涌現(xiàn),基于構(gòu)件的軟件開發(fā)思想、安卓平臺下開發(fā)軟件的過程、軟件逆向工程以及軟件二次架構(gòu)等內(nèi)容已成為當(dāng)前學(xué)科領(lǐng)域的主流[6].可是目前針對軟件工程課程的主要教學(xué)內(nèi)容仍然以傳統(tǒng)的結(jié)構(gòu)化開發(fā)方法為主,嚴(yán)重脫離實際.不少教師仍然指導(dǎo)學(xué)生選擇傳統(tǒng)的瀑布開發(fā)模型對單機(jī)版的軟件進(jìn)行開發(fā)講解作為教學(xué)案例或?qū)嵺`項目,然而這些案例已隨著web時代的到來逐步退出舞臺[7].尤其是學(xué)生在實踐環(huán)節(jié)中接觸到的是逐步被淘汰的內(nèi)容,與當(dāng)前軟件產(chǎn)業(yè)技術(shù)發(fā)展嚴(yán)重脫節(jié),學(xué)非所用.
由于軟件工程的實踐性很強(qiáng),實踐教學(xué)時一般需要輔以規(guī)模適中、可操作性強(qiáng)的案例作為教學(xué)載體.如果案例選擇不恰當(dāng),教學(xué)效果肯定不好.即使很多教師意識到這一點,但是在指導(dǎo)實踐教學(xué)過程中,因自身缺少實際項目的開發(fā)與管理經(jīng)驗,未能結(jié)合學(xué)生自身認(rèn)知特點對所選擇的教學(xué)案例進(jìn)行過適用性調(diào)研.導(dǎo)致對案例的選取要么學(xué)生對其業(yè)務(wù)背景不熟悉(如業(yè)務(wù)背景深奧的金融領(lǐng)域類軟件),或案例過于簡單(如簡單的加減乘除功能的簡單計算器程序等).從學(xué)生的角度來看,由于自身尚處在學(xué)校學(xué)習(xí)階段,缺乏實際企業(yè)級項目的實習(xí)或?qū)嵱?xùn)經(jīng)歷,對業(yè)務(wù)背景復(fù)雜的項目往往在有限的時間內(nèi)無法完成,從而降低學(xué)習(xí)興趣.雖然小型項目可以直接進(jìn)行編碼實現(xiàn),卻不清楚為什么要進(jìn)行可行性研究、需求分析與程序測試等一系列軟件項目運作流程.此外,由于很多教師缺少實際案例或項目的完整開發(fā)流程的經(jīng)歷,在實踐教學(xué)中出現(xiàn)選擇項目案例前后不連貫情況.例如,軟件的可行性分析階段選用A系統(tǒng)作為案例,需求分析卻用B系統(tǒng),設(shè)計與編碼階段又選用C系統(tǒng),測試與維護(hù)最終又選用D系統(tǒng)等現(xiàn)象.未能把一個完整的實踐案例貫穿軟件開發(fā)歷經(jīng)的全部流程展示給學(xué)生.導(dǎo)致學(xué)生對軟件項目的運作流程不能建立起完整概念,缺乏對所學(xué)知識的整體認(rèn)識.所以,如何在實踐教學(xué)環(huán)節(jié)中選擇應(yīng)用領(lǐng)域為學(xué)生所熟知、實施難度適中的完整實踐案例,自始自終貫穿于現(xiàn)代軟件項目生命周期的全過程是課程實踐教學(xué)環(huán)節(jié)中需要思考的問題.
由于高校教師大都長期從事教學(xué)活動,缺乏軟件工程領(lǐng)域?qū)嶋H項目經(jīng)驗.不僅對企業(yè)實際環(huán)境下真實的軟件項目運作方式不了解,更沒有深入企業(yè)一線對軟件開發(fā)過程中所歷經(jīng)的需求分析、系統(tǒng)設(shè)計、編碼實現(xiàn)、測試與維護(hù)等流程,以及在各階段需要使用到的各類開發(fā)、管理工具與相應(yīng)開發(fā)環(huán)境配置等內(nèi)容進(jìn)行過實際操作[8,9].導(dǎo)致實踐教學(xué)(含實驗、實訓(xùn)、課程設(shè)計等)中不重視學(xué)生工程化思想的培養(yǎng),缺少對學(xué)生工程能力和職業(yè)素質(zhì)的訓(xùn)練,也不能及時解決學(xué)生在實踐過程中所遇到的各種突發(fā)性難題.教師指導(dǎo)往往只限于組織學(xué)生網(wǎng)上查閱與課后編寫軟件開發(fā)各階段所涉及到的相關(guān)項目文檔環(huán)節(jié)上,或僅僅要求學(xué)生上網(wǎng)下載一些簡單且免費的小軟件,進(jìn)行操作層面上的大致了解作為實踐任務(wù).導(dǎo)致大多數(shù)學(xué)生在實踐環(huán)節(jié)中利用便利的網(wǎng)絡(luò)資源進(jìn)行QQ聊天、網(wǎng)上看電影、上網(wǎng)游戲等一些與學(xué)習(xí)無關(guān)的活動.學(xué)生沒有機(jī)會通過參與模擬軟件開發(fā)全過程中來提高自己的動手實踐能力,無法產(chǎn)生濃厚的學(xué)習(xí)興趣.
目前很多教師已逐步意識到對軟件工程課程采取以理論知識點記憶考核為主的傳統(tǒng)開、閉卷筆試的考核方式對學(xué)生動手實踐能力與軟件開發(fā)過程能力的培養(yǎng)不利,大都運用側(cè)重對學(xué)生項目實踐能力考查的考核方式.通常的做法是在對學(xué)生進(jìn)行分組之后,教師布置好實踐題目,只要在規(guī)定時間內(nèi)收集好每人或每個小組最終的項目成果即算考核通過;或者僅以類似“正確/錯誤”、“優(yōu)/良/中/及格/不及格”等單一作業(yè)成績評定等級,輔以學(xué)生的出勤率作為課程考核標(biāo)準(zhǔn).甚至有些老師在考核中連用到的實踐操作規(guī)范與要求,各階段文檔模板等都未能統(tǒng)一規(guī)范,更談不上制定出規(guī)范的多元化的總體與階段性過程相結(jié)合的考核標(biāo)準(zhǔn).導(dǎo)致教師對學(xué)生或項目組在實踐考核環(huán)節(jié)監(jiān)控不利,再加上某些基礎(chǔ)薄弱的學(xué)生,缺乏主動學(xué)習(xí)的精神和獨立思考問題的能力,不愿意參與實踐過程[9].這是當(dāng)前軟件工程課程考核中存在的嚴(yán)重弊端.
當(dāng)前國內(nèi)不少高校迫于教學(xué)資源限制,大都以服務(wù)于日常教學(xué)的普通計算機(jī)機(jī)房或?qū)I(yè)實驗室作為開展軟件工程課程實踐教學(xué)的場所,僅在正常上課時間內(nèi)開放,課外通常不予安排實踐活動時間[9].實驗設(shè)備數(shù)量也存在不足,這對軟件工程實踐教學(xué)的開展會有直接的影響.基于計算機(jī)軟件系統(tǒng)防病毒措施及計算機(jī)硬件等公共資產(chǎn)管理等客觀要素,通常采取對計算機(jī)系統(tǒng)與所安裝的軟硬件系統(tǒng)進(jìn)行還原保護(hù)等一系列防范措施,這樣在每次開展實踐活動之前學(xué)生要花費不少時間重新安裝或部署相關(guān)的軟硬件系統(tǒng),從而擠占了實踐活動的時間,影響了實踐教學(xué)的效果.
面對當(dāng)前軟件工程課程教學(xué)中所遇到的問題以及教學(xué)效果不甚理想的狀況,作者對今后的課程教學(xué)提出以下建議.
就軟件工程學(xué)科而言,教學(xué)內(nèi)容(案例)的選取要融入當(dāng)前軟件開發(fā)中的新技術(shù)與新方法,培養(yǎng)應(yīng)用型人才“學(xué)以致用”的能力.摒棄對不適用或已過時技術(shù)方法的講解(比如取消面向過程的開發(fā)技術(shù),取而代之的是選擇基于web環(huán)境下面向?qū)ο笠约盎跇?gòu)件開發(fā)技術(shù)為主線的項目案例等)[6].案例要以教學(xué)內(nèi)容為依托,題材來源于生活實際并且規(guī)模要適中,且能夠反映出軟件工程最新發(fā)展動態(tài).所涉及到的行業(yè)背景不宜深奧,控制在學(xué)生充分了解范圍之內(nèi).教師務(wù)必演示一個或多個完整并成熟的項目案例,通過子模塊分解或按照分階段實踐的方式貫穿課程實踐教學(xué)全過程.教師對所選案例應(yīng)非常熟悉,最好是親自開發(fā)過的,有利于課程實踐中全面指導(dǎo)學(xué)生[7].
教師自身工程實踐能力的培養(yǎng)與建設(shè)直接決定實踐教學(xué)的效果.現(xiàn)實中多數(shù)任課教師普遍存在“理論水平高,實踐技能低”的現(xiàn)狀,這需要合理安排專業(yè)教師利用寒、暑假到本地相關(guān)企業(yè)參加軟件工程相關(guān)新技術(shù)的培訓(xùn)及實踐活動,提升其工程實踐能力,打造“雙師型”教學(xué)師資隊伍.鼓勵青年教師參加國內(nèi)外軟件工程領(lǐng)域相關(guān)的各類資格及認(rèn)證考試,并與職稱或薪酬掛鉤[9,10].此外,聘請當(dāng)?shù)剀浖髽I(yè)一線研發(fā)人員到高校擔(dān)任兼職教師,彌補(bǔ)校內(nèi)教師實踐教學(xué)中的能力不足,并以此帶動教師的工程實踐能力.
軟件工程課程的考核主要以實踐環(huán)節(jié)考核為主,強(qiáng)調(diào)對學(xué)生實際項目運作能力的培養(yǎng).考核方式不僅局限于教師對項目階段性完成成果狀況的檢查,同時也要對項目實施各階段中所涉及到的項目組成員對所用到的理論知識的掌握、實踐技術(shù)與相應(yīng)軟件工具的應(yīng)用水平、思考與解決難題的能力,文檔標(biāo)準(zhǔn)化程度、項目進(jìn)度追蹤、項目風(fēng)險監(jiān)控措施,溝通與合作能力等多個因素進(jìn)行綜合性評價.所以,采用現(xiàn)場演示,小組自查,組間答辯,問卷調(diào)查、集體討論,教師抽查,專家評價等多種靈活多樣變的考核形式,同時聘請企業(yè)相關(guān)技術(shù)人員加入專家組參與考核過程,并且結(jié)合教學(xué)實際制定出一套完整的軟件工程課程實踐教學(xué)過程的考核體系.
在前文所提出的課程教學(xué)相關(guān)建議的基礎(chǔ)上,為避免軟件工程實踐教學(xué)中可能出的問題(如:實踐活動環(huán)節(jié)與管理環(huán)節(jié)脫節(jié);教師難以跟蹤具體項目實踐進(jìn)展;項目小組成員間不能及時聯(lián)系等),未來還需要借助或開發(fā)一個面向軟件工程課程實踐教學(xué)的管理平臺(系統(tǒng))以保障實踐教學(xué)的管理.在以項目分組形式開展實踐活動的教學(xué)過程中,該平臺總體上至少需要實現(xiàn)三個功能:項目選題、前期準(zhǔn)備與項目管理.選題階段,教師通過平臺創(chuàng)建實踐課題,發(fā)布相關(guān)的項目資料或文檔模板等.項目組長可查看和選擇任務(wù),建立實踐項目小組并分配組員任務(wù);前期準(zhǔn)備階段,教師向各小組下達(dá)具體的項目實踐任務(wù)書,各小組接受任務(wù)并撰寫項目開發(fā)計劃和測試計劃通過平臺提交給教師審閱,審閱通過后則進(jìn)入項目開發(fā)階段;項目管理方面,學(xué)生按開發(fā)進(jìn)度通過平臺完成并提交項目開發(fā)各階段的實施成果(設(shè)計的用例、編寫的源程序等)以及相應(yīng)的里程碑文檔,供教師對項目進(jìn)度隨時進(jìn)行跟蹤和監(jiān)督,組織階段性評審,提出指導(dǎo)意見.最好平臺能夠提供學(xué)生留言和在線答疑功能,這樣教師可以及時得知學(xué)生在項目實踐中所遇到的問題,加強(qiáng)對項目組管理同時利用平臺解惑答穎及時反饋,有效保障實踐教學(xué)活動的實施與進(jìn)行.
在新形勢下教師應(yīng)該把教學(xué)活動與當(dāng)前軟件企業(yè)實際項目運作流程相結(jié)合,圍繞應(yīng)用型本科計算機(jī)專業(yè)的學(xué)生的認(rèn)識特點,積極探索課程教學(xué)改革新思路及新方法,在提高教學(xué)效果的同時培養(yǎng)出更多的合格的應(yīng)用型軟件技術(shù)類人才.
〔1〕范會聯(lián),仲元昌.基于項目驅(qū)動的軟件工程課程教學(xué)改革探索[J].教育與職業(yè),2013,5(2):147-148.
〔2〕蔣述東.項目教學(xué)的特征及其適應(yīng)性研究[J].教育與職業(yè),2012,18(6):147-148.
〔3〕邢薇薇,蘆葦.國際化軟件工程人才培養(yǎng)的探索與實踐[J].中國高等教育,2012(8):34-35.
〔4〕劉強(qiáng),陳越,駱斌,等.“軟件工程”課程教學(xué)實施方案[J].中國大學(xué)教學(xué),2011(2):41-42.
〔5〕李益民,解成俊,劉軍,等.應(yīng)用型軟件人才創(chuàng)新實踐能力培養(yǎng)模式的構(gòu)建 [J].現(xiàn)代教育技術(shù),2011,21(11):109-111.
〔6〕余久久,張佑生,傅廷亮,等.軟件工程項目教學(xué)思考與探索[J].赤峰學(xué)院學(xué)報(自然科學(xué)版),2013,10(上):238-239.
〔7〕胡洋,蘇琳.Web軟件時代的《軟件工程》課程改革與建設(shè)[J].中國成人教育,2010(5):111-112.
〔8〕馬燕,張根耀,王文發(fā).軟件工程實驗教學(xué)模式改革與實踐研究 [J].教育與職業(yè),2008,36(12):149-150.
〔9〕余久久,張林,張健.項目教學(xué)法在高職院校開展的幾點探討[J].皖西學(xué)院學(xué)報,2010(2):42-44.
〔10〕柳翠寅,蔣斌,歐方平.軟件工程專業(yè)實行“項目教學(xué)法”的研究與實施[J].煤炭技術(shù),2012,31(3):246-248.