摘 要:《軟件工程》課程是一門理論知識(shí)較多,綜合性、實(shí)踐性要求高的課程。是醫(yī)學(xué)信息工程專業(yè)必修課程。對(duì)目前在教學(xué)中存在一些問題,提出了一些針對(duì)這些問題,提高教學(xué)方法的幾個(gè)解決方法,包括提升教師感染力,結(jié)合多課程內(nèi)容教學(xué),采用項(xiàng)目驅(qū)動(dòng)模式教學(xué),以期取得好的教學(xué)效果
關(guān)鍵詞:軟件工程;教學(xué)方法;項(xiàng)目驅(qū)動(dòng)
中圖分類號(hào):R318-4
我校開設(shè)醫(yī)學(xué)信息工程專業(yè),該專業(yè)是一門以信息科學(xué)和生命科學(xué)為主的多學(xué)科交叉與融合的新興綜合性學(xué)科。為醫(yī)療衛(wèi)生行業(yè)培養(yǎng)既掌握計(jì)算機(jī)技術(shù),又掌握醫(yī)學(xué)專業(yè)技術(shù),還熟悉醫(yī)院管理流程和臨床科研數(shù)據(jù)處理的復(fù)合型人才[1]。
《軟件工程》課程是該專業(yè)的專業(yè)核心課程。軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科[2]。學(xué)生學(xué)習(xí)這門課程是要求他們掌握軟件工程的概念、原理、技術(shù)和方法,從而經(jīng)濟(jì)、高效地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。該類課程理論較多,同時(shí)其綜合性、實(shí)踐性要求較高。如何教授好這門課程是一個(gè)值得思考的問題。
1 《軟件工程》課程教學(xué)中存在的問題
軟件工程課程內(nèi)容主要是許多概念和原理,教材上涉及的方法與技術(shù)并沒有多難理解,但教學(xué)過程中仍發(fā)現(xiàn)有如下問題:
1.1 學(xué)生對(duì)軟件工程類課程感覺概念、原理太多,難以記憶
軟件工程課程主要講解軟件開發(fā)中的原理、方法、技術(shù),很少涉及軟件算法和程序設(shè)計(jì)。學(xué)生在學(xué)習(xí)時(shí)有個(gè)誤區(qū),覺得這門課既然是介紹各種概念和原理的,死記硬背就好了。而大量的概念和原理光靠死記硬背反而容易混淆,學(xué)習(xí)效果并不好。
1.2 教學(xué)模式單一,缺少有專業(yè)特色的固定的教學(xué)案例
目前軟件工程課程仍以教師課堂授課為主,學(xué)生聽課為輔,教學(xué)內(nèi)容側(cè)重于理論。實(shí)驗(yàn)學(xué)時(shí)較少,學(xué)生的實(shí)踐多在課后完成,較難落到實(shí)處。課堂使用案例也多為教材上給出的小案例,實(shí)用性不強(qiáng),缺少專業(yè)特色,學(xué)生很難接觸真正的醫(yī)學(xué)信息系統(tǒng)開發(fā)項(xiàng)目的實(shí)例。
1.3 學(xué)生缺少對(duì)相關(guān)課程間關(guān)系的理解
目前的教學(xué)模式是各門課獨(dú)立講授,對(duì)于軟件工程課程而言其綜合性很強(qiáng),其理論與應(yīng)用與許多課程相關(guān),但學(xué)生在學(xué)習(xí)時(shí)是單獨(dú)學(xué)習(xí)的,在頭腦中沒有形成完整的課程體系,不能把已學(xué)過的知識(shí)融會(huì)貫通的使用。
1.4 學(xué)生實(shí)踐能力較差,難以滿足專業(yè)需要
軟件工程課程實(shí)踐性要求高,而學(xué)生在學(xué)習(xí)的過程中,僅僅抽象的學(xué)習(xí)軟件開發(fā)的過程,很少有機(jī)會(huì)參與軟件開發(fā)的整個(gè)過程,從而實(shí)踐能力較差。
2 解決辦法
2.1 注重教學(xué)方法和教師的課堂感染力,結(jié)合學(xué)生實(shí)際教學(xué)
當(dāng)課程內(nèi)容不夠吸引學(xué)生時(shí),授課的效果就更依賴于教學(xué)方法和教師的個(gè)人魅力。教師要教授好一門課程,僅僅對(duì)課程內(nèi)容的深入理解是不夠的,有時(shí)要向一位演員一樣的表演。聲音抑揚(yáng)頓挫的變化可以使本想打瞌睡的學(xué)生清醒。在教學(xué)中適度的加入一些“包袱”,博得滿堂一笑,同樣可以使渙散的注意力重新集中。學(xué)習(xí)軟件工程課程的目的是為了讓學(xué)生了解和掌握開發(fā)一個(gè)高質(zhì)量軟件的過程、方法及使用的工具。那么對(duì)于“高質(zhì)量軟件”要給學(xué)生一個(gè)定義,如果僅從理論上來解釋將枯燥無趣。筆者在上課時(shí)以學(xué)生所熟悉的MS office、QQ等軟件作例子,讓學(xué)生從用戶的角度討論“高質(zhì)量軟件”的特性,將軟件工程設(shè)計(jì)和實(shí)現(xiàn)階段的一些基本原理、概念和啟發(fā)規(guī)則引入進(jìn)去,引起學(xué)生的共鳴,加深學(xué)生對(duì)這些原理、概念、啟發(fā)規(guī)則的理解,在不用死記硬背的情況下輕松記住教學(xué)內(nèi)容。
2.2 結(jié)合其他課程內(nèi)容,使學(xué)生對(duì)所學(xué)內(nèi)容融會(huì)貫通
軟件工程課程的綜合性和實(shí)踐性都比較高。在教學(xué)中結(jié)合其他課程內(nèi)容,并與其他課程教師交流共同教學(xué),學(xué)生能將所學(xué)知識(shí)融會(huì)貫通,靈活應(yīng)用,效果會(huì)非常好。例如在講述軟件工程需求分析階段建立數(shù)據(jù)模式時(shí)引入數(shù)據(jù)庫(kù)原理中的知識(shí),解釋數(shù)據(jù)對(duì)象、屬性及數(shù)據(jù)對(duì)象間相互聯(lián)系,以及它們對(duì)應(yīng)到應(yīng)用中的實(shí)現(xiàn)形式;在講述設(shè)計(jì)與實(shí)現(xiàn)階段內(nèi)容時(shí),可引入算法設(shè)計(jì)與分析課程中的知識(shí)對(duì)設(shè)計(jì)思想、代碼的構(gòu)造進(jìn)行說明;講述實(shí)現(xiàn)效率時(shí),引入算法設(shè)計(jì)與分析中的時(shí)間復(fù)雜度和空間復(fù)雜度的概念來討論效率問題,討論存儲(chǔ)效率時(shí)還可引入操作系統(tǒng)中存儲(chǔ)調(diào)度的原理加深學(xué)生的印象。
在我校醫(yī)學(xué)信息工程專業(yè)課程計(jì)劃中,軟件工程是在大三上學(xué)期開設(shè),大三下學(xué)期還有《J2EE架構(gòu)設(shè)計(jì)與開發(fā)》和《綜合課程設(shè)計(jì)》兩門課,結(jié)合這兩門課,讓學(xué)生分組以軟件工程方法開發(fā)一個(gè)軟件,并交付相應(yīng)文檔,從而再次鞏固學(xué)生在軟件工程課程中學(xué)習(xí)的知識(shí)并加以應(yīng)用。
2.3 采用項(xiàng)目驅(qū)動(dòng)模式,結(jié)合項(xiàng)目實(shí)例,使學(xué)生學(xué)以致用
采用項(xiàng)目驅(qū)動(dòng)模式教學(xué)時(shí)應(yīng)注意以下幾個(gè)問題:
(1)盡量使用實(shí)際案例,虛擬的案例因?yàn)闆]有需求方,學(xué)生在需求分析和需求定義時(shí)很容易流于形式,體會(huì)不到獲取需求有多么的困難,反而會(huì)覺得獲得需求很容易,難在編程。在我校的教學(xué)中,軟件工程前期有《醫(yī)學(xué)信息系統(tǒng)》課程,為學(xué)生介紹醫(yī)院的一些管理流程,并指導(dǎo)學(xué)生開發(fā)相應(yīng)的軟件;同時(shí)學(xué)院經(jīng)常組織學(xué)生去醫(yī)院實(shí)地參觀;學(xué)院教師也經(jīng)常與醫(yī)院或企業(yè)有一些軟件開發(fā)的項(xiàng)目。這些都為軟件工程課程提供了很好的實(shí)際案例。
(2)指導(dǎo)學(xué)生分組,學(xué)生分組時(shí)最好不要任由學(xué)生自由分組。學(xué)生自由分組時(shí),往往編程能力好的同學(xué)抱成一組,其他的同學(xué)以關(guān)系疏密來確定分組。導(dǎo)致一個(gè)項(xiàng)目組中只有個(gè)別學(xué)生起到作用。使整個(gè)教學(xué)過程流于形式??梢韵茸寣W(xué)生自由報(bào)名擔(dān)當(dāng)項(xiàng)目負(fù)責(zé)人,然后以公開競(jìng)聘的方式確定項(xiàng)目負(fù)責(zé)人,這個(gè)過程中,需要老師對(duì)學(xué)生有一定了解,對(duì)競(jìng)聘方式和過程加以引導(dǎo),確定有組織能力和負(fù)責(zé)任的同學(xué)擔(dān)任。然后再由個(gè)人向項(xiàng)目負(fù)責(zé)人申請(qǐng)職位(如軟件設(shè)計(jì)人員、軟件架構(gòu)人員、程序員、軟件測(cè)試人員等),一般一個(gè)項(xiàng)目組5-6人,由項(xiàng)目負(fù)責(zé)人決定小組人員,項(xiàng)目負(fù)責(zé)人負(fù)責(zé)項(xiàng)目的整體管理和協(xié)調(diào)工作。因?yàn)槁毼欢际亲约荷暾?qǐng)的,所以最后在項(xiàng)目實(shí)施時(shí),各人職責(zé)明確,不會(huì)出現(xiàn)人浮于事的狀況。
(3)定期檢查工作進(jìn)度。如果沒有定期的工作進(jìn)度檢查,學(xué)生可能會(huì)直到課程快結(jié)束時(shí)才趕緊寫各類文檔交付了事,達(dá)不到教學(xué)目的,學(xué)生無法體會(huì)到軟件工程在實(shí)際應(yīng)用中的意義。所以要求各個(gè)項(xiàng)目組跟隨課程的進(jìn)度按時(shí)間段完成包括可行性分析報(bào)告、需求規(guī)格說明書、總體設(shè)計(jì)規(guī)格說明書、詳細(xì)設(shè)計(jì)規(guī)格說明書、測(cè)試計(jì)劃、源代碼等各類文檔。學(xué)時(shí)允許的話,安排幾節(jié)課作為工作匯報(bào)會(huì)。適度的工作匯報(bào)會(huì)可加強(qiáng)小組間的交流,讓學(xué)生從別人的工作中發(fā)現(xiàn)自己工作的優(yōu)勢(shì)和不足。每次匯報(bào)會(huì)的發(fā)言人由每小組成員輪流擔(dān)任。筆者認(rèn)為通過軟件工程課程教學(xué)提高學(xué)生匯報(bào)工作的能力和與人交流的能力也是很重要的。教師對(duì)學(xué)生的文檔和匯報(bào)予以總結(jié)和點(diǎn)評(píng),在對(duì)學(xué)生的工作予以肯定的基礎(chǔ)上提出對(duì)學(xué)生所給方案的改進(jìn)意見或建議。畢竟軟件開發(fā)的過程中沒有唯一標(biāo)答,學(xué)生的思路與老師的不同是很正常的現(xiàn)象,不要一味否定從而打擊學(xué)生獨(dú)立思考的能力。以開放的思想與學(xué)生討論,更能促進(jìn)學(xué)生更深入的思考。這樣既能加深他們對(duì)軟件工程理論的理解,同時(shí)也提高對(duì)這門課程的興趣。
3 結(jié)束語
《軟件工程》課程是一門理論知識(shí)較多,綜合性、實(shí)踐性要求高的課程。筆者從目前教學(xué)中存在的問題著手分析,思考并實(shí)踐多種教學(xué)方法,提出了幾點(diǎn)行之有效的解決問題的教學(xué)方法。在今后的教學(xué)工作中還將更多的研究、探索其它優(yōu)秀的教學(xué)方法,積累經(jīng)驗(yàn),以期取得更好的教學(xué)效果。
參考文獻(xiàn):
[1]周毅,劉燕.醫(yī)學(xué)信息學(xué)的研究領(lǐng)域及人才培養(yǎng)[J].醫(yī)學(xué)信息學(xué),2005,18(8):856-858.
[2]張海潘.軟件工程導(dǎo)論[M].清華大學(xué)出版社,2008,2.
[3]李洪進(jìn).案例驅(qū)動(dòng)式方法在軟件工程教學(xué)中的應(yīng)用[J].軟件導(dǎo)刊,2013(6).
[4]李亞紅.《軟件工程》課程教學(xué)改革探討[J].長(zhǎng)江大學(xué)學(xué)報(bào)(自然版),2013(1).
作者簡(jiǎn)介:吳勁蕓,女,武漢人,教師,講師,本科,研究方向:軟件工程。
作者單位:湖北中醫(yī)藥大學(xué) 信息工程學(xué)院,武漢 430065