李小波+葉振+朱紅斌
摘要:軟件工程是計(jì)算機(jī)專業(yè)學(xué)生必修的核心課程之一。結(jié)合軟件工程課程的教學(xué)實(shí)踐,提出了多種教學(xué)方法,分析了其主要特點(diǎn),并舉例探討了其在軟件工程課程教學(xué)中的應(yīng)用。軟件工程課程教學(xué)要注意合理采用多種教學(xué)方法,以期達(dá)成良好的教學(xué)效果。
關(guān)鍵詞:計(jì)算機(jī)課程;軟件工程;教學(xué)方法
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)26-0119-02
Discussion on Several Teaching Methods of Software Engineering Course
LI Xiao-bo, YE Zhen, ZHU Hong-bin
(College of Engineering and Design, Lishui University, Lishui 323000, China)
Abstract: Software engineering is one of the core courses for computer major students. Combined with the teaching practice of the software engineering course, several teaching methods were put forward, and their main characteristics were analyzed. The teaching of software engineering course should pay attention to the rational use of a variety of teaching methods, in order to achieve a good teaching effect.
Key words: computer courses; software engineering; teaching methods
1 引言
軟件工程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科生必修的核心課程之一,是指導(dǎo)學(xué)生按照工程化、標(biāo)準(zhǔn)化和規(guī)范化的方法開發(fā)軟件系統(tǒng)的一門課程。要求學(xué)生通過本課程的學(xué)習(xí),能夠掌握軟件工程的基本概念、方法和理論體系;熟悉軟件設(shè)計(jì)與開發(fā)的基本過程;了解軟件項(xiàng)目管理、軟件維護(hù)等方面知識(shí);提高學(xué)生編寫相關(guān)技術(shù)文檔的能力,分析和解決問題的能力和團(tuán)隊(duì)溝通合作能力,達(dá)到理論聯(lián)系實(shí)踐的目的。
我院采用史濟(jì)民等編著的《軟件工程:原理、方法與應(yīng)用》(第3版)作為軟件工程課程教材[1]。該教材包括共14章的教學(xué)內(nèi)容,第一章為緒論,主要綜述軟件和軟件工程的基本概念,接著按上、中、下分3部分展開。上篇介紹傳統(tǒng)的、基于結(jié)構(gòu)化的軟件工程技術(shù),包括軟件生存周期與軟件過程和結(jié)構(gòu)化分析與設(shè)計(jì)等2章內(nèi)容;中篇介紹當(dāng)前軟件開發(fā)的主流范型——面向?qū)ο筌浖こ碳夹g(shù),包括面向?qū)ο笈cUML、需求工程與需求分析、面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)和編碼與測(cè)試等5章內(nèi)容;下篇介紹軟件工程管理與環(huán)境方面的知識(shí)以及軟件開發(fā)的新進(jìn)展,包括軟件維護(hù)、軟件復(fù)用、軟件工程管理、軟件質(zhì)量管理、軟件工程環(huán)境和軟件工程高級(jí)課題等6章內(nèi)容。
軟件工程是一門理論性和實(shí)踐性都要求較高的課程。在該課程的傳統(tǒng)教學(xué)中,主要存在以下幾個(gè)問題:(1)理論知識(shí)難講難懂。在理論教學(xué)環(huán)節(jié),通常由教師在課堂上講授理論知識(shí),大部分學(xué)生聽完后還是似懂非懂,只能粗淺了解一些理論知識(shí);(2)不重視課程的實(shí)踐教學(xué)。適合學(xué)生使用的實(shí)驗(yàn)項(xiàng)目少,學(xué)生實(shí)驗(yàn)效果不理想;(3)理論和實(shí)踐脫節(jié)。學(xué)生很難將課堂上的理論知識(shí)和實(shí)際工程應(yīng)用聯(lián)系起來,并用于實(shí)踐中[2]。教師普遍覺得課程難以講授,而學(xué)生容易感到枯燥、乏味,對(duì)該課程難以產(chǎn)生真正的興趣。因此,文中提出了實(shí)際教學(xué)過程中涉及多種教學(xué)方法,對(duì)其主要特點(diǎn)進(jìn)行了介紹,并探討了其在軟件工程課程教學(xué)中的實(shí)際應(yīng)用,希望對(duì)提高軟件工程課程的教學(xué)效果有所裨益。
2 案例教學(xué)法
案例教學(xué)法(case-based teaching)是以案例為基礎(chǔ)的一種教學(xué)方法[3]。作為與傳統(tǒng)的教學(xué)方式不同的教學(xué)方法, 在案例教學(xué)中,教師根據(jù)課程的特定教學(xué)目的,引用與課堂知識(shí)點(diǎn)緊密相關(guān)的典型案例,設(shè)置若干教學(xué)問題,創(chuàng)設(shè)問題情境,引導(dǎo)學(xué)生運(yùn)用所學(xué)知識(shí)對(duì)問題進(jìn)行綜合分析,進(jìn)而提出各種解決問題的方案,從而激發(fā)和調(diào)動(dòng)學(xué)生主動(dòng)學(xué)習(xí)的熱情和積極性。該教學(xué)法的運(yùn)用,一方面能夠提高學(xué)生分析問題和解決問題的能力,另一方面也有助于培養(yǎng)學(xué)生的表達(dá)能力和團(tuán)隊(duì)合作能力。
案例的設(shè)置和選取應(yīng)考慮到以下方面:1)明確的目的性。案例應(yīng)與授課目標(biāo)緊密相關(guān),不能偏離授課內(nèi)容;2)客觀真實(shí)性。盡量采取實(shí)際工程應(yīng)用中的案例,學(xué)生容易將自己的所學(xué)與所用結(jié)合;3)較強(qiáng)的綜合性。學(xué)生不僅需要具備基本的理論知識(shí),而且需要學(xué)生綜合運(yùn)用各種知識(shí)和靈活的思維方法進(jìn)行分析處理;4)較好的啟發(fā)性。案例教學(xué)目的在于啟發(fā)學(xué)生進(jìn)行獨(dú)立的探索和拓展性的思考,完成從理論知識(shí)到實(shí)踐能力的轉(zhuǎn)化,注重培養(yǎng)學(xué)生具備獨(dú)立思考解決技術(shù)問題能力的創(chuàng)新思維方式。
在案例教學(xué)過程中,要體現(xiàn)學(xué)生的主體性,要求學(xué)生的主動(dòng)參與,突出教師個(gè)體與學(xué)生群體之間、學(xué)生群體與學(xué)生群體之間的互動(dòng)性。在講授“軟件測(cè)試”部分的時(shí)候,設(shè)置了如下軟件測(cè)試案例:輸入代表三角形邊長(zhǎng)的三個(gè)整數(shù),判斷它們能否組成三角形。如果能夠,判斷所構(gòu)成的三角形是一般三角形,等腰三角形或等邊三角形。教師首先提出了以下幾個(gè)問題:1)對(duì)該程序進(jìn)行測(cè)試用例設(shè)計(jì),應(yīng)該采用哪些軟件測(cè)試方法;2)請(qǐng)具體設(shè)計(jì)你所采用方法的測(cè)試用例;3)請(qǐng)問是否還有其他測(cè)試方案;4)請(qǐng)小結(jié)軟件測(cè)試方法及其適用范圍。教師引導(dǎo)學(xué)生預(yù)先利用教材、參考書和網(wǎng)絡(luò)資源等進(jìn)行自主學(xué)習(xí),學(xué)生分組,撰寫報(bào)告。在課堂上,學(xué)生上臺(tái)展示,講解方案,并回答老師和學(xué)生的提問。最后由教師根據(jù)學(xué)生的完成情況進(jìn)行總結(jié)和點(diǎn)評(píng),指出該案例所涉及的知識(shí)點(diǎn)和解題思路。學(xué)生可以當(dāng)場(chǎng)提問,教師就學(xué)生提出的問題進(jìn)行解答。
3 項(xiàng)目驅(qū)動(dòng)法
項(xiàng)目驅(qū)動(dòng)教學(xué)法[4]以建構(gòu)主義學(xué)習(xí)理論為基礎(chǔ),最早由美國(guó)教育家凱茲博士和加拿大教育家查德博士共同提出。該教學(xué)法是由師生共同實(shí)施完成一個(gè)完整的項(xiàng)目工作而進(jìn)行的教學(xué)活動(dòng)。在工程技術(shù)領(lǐng)域,幾乎所有的產(chǎn)品都可以視作項(xiàng)目,項(xiàng)目既可以是一個(gè)大型系統(tǒng),也可以是一個(gè)簡(jiǎn)單的小制作。在教學(xué)過程中,教師負(fù)責(zé)項(xiàng)目的選定,盡量把要傳授的知識(shí)點(diǎn)融入項(xiàng)目之中,起到引導(dǎo)作用。在項(xiàng)目的具體實(shí)施過程中,學(xué)生則承擔(dān)主要職責(zé),自主找到解決問題的方法。此種教學(xué)法體現(xiàn)了理論與實(shí)踐教學(xué)的有機(jī)結(jié)合,做中學(xué),學(xué)中做,既能提高學(xué)生的學(xué)習(xí)積極性,又能充分鍛煉學(xué)生的自學(xué)能力、實(shí)踐能力和創(chuàng)新能力。同時(shí),項(xiàng)目教學(xué)中,學(xué)生以小組為單位進(jìn)行學(xué)習(xí),采取合作學(xué)習(xí)方式,可以有效提高學(xué)生的團(tuán)隊(duì)協(xié)作意識(shí),為適應(yīng)未來職場(chǎng)環(huán)境奠定基礎(chǔ)。
在“面向?qū)ο筌浖こ獭钡膶?shí)驗(yàn)教學(xué)環(huán)節(jié),選取“圖書館管理系統(tǒng)”作為一個(gè)完整的項(xiàng)目[5],貫穿于整個(gè)實(shí)驗(yàn)教學(xué)活動(dòng)中。通過用例圖、類圖和對(duì)象圖、包圖、狀態(tài)圖、活動(dòng)圖、時(shí)序圖、協(xié)作圖、組件圖、配置圖等模型的建立,將UML建模融入軟件開發(fā)過程中。加強(qiáng)了學(xué)生對(duì)軟件建模知識(shí)的理解,提升其實(shí)際應(yīng)用能力[6]。
4 案例+項(xiàng)目驅(qū)動(dòng)法
采取項(xiàng)目教學(xué)法進(jìn)行教學(xué)時(shí),可能一些重要的知識(shí)點(diǎn)無法融入項(xiàng)目,這時(shí)可以利用案例教學(xué)法對(duì)涉及不到的這些知識(shí)點(diǎn)進(jìn)行補(bǔ)充。同樣,采用案例教學(xué)法時(shí),學(xué)生所獲取的知識(shí)比較零散,這時(shí)可以利用項(xiàng)目驅(qū)動(dòng)教學(xué)法把相關(guān)的知識(shí)點(diǎn)連接為整體。因此,在軟件工程課程教學(xué)中可以把項(xiàng)目驅(qū)動(dòng)教學(xué)法與案例教學(xué)法結(jié)合起來使用[7]。
軟件工程課程的教學(xué)內(nèi)容有兩條主線:結(jié)構(gòu)化軟件工程技術(shù)與面向?qū)ο筌浖こ谭椒?。在組織實(shí)驗(yàn)教學(xué)中,分別以一個(gè)具體項(xiàng)目為中心來組織教學(xué)。具體設(shè)計(jì)成兩個(gè)項(xiàng)目:其中結(jié)構(gòu)化軟件工程技術(shù)選取“網(wǎng)上商城系統(tǒng)”項(xiàng)目,面向?qū)ο筌浖こ谭椒ㄟx取“圖書館管理系統(tǒng)”項(xiàng)目。根據(jù)項(xiàng)目情況,精心選取若干層層遞進(jìn)的典型案例,以每個(gè)案例組織講授相關(guān)知識(shí)點(diǎn)。這樣,學(xué)生在整個(gè)課程的學(xué)習(xí)過程中,有一個(gè)總項(xiàng)目的驅(qū)動(dòng),學(xué)生在學(xué)習(xí)完整個(gè)課程后,對(duì)軟件工程的知識(shí)就有了整體性和系統(tǒng)性的理解和掌握。
5 混合式教學(xué)
隨著教育信息化的普及和推廣,混合式教學(xué)(Blending Learning)得到了普遍的關(guān)注。混合式教學(xué)法[8]旨在將傳統(tǒng)學(xué)習(xí)和e-Learning(即數(shù)字化或網(wǎng)絡(luò)化學(xué)習(xí))兩者的優(yōu)勢(shì)結(jié)合起來,該模式主要包括課堂教學(xué)與多媒體網(wǎng)絡(luò)教學(xué)兩個(gè)部分。網(wǎng)絡(luò)教學(xué)可以有效地?cái)U(kuò)展課堂教學(xué),是實(shí)現(xiàn)混合式教學(xué)的主要手段。著手建設(shè)軟件工程在線學(xué)習(xí)網(wǎng)站,設(shè)計(jì)了課程介紹、教學(xué)資源、實(shí)驗(yàn)指導(dǎo)、學(xué)習(xí)園地等模塊,將與課程相關(guān)的教學(xué)資源上網(wǎng)。設(shè)計(jì)了在線論壇,學(xué)生可以相互交流或向教師提問。
6 結(jié)語
軟件工程的課程教學(xué)對(duì)培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的創(chuàng)新思維能力和團(tuán)隊(duì)合作能力起著重要作用,可為學(xué)生后續(xù)的畢業(yè)設(shè)計(jì)和畢業(yè)實(shí)習(xí),以及今后的軟件開發(fā)工作打下堅(jiān)實(shí)的基礎(chǔ)。軟件工程的課程教學(xué)要堅(jiān)持學(xué)生為主體,教師為主導(dǎo)的理念,在教學(xué)過程中突出其實(shí)踐性強(qiáng)的課程特點(diǎn)。教師要科學(xué)合理地采用多種形式的教學(xué)方法,以期提高學(xué)生的學(xué)習(xí)興趣和能動(dòng)性,加深學(xué)生對(duì)知識(shí)的理解和運(yùn)用,突出學(xué)生能力的養(yǎng)成,做到學(xué)以致用。
參考文獻(xiàn):
[1] 史濟(jì)民,顧春華,鄭紅.軟件工程——原理、方法與應(yīng)用(第3版)[M].北京:高等教育出版社,2009:1-372.
[2] 巫華芳.軟件工程課程教學(xué)模式探討[J].科技信息,2007(17):87,201.
[3] 彭佳,彭佳文,曹曉蘭.基于案例的軟件工程課程教學(xué)研究[J].高等農(nóng)業(yè)教育,2009(11):60-62.
[4] 李偉波.項(xiàng)目驅(qū)動(dòng)式的“軟件工程”教學(xué)模式研究與實(shí)踐[J].中國(guó)電力教育,2009(6):45-46.
[5] 蔡敏,徐慧慧,黃炳強(qiáng).UML基礎(chǔ)與Rose建模教程[M].北京:人民郵電出版社,2006:1-343.
[6] 侯云霞,聶愛琳.項(xiàng)目驅(qū)動(dòng)教學(xué)模式在軟件工程與Rose 建模課程中的研究與實(shí)踐[J].科技展望,2015(5):195.
[7] 葉健華,黎 峰.“項(xiàng)目驅(qū)動(dòng)+案例教學(xué)”模式在C語言教學(xué)中的應(yīng)用[J].濟(jì)南職業(yè)學(xué)院學(xué)報(bào),2009(3):18-20,23.
[8] 陳小莉,張穎.《數(shù)據(jù)庫原理及應(yīng)用》精品課程混合式教學(xué)模式研究[J].軟件導(dǎo)刊,2013(5):28-30.