◆王秀珍 陳 萍
(中國(guó)人民解放軍陸軍軍官學(xué)院)
軟件工程課程教學(xué)方法探討
◆王秀珍 陳 萍
(中國(guó)人民解放軍陸軍軍官學(xué)院)
軟件工程,是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,它對(duì)學(xué)員以后從事軟件開發(fā)起著舉足輕重的作用,因此我們要重視軟件工程課程的教學(xué)。立足學(xué)院計(jì)算機(jī)教育的現(xiàn)狀和當(dāng)今軍隊(duì)對(duì)IT人才的需求,并結(jié)合自身擔(dān)任軟件工程課程的教學(xué)工作,提出了一系列行之有效的教學(xué)方法。有效地使用這些教學(xué)方法可以激發(fā)學(xué)員的學(xué)習(xí)興趣,提高學(xué)習(xí)效率,促進(jìn)學(xué)員、教員和教學(xué)資源之間的知識(shí)交互,并使得理論與實(shí)踐能緊密融合。
軟件工程 教學(xué)方法 主動(dòng)性 創(chuàng)造性
軟件工程是一門理論性和實(shí)踐性都很強(qiáng)的學(xué)科,軟件工程課程的教學(xué)分為兩種形式:理論教學(xué)和實(shí)踐教學(xué)。教學(xué)的目的是幫助學(xué)員獲得用知識(shí)和技能解決實(shí)踐問題的能力。理論教學(xué)必須為學(xué)員提供指導(dǎo),來促進(jìn)學(xué)員高級(jí)思維能力的發(fā)展,培養(yǎng)學(xué)員的自主學(xué)習(xí)能力以及在團(tuán)隊(duì)協(xié)作中共同解決復(fù)雜問題的能力。
軟件工程課程內(nèi)容繁雜,理論與技術(shù)方法眾多,課程中涉及的概念、原理比較抽象、復(fù)雜,理解困難,學(xué)員在學(xué)習(xí)過程中容易感到枯燥、乏味,難以激發(fā)學(xué)習(xí)熱情,所以教員在實(shí)際的教學(xué)過程中應(yīng)注意多種教學(xué)方法的合理運(yùn)用,以提高教學(xué)效果。
理論教學(xué)方法就是在理論課的講述過程中所用到的教學(xué)方法。筆者在理論課的講述中,所用到的教學(xué)方法大致有下列幾種:多媒體教學(xué)、案例教學(xué)、啟發(fā)-探索式教學(xué)。
信息化社會(huì)必然要求有適合信息化社會(huì)的教育條件?!肮び破涫?,必先利其器?!倍嗝襟w就是一種已經(jīng)打造好的教學(xué)“利器”,我們要充分利用好多媒體資源以增大課堂的信息量,拓寬學(xué)員的知識(shí)面,提高教學(xué)效率。在多媒體教學(xué)中,節(jié)省了大量板書的時(shí)間,教員可以經(jīng)常采用“提問一回答”的交互方式,鼓勵(lì)學(xué)員提出問題和討論問題,充分發(fā)揮學(xué)員的思考威力,增加了教學(xué)的靈活性,更有利于引導(dǎo)學(xué)員思維,增強(qiáng)師生間的交流,形成教與學(xué)的互動(dòng),促進(jìn)教與學(xué)的相長(zhǎng)。
案例教學(xué)法就是在理論教學(xué)中引入實(shí)際案例,將復(fù)雜抽象的概念用具體生動(dòng)的案例進(jìn)行詮釋。同傳統(tǒng)的教學(xué)方法相比,案例教學(xué)法具有親驗(yàn)性、啟發(fā)性、參與性、實(shí)踐性等特點(diǎn),是培養(yǎng)學(xué)員創(chuàng)新和實(shí)踐能力的重要手段。
軟件工程課程具有強(qiáng)烈的工程和項(xiàng)目背景,在軟件工程理論教學(xué)過程中,如果單純地講解空洞乏味的原理、概念和方法,會(huì)使缺乏軟件開發(fā)實(shí)際經(jīng)驗(yàn)的學(xué)員有種“丈二和尚摸不著頭腦”的感覺,遇到具體項(xiàng)目時(shí)無法下手。案例教學(xué)不僅可以幫助學(xué)員學(xué)會(huì)軟件工程的思想、方法和技術(shù),而且可以加強(qiáng)學(xué)員團(tuán)隊(duì)合作能力的培養(yǎng),有利于啟發(fā)學(xué)員創(chuàng)新潛能、提高學(xué)員實(shí)際解決問題的能力,達(dá)到事半功倍的效果。
軟件開發(fā)的典型案例,是幫助學(xué)員掌握軟件工程方法、進(jìn)行軟件開發(fā)的最好范例。在教學(xué)過程中,教員應(yīng)精心選擇與專業(yè)有關(guān)、學(xué)員熟悉、且功能完整的案例(如部隊(duì)公文管理系統(tǒng),軍事訓(xùn)練信息管理系統(tǒng),學(xué)員學(xué)籍管理系統(tǒng),聯(lián)合作戰(zhàn)指揮信息系統(tǒng)等),將這些經(jīng)典的案例貫穿于理論知識(shí)的講解中,使學(xué)員真正理解書中的理論知識(shí),建立軟件開發(fā)的系統(tǒng)化與工程化觀念和質(zhì)量意識(shí)。
例如,在講授需求分析這章時(shí),可以以學(xué)員較熟悉的“學(xué)員學(xué)籍管理系統(tǒng)”作為討論案例,先要求他們按軟件工程學(xué)的思想和方法認(rèn)真做好需求分析,然后組織課堂討論,進(jìn)而得出需求分析的步驟:需求獲取、需求建模、編寫需求說明文檔、需求驗(yàn)證。在這個(gè)過程中,同學(xué)們能夠深刻理解和掌握需求分析的方法和步驟,并充分認(rèn)識(shí)到需求分析的重要性。
在講授軟件工程技術(shù)這章時(shí),可以結(jié)合軍事訓(xùn)練系統(tǒng)管理系統(tǒng)案例,講解需求工程、軟件體系結(jié)構(gòu)設(shè)計(jì)、用戶界面設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件測(cè)試等內(nèi)容。將枯燥的理論與實(shí)際緊密結(jié)合,變抽象為具體,有利于學(xué)員充分理解和掌握各知識(shí)點(diǎn)。
啟發(fā)-探索式教學(xué)是通過教員的提問,引導(dǎo)啟發(fā)學(xué)員進(jìn)行深入思考、分析和討論,促進(jìn)學(xué)員積極探索。對(duì)于基礎(chǔ)理論部分采用啟發(fā)-探索式教學(xué)更能讓學(xué)員深刻理解和體會(huì)抽象的理論知識(shí),通過課堂互動(dòng)討論,營(yíng)造活躍、輕松的課堂氣氛,同時(shí),也鍛煉了學(xué)員的分析能力和團(tuán)隊(duì)交流合作能力、學(xué)會(huì)探求知識(shí)的方法。
啟發(fā)-探索式教學(xué)是一切教學(xué)方法的靈魂,如何把啟發(fā)-探索式教學(xué)的指導(dǎo)思想融入到講授中去是關(guān)鍵。筆者十分注重啟發(fā)-探索式學(xué)習(xí),上課時(shí)提出一個(gè)或幾個(gè)有意義的問題,鼓勵(lì)學(xué)員課后查閱資料,讓學(xué)員與軟件從業(yè)人員進(jìn)行接觸與交流,從而真正體會(huì)到當(dāng)前軟件工程理論在實(shí)際項(xiàng)目中的應(yīng)用。
例如,在講解軟件過程這部分內(nèi)容時(shí),在學(xué)員了解各個(gè)軟件過程模型的特點(diǎn)之后,給出一系列實(shí)例讓學(xué)員來選擇開發(fā)模型,分析討論什么樣的開發(fā)模型適合什么樣的實(shí)例開發(fā),使學(xué)員深刻理解每個(gè)模型的優(yōu)缺點(diǎn)。通過實(shí)例分析,啟發(fā)學(xué)員如何探求知識(shí),逐步培養(yǎng)學(xué)員提出問題、解決問題的能力,通過教與學(xué)的互動(dòng)作用,充分調(diào)動(dòng)學(xué)員的學(xué)習(xí)主動(dòng)性、創(chuàng)造性。
實(shí)踐教學(xué)方法就是在實(shí)踐課的指導(dǎo)過程中所用到的教學(xué)方法。筆者在指導(dǎo)實(shí)踐課時(shí),所用到的教學(xué)方法大致有下列幾種:項(xiàng)目驅(qū)動(dòng)教學(xué)、任務(wù)驅(qū)動(dòng)教學(xué)、案例-任務(wù)驅(qū)動(dòng)教學(xué)。
項(xiàng)目驅(qū)動(dòng)教學(xué)法,是指在軟件項(xiàng)目實(shí)施過程中導(dǎo)入軟件工程的基本概念、原理、技術(shù)和方法。項(xiàng)目驅(qū)動(dòng)實(shí)踐教學(xué)要求學(xué)員以開發(fā)團(tuán)隊(duì)的方式開發(fā)一個(gè)具有一定規(guī)模的軟件系統(tǒng),使學(xué)員接觸到實(shí)際的問題和環(huán)境,熟悉一個(gè)軟件開發(fā)項(xiàng)目的全過程。項(xiàng)目驅(qū)動(dòng)教學(xué)增強(qiáng)了學(xué)員對(duì)軟件開發(fā)項(xiàng)目的感性認(rèn)識(shí)和興趣,從而學(xué)會(huì)在真實(shí)復(fù)雜條件下,利用所學(xué)理論知識(shí)解決實(shí)際問題,側(cè)重培養(yǎng)學(xué)員發(fā)現(xiàn)問題、獨(dú)立分析問題和解決問題的能力以及團(tuán)隊(duì)合作精神。
實(shí)踐項(xiàng)目?jī)?nèi)容應(yīng)該具有可操作性和適當(dāng)?shù)碾y度,可操作性保證學(xué)員都能完成實(shí)驗(yàn),幫助學(xué)員樹立學(xué)習(xí)信心,適當(dāng)?shù)碾y度有助于培養(yǎng)優(yōu)秀學(xué)員進(jìn)一步鉆研的精神。
例如,讓學(xué)員開發(fā)一個(gè)自己經(jīng)常使用的系統(tǒng)“在線考試系統(tǒng)”。在軟件分析時(shí)期,首先進(jìn)行此項(xiàng)目可行性分析,然后對(duì)幾種過程模型進(jìn)行分析和對(duì)比,選擇合適的過程模型。在這階段過程中,就導(dǎo)入軟件工程的基本概念、可行性研究的任務(wù)和步驟、軟件生命周期的劃分及軟件過程模型的分類等。在需求分析階段,通過對(duì)需求獲取過程來導(dǎo)入需求獲取的方法、進(jìn)行系統(tǒng)分析的方法、應(yīng)注意的問題等。在軟件設(shè)計(jì)時(shí)期,導(dǎo)入概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的概念、步驟和方法等。在編碼與測(cè)試時(shí)期,通過對(duì)該項(xiàng)目的編碼和測(cè)試使學(xué)員理解如何選擇程序設(shè)計(jì)語言,如何測(cè)試及調(diào)試軟件,導(dǎo)入軟件測(cè)試的技術(shù)和方法等。另外,可以使用建模工具和測(cè)試工具進(jìn)行軟件的分析、設(shè)計(jì)和測(cè)試,使用配置管理工具將所產(chǎn)生的各種文檔控制在有序管理之下。
任務(wù)驅(qū)動(dòng)教學(xué)法是將軟件工程整個(gè)課程學(xué)習(xí)內(nèi)容劃分為若干個(gè)特定的任務(wù),每個(gè)任務(wù)包含特定的知識(shí)點(diǎn),并且在實(shí)踐環(huán)節(jié)中完成設(shè)定任務(wù)的教學(xué)法。采用任務(wù)驅(qū)動(dòng)教學(xué)方法,只要完成了課程中設(shè)定的任務(wù),就可以掌握全課程學(xué)習(xí)的內(nèi)容。軟件工程課程的實(shí)踐內(nèi)容需要以小組為單位在課外完成,結(jié)合學(xué)員在理論基礎(chǔ)、能力素質(zhì)、個(gè)人興趣等方面的能力,激發(fā)出學(xué)員學(xué)習(xí)的積極性和創(chuàng)新意識(shí),推進(jìn)學(xué)員自主學(xué)習(xí)的動(dòng)力、有利于各小組技能水平的不同表現(xiàn),有利于不同層次學(xué)員實(shí)踐創(chuàng)新能力和專業(yè)素質(zhì)的全面提高。
筆者在學(xué)員進(jìn)行課程設(shè)計(jì)時(shí)采用了任務(wù)驅(qū)動(dòng)教學(xué),其基本過程為:提出任務(wù)、分析任務(wù)、學(xué)員操作、交流討論、鞏固創(chuàng)新、總結(jié)等。例如,以小組為單位讓學(xué)員用不同的語言編程實(shí)現(xiàn)給定的設(shè)計(jì)任務(wù),不同開發(fā)小組可以選相同的設(shè)計(jì)課題也可以選不同的設(shè)計(jì)課題。小組既有分工到個(gè)人成員的特定任務(wù),也有需要共同協(xié)作才能完成的任務(wù)。在課程設(shè)計(jì)的過程中,對(duì)應(yīng)于軟件生命周期的各個(gè)階段,學(xué)員在開發(fā)過程中體驗(yàn)不同階段所承擔(dān)的不同角色和需要完成的任務(wù),同時(shí)強(qiáng)調(diào)目標(biāo)管理、時(shí)間管理、合作意識(shí)、團(tuán)隊(duì)意識(shí)、工作意識(shí)、品質(zhì)意識(shí)、等方面的重要性。
案例-任務(wù)驅(qū)動(dòng)教學(xué)法,顧名思義是案例教學(xué)法和任務(wù)驅(qū)動(dòng)教學(xué)法相互結(jié)合的一種綜合教學(xué)方法。案例-任務(wù)驅(qū)動(dòng)教學(xué)法以“案例”為引導(dǎo),以“任務(wù)”為驅(qū)動(dòng),將教學(xué)內(nèi)容分解于一個(gè)個(gè)任務(wù)模塊中,在任務(wù)的實(shí)現(xiàn)過程中完成真正意義上的知識(shí)建構(gòu)。
在軟件工程實(shí)踐課中合理、有效地使用案例-任務(wù)驅(qū)動(dòng)教學(xué)法能夠充分調(diào)動(dòng)學(xué)員學(xué)習(xí)的積極性,提高學(xué)員實(shí)踐能力和創(chuàng)新能力,最終達(dá)到使學(xué)員有效地實(shí)現(xiàn)對(duì)當(dāng)前所學(xué)知識(shí)的意義建構(gòu)的目的。
案例-任務(wù)驅(qū)動(dòng)教學(xué)的基本過程為:選擇并設(shè)計(jì)案例、剖析案例提出任務(wù)、實(shí)現(xiàn)任務(wù)和總結(jié)評(píng)價(jià)。例如,選擇學(xué)員熟悉的“學(xué)員管理系統(tǒng)”為案例,本系統(tǒng)目的是為了實(shí)現(xiàn)學(xué)員管理信息化,其基本功能應(yīng)包括:(1)學(xué)員基本資料管理、軍事素質(zhì)管理、獎(jiǎng)懲管理、成績(jī)管理、內(nèi)務(wù)管理、職務(wù)管理等;(2)實(shí)現(xiàn)多條件檢索;(3)生成交叉報(bào)表。再把每個(gè)基本功能細(xì)化成任務(wù)模塊,如成績(jī)管理基本功能可以劃分成成績(jī)的錄入、成績(jī)的查詢、成績(jī)的修改和成績(jī)的備份等任務(wù)模塊。對(duì)于比較簡(jiǎn)單或單一的任務(wù),學(xué)員可以查閱有關(guān)的教材、資料進(jìn)行自主學(xué)習(xí)實(shí)現(xiàn)。對(duì)于綜合性較強(qiáng)、難度較大的任務(wù),可以通過小組討論、交流進(jìn)行協(xié)作學(xué)習(xí)。當(dāng)學(xué)員完成任務(wù)時(shí),教員應(yīng)對(duì)其學(xué)習(xí)成果進(jìn)行展示、分析和評(píng)價(jià)。
軟件工程課程具有較強(qiáng)的實(shí)踐性,是各種開發(fā)經(jīng)驗(yàn)的總結(jié)與提煉。通過探討和采用多種教學(xué)與實(shí)踐方法,重視學(xué)生對(duì)知識(shí)的理解和運(yùn)用,避免死記硬背,提高了學(xué)生的主動(dòng)性和創(chuàng)造性,效果明顯。
[1]路陽,董宏麗.軟件工程案例教學(xué)淺議[J].長(zhǎng)江大學(xué)學(xué)報(bào)(自然科學(xué)版)理工卷,2010,6(7):386-387.
[2]朱新峰,李斌.軟件工程課程教學(xué)研究[J].江淮工學(xué)院學(xué)報(bào)(社會(huì)科學(xué)版.教育論壇),2010,8(8):96-98.
[3]張靜,裴春琴,宗春梅.《軟件工程》課程教學(xué)改革探討[J].現(xiàn)代計(jì)算機(jī),2010,(9):84-85.
[4]周應(yīng)強(qiáng),易俗,田寶勇.案例-任務(wù)式教學(xué)模式在計(jì)算機(jī)基礎(chǔ)教學(xué)中的探索與實(shí)踐[J].計(jì)算機(jī)教育,2009,(13):167.