趙淑芳 陳立潮
[摘 要]軟件工程課程理論性和實踐性都非常強。目前課堂教學(xué)過程中存在問題較多。基于“項目導(dǎo)向的啟發(fā)式”的軟件工程教學(xué)模式不僅能激發(fā)學(xué)生學(xué)習(xí)的主動性和積極性,活躍教學(xué)氣氛,而且提高了學(xué)生的實踐動手能力,取得了非常顯著的教學(xué)效果。
[關(guān)鍵詞]軟件工程 項目導(dǎo)向 啟發(fā)式 教學(xué)模式
[中圖分類號] G642[文獻(xiàn)標(biāo)識碼] A[文章編號] 2095-3437(2015)11-0165-02
一、引言
隨著軟件工程和物聯(lián)網(wǎng)技術(shù)在各領(lǐng)域的廣泛應(yīng)用,軟件工程開發(fā)的規(guī)模也在日益增大,因此,對軟件設(shè)計及運行維護(hù)人員的工程能力要求越來越高。而在大多數(shù)計算機和軟件工程專業(yè)的課程設(shè)置中,對學(xué)生的軟件設(shè)計、開發(fā)及運行維護(hù)能力的培養(yǎng)往往只體現(xiàn)在軟件工程這門課上,如何通過軟件工程的教學(xué)最大限度地提高學(xué)生的實踐能力是擺在我們教學(xué)中的一個重要課題。鑒于此,我們提出了基于項目導(dǎo)向的啟發(fā)式軟件工程教學(xué)模式,以最大潛能的提高學(xué)生的學(xué)習(xí)積極性,增強學(xué)生的實踐開發(fā)能力。[1]
二、目前教學(xué)中存在的主要問題
(一)教學(xué)內(nèi)容較抽象,方法單一
目前的軟件工程課堂教學(xué)主要以教師課堂授課為主,又以理論講授為主,忽視了學(xué)生主觀能動性的發(fā)揮,大部分學(xué)生對軟件工程的理解為只要掌握了基本概念、原理,就能達(dá)到軟件工程課程的要求。單一的課堂授課、枯燥無味的理論加上較抽象的內(nèi)容無疑影響了實際教學(xué)效果。[2]隨著軟件規(guī)模不斷擴大以及不斷向各領(lǐng)域的滲透,對軟件質(zhì)量保障要求越來越高,這對軟件工程課程的教學(xué)內(nèi)容及教學(xué)模式提出了新的要求。從教學(xué)內(nèi)容上看,我們既要注重軟件設(shè)計的基本原理與方法,同時還要注重軟件開發(fā)的整個過程與軟件的質(zhì)量保證措施。
(二)實踐教學(xué)環(huán)節(jié)薄弱
軟件工程是一門理論性與實踐性比較強的綜合性課程,很多軟件工程學(xué)院只注重理論課程的教學(xué),教學(xué)內(nèi)容比較抽象,學(xué)生幾乎沒有實踐的機會;有的學(xué)院雖然設(shè)有一定比例的實驗課程,但課時比較少,幾個實驗下來,學(xué)生也只是能撰寫一些相關(guān)的文檔資料,沒有真正體會到軟件工程在軟件開發(fā)中所發(fā)揮的作用。
(三)教學(xué)中采用的案例缺乏完整性和實用性
部分教師在教學(xué)時,由于缺乏實際軟件項目的設(shè)計、開發(fā)及項目管理的經(jīng)驗,導(dǎo)致教學(xué)案例的選取偏離學(xué)生實際,即使講授一些例子,由于學(xué)生缺少實際開發(fā)經(jīng)驗,也很難理解軟件開發(fā)的全過程。有的教師所選案例要么規(guī)模較小,如簡單的學(xué)生成績管理系統(tǒng)。在學(xué)生看來,不需要完全遵循軟件工程的設(shè)計過程,如不需按可行性研究等三個時期8個階段來執(zhí)行,而是直接進(jìn)行設(shè)計和源代碼的編寫,學(xué)生還不清楚可行性研究和需求分析的目的及意義。這導(dǎo)致學(xué)生對軟件項目、軟件工程沒有建立系統(tǒng)完整的概念體系,缺乏對所學(xué)知識的整體認(rèn)識。[5]
三、項目導(dǎo)向的啟發(fā)式教學(xué)模式
針對上述問題,要使軟件工程的教學(xué)真正能充分調(diào)動學(xué)生的積極性,改變以往難學(xué)、難教的局面,不斷提高學(xué)生的實踐動手能力,有效地改善教學(xué)效果,我們必須從教學(xué)理念的更新、教學(xué)模式的改革等方面著手。由于軟件的不可預(yù)見性,定義“需要做什么”成為軟件開發(fā)的根本問題。
項目導(dǎo)向的啟發(fā)式教學(xué)方法是在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上,有別于傳統(tǒng)教學(xué)的新型教學(xué)方法。建構(gòu)既是對新知識的理解與掌握,同時又包含對原有經(jīng)驗和知識的改造和重組,形成新的綜合知識建構(gòu)。該方法提倡以學(xué)生為中心,教師在整個教學(xué)過程中起組織者、指導(dǎo)者和促進(jìn)者的作用。[3]
(一)理論教學(xué)
基于項目導(dǎo)向的啟發(fā)式軟件工程教學(xué)過程主要包括軟件項目的選取、教學(xué)內(nèi)容的選取及教學(xué)方法、教學(xué)組織,整個過程是教師與學(xué)生相互討論、共同參與的過程。
1.教學(xué)內(nèi)容的選取。項目導(dǎo)向的啟發(fā)式教學(xué)關(guān)鍵是選擇好設(shè)計開發(fā)的項目,所選項目要與所講授的內(nèi)容息息相關(guān),教學(xué)內(nèi)容選取要以教學(xué)大綱以及人才培養(yǎng)目標(biāo)為依據(jù),所選教學(xué)內(nèi)容的理論與技術(shù)應(yīng)包括課程的核心知識點,確保理論與實踐能緊密結(jié)合在一起,同時保證所選案例是可實現(xiàn)的,學(xué)生容易理解的,具有一定規(guī)模且可操作性比較強的。
軟件工程的教學(xué)內(nèi)容主要講授將軟件過程模型、可行性研究、需求分析、軟件設(shè)計、軟件構(gòu)造、測試以及軟件維護(hù)等內(nèi)容,同時融入數(shù)據(jù)庫設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計等相關(guān)課程知識,按照面向數(shù)據(jù)流和面向?qū)ο髢蓚€方向構(gòu)建組合式的、模塊化的教學(xué)內(nèi)容。
在教學(xué)的開始階段選擇一些典型的“軟件危機”案例作為這門課程的導(dǎo)入,如Ariane5火箭、美國愛國者導(dǎo)彈防御系統(tǒng)曾經(jīng)應(yīng)用于海灣戰(zhàn)爭對抗伊拉克的飛毛腿導(dǎo)彈等,讓學(xué)生們真正了解軟件失敗問題癥結(jié)所在,認(rèn)識到軟件的本質(zhì)特性造成了軟件開發(fā)的諸多問題,軟件本質(zhì)上的復(fù)雜性使軟件產(chǎn)品難以理解,影響軟件過程的有序性和軟件產(chǎn)品的可靠性,并初步建立規(guī)范化的軟件開發(fā)意識。
在教學(xué)過程中,選取1-2個典型的,具有一定規(guī)模的案例(如高校教務(wù)管理系統(tǒng))作為典型案例,分別采用傳統(tǒng)的結(jié)構(gòu)化設(shè)計方法和面向?qū)ο蟮脑O(shè)計方法,分別講授軟件生命周期中的可行性研究、需求分析、總體設(shè)計、詳細(xì)設(shè)計、編碼實現(xiàn)及測試等核心過程,并著重介紹每個階段中要重點解決的問題,以及所采用的方法和工具。[4]
2.教學(xué)方法的設(shè)計。在教學(xué)方法上,以培養(yǎng)學(xué)生獨立思考和創(chuàng)新思維為主要目標(biāo),以項目為主體,組織學(xué)生以團(tuán)隊的形式參加項目分析、設(shè)計、開發(fā)和運行,啟發(fā)式的將抽象的理論知識融入教學(xué)實踐的講解中,通過分析、模擬、仿真,引導(dǎo)學(xué)生分析項目中所體現(xiàn)的軟件工程本質(zhì)的問題,讓學(xué)生真正能掌握軟件工程的設(shè)計思想。[3]
(二)實踐教學(xué)
在課堂講授的同時,每個環(huán)節(jié)我們都配備了相應(yīng)的實驗環(huán)節(jié),實驗教學(xué)與課堂教學(xué)保持同步進(jìn)行,以更好地激發(fā)學(xué)生的學(xué)習(xí)興趣,鞏固所學(xué)的理論知識,真正掌握軟件工程的設(shè)計、開發(fā)和維護(hù)管理的全過程。
軟件工程項目實踐教學(xué)的實施包括項目實踐教學(xué)方法、項目實踐內(nèi)容和項目實踐要求。項目實踐進(jìn)度與課堂教學(xué)同步,項目組根據(jù)項目需求,制訂項目計劃,進(jìn)行分析與設(shè)計,進(jìn)一步熟悉軟件開發(fā)過程及方法,同時提交規(guī)范的軟件分析與設(shè)計文檔。學(xué)生在鞏固課堂所學(xué)的理論知識的基礎(chǔ)上,結(jié)合實際項目進(jìn)行實踐,使學(xué)生的應(yīng)用能力、合作能力和全局觀念等專業(yè)素質(zhì)得到有效提高。[3] [5]
1.學(xué)生分組。學(xué)生按照項目的分析、設(shè)計、編碼實現(xiàn)、測試各個角色組成2-3人的開發(fā)團(tuán)隊,同時選取一人作為項目負(fù)責(zé)人,同時明確各自的分工,并協(xié)作完成,以培養(yǎng)學(xué)生的團(tuán)隊合作精神、溝通能力和協(xié)調(diào)管理等能力。
2.項目設(shè)計。各小組首先應(yīng)選擇一個比較了解且具有一定規(guī)模的實際MIS管理系統(tǒng),便于學(xué)生進(jìn)行現(xiàn)場調(diào)研,獲取準(zhǔn)確而可靠的需求,也可參與到教師的科研項目中,然后嚴(yán)格按照軟件工程的設(shè)計思想、軟件過程的規(guī)范,獨立完成項目的可行性分析、需求分析、設(shè)計、實現(xiàn)與測試。各小組在每個階段結(jié)束后應(yīng)提交相應(yīng)的設(shè)計文檔,教師對其進(jìn)行檢查并在全班討論交流,對檢查中發(fā)現(xiàn)的問題和不足,要進(jìn)行改進(jìn)和完善,然后進(jìn)入下一個階段的設(shè)計,直至最終提交產(chǎn)品,完成各階段的任務(wù)。
3.模擬演示。在項目結(jié)束后組織答辯與演示,首先由小組長對項目的功能及基本情況作一個簡要講解,并介紹其本人在項目中所做的工作。然后讓每個同學(xué)說明在整個項目開發(fā)過程中自己所完成的任務(wù),并進(jìn)行演示。教師在其間可以針對每個同學(xué)在項目中實際負(fù)責(zé)的部分進(jìn)行提問,現(xiàn)場進(jìn)行評分并計入期末總成績,最后項目組提交系統(tǒng)和設(shè)計的總體報告。[5]
四、結(jié)束語
基于項目導(dǎo)向的啟發(fā)式軟件工程教學(xué)模式提高了學(xué)生的主動性和積極性,采用理論與實踐相結(jié)合、案例講解、項目實踐并重的教學(xué)模式能真正讓學(xué)生理解掌握基本理論。同時,學(xué)生又經(jīng)歷了軟件開發(fā)的全過程,鍛煉了學(xué)生對MIS管理系統(tǒng)的分析設(shè)計能力、編程測試能力和軟件維護(hù)的能力,真正做到了學(xué)以致用,有效解決了以往軟件工程教學(xué)中存在的理論與實踐嚴(yán)重脫節(jié)、學(xué)生學(xué)習(xí)興趣不高等教學(xué)難題,取得了較好的教學(xué)效果。
[ 注 釋 ]
[1] 郁書好,蘇守寶,劉正余,等.基于項目驅(qū)動的軟件工程教學(xué)模式研究[J].皖西學(xué)院學(xué)報,2009(10).
[2] Jacob Sukhodolsky.Teaching So ftwar e Eng ineeringTo Under gr aduates[C].Pro ceeding s of the 2003 Int ernationalCo nfer ence o n Informat ion Sy st ems and Eng ineer ing,Montreal,Quebec,Canada pp.165-173,2003.
[3] 秦放等.案例驅(qū)動與項目導(dǎo)向結(jié)合的軟件工程課程教學(xué)模式[J].計算機教育,2013(5).
[4] 趙輝,等.“項目導(dǎo)向案例驅(qū)動”的軟件工程教學(xué)模式[J].計算機教育,2012(5).
[5] 張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2008:9.
[責(zé)任編輯:鐘 嵐]