摘 要:軟件工程是一門實(shí)踐性較強(qiáng)的課程。針對課程的特點(diǎn)和本科階段教學(xué)的重點(diǎn),提出以實(shí)際應(yīng)用為主導(dǎo)的教學(xué)改革方法,通過開展課堂教學(xué)改革、校園創(chuàng)新實(shí)驗(yàn)室、校外實(shí)習(xí)基地、課外實(shí)踐等一系列以實(shí)踐貫穿始終的若干教學(xué)活動(dòng),提高學(xué)生學(xué)習(xí)的積極性。
關(guān)鍵詞:軟件工程;實(shí)踐;教學(xué)改革
軟件工程一直以來都缺乏一個(gè)統(tǒng)一的定義,很多學(xué)者、組織機(jī)構(gòu)都分別給出了自己的定義:
1)Barry Boehm給出的定義:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。
2)IEEE在軟件工程術(shù)語匯編中的定義是:
?、?將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件;
② 在①中所述方法的研究。
3)Fritz Bauer在NATO會(huì)議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法。
4)《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中的定義:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。
目前比較認(rèn)可的一種定義是:軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時(shí)間考驗(yàn)且證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來。
學(xué)生對軟件工程課程的理解與掌握程度將直接影響學(xué)生畢業(yè)后軟件開發(fā)能力和項(xiàng)目管理能力,同時(shí)
因?yàn)樵撜n程的抽象性和實(shí)踐性強(qiáng)的特點(diǎn),常規(guī)的教學(xué)方法和實(shí)踐模式使學(xué)生無法真正理解與掌握軟件工程的精髓,更難以做到學(xué)以致用。筆者看來,本科階段軟件工程教學(xué)的重點(diǎn)在于學(xué)習(xí)經(jīng)過時(shí)間考驗(yàn)且證明正確的開發(fā)方法、管理技術(shù)等。首先,要讓學(xué)生深刻意識(shí)和體會(huì)到軟件工程對實(shí)際軟件項(xiàng)目的指導(dǎo)作用;其次,學(xué)生要掌握相關(guān)的理論、方法和技術(shù)。在實(shí)際的教學(xué)過程中,只有將兩者很好地結(jié)合,學(xué)生才能夠真正地將科學(xué)的工程方法應(yīng)用到今后的學(xué)習(xí)和工作中去[1-2]。
1教學(xué)現(xiàn)狀分析
軟件行業(yè)用人單位普遍認(rèn)為計(jì)算機(jī)專業(yè)畢業(yè)生的素質(zhì)與工作預(yù)期相差較遠(yuǎn);計(jì)算機(jī)專業(yè)已畢業(yè)的年輕從業(yè)人員對自己前幾年在大學(xué)學(xué)到的知識(shí)不甚滿意。因此軟件工程專業(yè)中注重實(shí)踐類課程的教學(xué)內(nèi)容與教學(xué)理念有必要按照就業(yè)市場的需求進(jìn)行調(diào)整[3-5]。
據(jù)筆者近年的教學(xué)體會(huì),目前軟件工程教學(xué)過程中主要存在以下問題。
1) 大多數(shù)學(xué)生自身沒有實(shí)際的項(xiàng)目經(jīng)驗(yàn),如果教師仍采用傳統(tǒng)的教學(xué)方式,學(xué)生容易感到知識(shí)空洞和乏味。
2) 實(shí)踐環(huán)節(jié)仍以編程為主。目前的軟件工程實(shí)踐環(huán)節(jié)多為老師提供若干題目,學(xué)生采取分組的形式共同完成課題。該環(huán)節(jié)老師會(huì)要求大家按照軟件工程的過程和方法去做。但是,實(shí)際情況往往是:學(xué)生將任務(wù)重點(diǎn)仍放在程序的編寫上,而作為約束開發(fā)的文檔往往是學(xué)生在程序開發(fā)完成后補(bǔ)充上來的。這樣,軟件工程實(shí)踐的目的并未達(dá)到,并未讓學(xué)生真正領(lǐng)會(huì)和認(rèn)識(shí)到軟件工程并不僅僅是開發(fā)程序,任何一個(gè)環(huán)節(jié)對整個(gè)項(xiàng)目來說都是重要的。
3) 實(shí)踐環(huán)節(jié)所布置的軟件項(xiàng)目課題多沒有實(shí)際的應(yīng)用和用戶群體,學(xué)生不過仍然是按照書本或相關(guān)參考資料來完成相應(yīng)的文檔或程序,學(xué)生并未學(xué)會(huì)如何將所學(xué)的理論知識(shí)應(yīng)用到實(shí)際的項(xiàng)目中。
2創(chuàng)新模式
針對目前軟件工程教學(xué)過程中的諸多問題,筆者在實(shí)際教學(xué)過程中進(jìn)行了一系列的探索和實(shí)踐。如圖1所示,在課堂教學(xué)環(huán)節(jié)中,讓學(xué)生擔(dān)當(dāng)一定的角色,學(xué)生帶著任務(wù)來學(xué)習(xí),積極參與到課堂教學(xué)活動(dòng)中;同時(shí)開展校園創(chuàng)新實(shí)驗(yàn)室,真實(shí)演練軟件工程的過程;此外,還建立了校外實(shí)習(xí)基地,學(xué)院還定期開展校園軟件大賽等活動(dòng)。各個(gè)環(huán)節(jié)有序進(jìn)行,充分調(diào)動(dòng)了學(xué)生學(xué)習(xí)的積極性,收效頗佳。
圖1軟件工程教學(xué)與實(shí)踐模式
2.1課堂教學(xué)設(shè)計(jì)
教師從課堂入手,讓課本的理論知識(shí)變得生動(dòng)起來,富有趣味性,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)。課堂仍以理論知識(shí)講解為主,但是打破以往以教師講解為主的教學(xué)模式,讓學(xué)生參與進(jìn)來,做到師生互動(dòng)。
課程初期,學(xué)生自愿結(jié)合組成團(tuán)隊(duì),按照實(shí)際項(xiàng)目中的角色分為:項(xiàng)目經(jīng)理、系統(tǒng)設(shè)計(jì)師、程序開發(fā)人員、測試人員、文檔人員、后期維護(hù)人員等。通常,項(xiàng)目課題的來源是企業(yè)的實(shí)際項(xiàng)目。通過一個(gè)完整、真實(shí)的案例,每位學(xué)生擔(dān)當(dāng)實(shí)際的角色共同負(fù)責(zé)一個(gè)軟件工程的項(xiàng)目,將課本的理論知識(shí)和實(shí)際項(xiàng)目完好結(jié)合起來;通過實(shí)際案例的真實(shí)演練,軟件工程的各個(gè)環(huán)節(jié)和知識(shí)點(diǎn)逐步滲透到學(xué)習(xí)中去,很好地調(diào)動(dòng)了學(xué)生的學(xué)習(xí)主動(dòng)性。
2.2校園創(chuàng)新實(shí)驗(yàn)室
校園創(chuàng)新實(shí)驗(yàn)室目的在于啟發(fā)學(xué)生獨(dú)立思考,強(qiáng)調(diào)學(xué)生對知識(shí)的實(shí)際應(yīng)用能力。
由于課堂學(xué)時(shí)所限,校園創(chuàng)新實(shí)習(xí)實(shí)驗(yàn)室是課堂教學(xué)的有益補(bǔ)充。例如,在講解軟件工程生命周期的各個(gè)階段,要求學(xué)生提交相應(yīng)的可行性分析報(bào)告、需求文檔、設(shè)計(jì)文檔、程序代碼等,并采取相互監(jiān)督的方式來檢查其他小組的進(jìn)展;在講到可行性報(bào)告一章,要求每個(gè)小組采取會(huì)議形式,在實(shí)驗(yàn)室開展模擬招標(biāo)會(huì)……課程每講一部分內(nèi)容,要求以小組為單位提交相應(yīng)的文檔或程序。學(xué)生通過實(shí)際的項(xiàng)目,將所學(xué)的理論知識(shí)應(yīng)用到其中,做到學(xué)以致用。在實(shí)際的過程中,每個(gè)人在軟件工程的各個(gè)環(huán)節(jié)都要實(shí)踐,因此可以采取不斷變換角色的方式來進(jìn)行[6-7]。
校園創(chuàng)新實(shí)驗(yàn)室模擬軟件公司開發(fā)管理模式,是學(xué)生課外科技、課外實(shí)踐、開發(fā)訓(xùn)練、社會(huì)服務(wù)活動(dòng)的基地,為學(xué)生在校期間提供了良好的就業(yè)實(shí)戰(zhàn)平臺(tái)。校園創(chuàng)新實(shí)驗(yàn)室具有以下特點(diǎn):
1) 打破以往固定上機(jī)時(shí)間模式,開放時(shí)間為每天早上7點(diǎn)到晚上10點(diǎn),時(shí)間較為靈活,學(xué)生可以根據(jù)自己的時(shí)間合理安排。
2) 每個(gè)實(shí)驗(yàn)室由2~3位同學(xué)負(fù)責(zé)管理實(shí)驗(yàn)室的硬件設(shè)備,軟件維護(hù)升級(jí)等相關(guān)工作,每個(gè)實(shí)驗(yàn)室配備一名教師輔助管理。
3) 實(shí)驗(yàn)室每天有固定人員值班,負(fù)責(zé)學(xué)生的簽到以及日常的管理等。學(xué)生負(fù)責(zé)人定期將簽到表匯總提交相關(guān)課題指導(dǎo)教師。
4) 實(shí)驗(yàn)室的環(huán)境布置采用分組圓桌形式,方便小組的討論和交流。
2.3校外實(shí)習(xí)基地
我校與本地的軟件企業(yè)聯(lián)合,開展校外實(shí)習(xí)基地,在課程結(jié)束后進(jìn)入軟件工程校外實(shí)習(xí)環(huán)節(jié),讓學(xué)生融入到真實(shí)的開發(fā)環(huán)境中去。
有了上一個(gè)學(xué)期的理論基礎(chǔ)和校內(nèi)創(chuàng)新實(shí)驗(yàn)室的經(jīng)驗(yàn),我們根據(jù)實(shí)際情況,有選擇地讓學(xué)生進(jìn)入企業(yè),跟隨項(xiàng)目組一起,參與到真實(shí)的項(xiàng)目中去。校外實(shí)習(xí)過程中,要求學(xué)生認(rèn)真記錄項(xiàng)目過程開展的各項(xiàng)工作,并積極參與到各階段的工作中去。所有環(huán)節(jié)結(jié)束后,要求學(xué)生以報(bào)告的形式將自己的體會(huì)告訴大家。作為課堂教學(xué)的補(bǔ)充,我們通常請同學(xué)重點(diǎn)討論下面的內(nèi)容:
1) 軟件工程生命周期在實(shí)際項(xiàng)目中和理論上的是否一致,有哪些不一樣的地方,為什么在實(shí)際中要這么做。
2) 軟件工程對實(shí)際項(xiàng)目的指導(dǎo)作用在哪里。
3) 今后教學(xué)的改革重點(diǎn)在哪里,如何更加有效促進(jìn)校企實(shí)踐教學(xué)的改革。
學(xué)生的總結(jié)很重要,除了能夠規(guī)范自己今后在軟件行業(yè)的開發(fā)流程,對低年級(jí)的同學(xué)也有較好的啟發(fā)。
2.4豐富的課外實(shí)踐
為了提高學(xué)生學(xué)習(xí)的興趣,我校還開展了“三個(gè)一”工程,即一種程序設(shè)計(jì)語言及平臺(tái)、一個(gè)作品、一萬行代碼經(jīng)驗(yàn)。在學(xué)習(xí)過程中讓學(xué)生帶著問題去看書,帶著任務(wù)去學(xué)習(xí),在軟件工程后面的學(xué)期要求每位學(xué)生完成一項(xiàng)實(shí)用性課題。
我校每年都要舉辦計(jì)算機(jī)技能大賽、軟件知識(shí)大賽和軟件設(shè)計(jì)大賽三大賽事,從技能到知識(shí)再到設(shè)計(jì),與課程學(xué)習(xí)緊密配合,從課外的另一條學(xué)習(xí)路線促進(jìn)學(xué)生自主學(xué)習(xí)。
此外,我校組織學(xué)生參加省級(jí)各類軟件大賽,如省青年創(chuàng)新軟件設(shè)計(jì)大賽、省程序設(shè)計(jì)競賽、省大學(xué)
生程序設(shè)計(jì)競賽、863軟件園杯大賽等,我校選送的學(xué)生軟件作品多次獲得嘉獎(jiǎng)。
學(xué)校還多次邀請行業(yè)工程師、學(xué)術(shù)專家給學(xué)生做報(bào)告,讓學(xué)生們接受了一些最前沿的科技信息,受益匪淺。
3結(jié)語
結(jié)合我校近幾個(gè)學(xué)期的教學(xué)改革情況來看,較以往取得了更好教學(xué)效果。
1) 每個(gè)學(xué)生都是帶著任務(wù)來學(xué)習(xí)的,學(xué)生上課積極性較以往有較大提高,課堂氣氛活躍。
2) 學(xué)生對軟件工程課程的重要性有了更深刻的認(rèn)識(shí),對其在軟件整個(gè)過程中的指導(dǎo)作用有了更好的體會(huì)和理解。
3) 就業(yè)率有所提高。學(xué)生因?yàn)橛袑?shí)際的項(xiàng)目經(jīng)驗(yàn),受到用人企業(yè)的歡迎。
當(dāng)然,目前的教學(xué)方式還有待于進(jìn)一步改革,如學(xué)生因?yàn)檎莆盏木幊陶Z言有限,所以在后期的校外實(shí)際項(xiàng)目中顯得力不從心;此外,實(shí)際項(xiàng)目的周期有長有短,和學(xué)生的學(xué)習(xí)實(shí)踐結(jié)合不是很好。如何把校企實(shí)踐教學(xué)結(jié)合的更加緊密和有效,是我們今后的研究和探索內(nèi)容。
參考文獻(xiàn):
[1] 普雷斯曼. 軟件工程:實(shí)踐者的研究方法[M].