摘要:本文分析了軟件工程教學(xué)中存在的問題,介紹了案例教學(xué)法和問題式教學(xué)模式在軟件工程教學(xué)改革中的運(yùn)用,提出了基礎(chǔ)實(shí)驗(yàn)與綜合實(shí)踐相結(jié)合的層次化實(shí)踐教學(xué)方式,培養(yǎng)學(xué)生通過軟件工程實(shí)踐體驗(yàn)軟件項(xiàng)目開發(fā)的過程掌握相關(guān)的理論、方法和技能。
關(guān)鍵詞:軟件工程教學(xué);案例教學(xué)法;問題式教學(xué)模式;層次化實(shí)踐教學(xué)
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2014)02-0042-03
軟件工程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)開設(shè)的一門核心課程,學(xué)生掌握軟件開發(fā)過程和主流的軟件開發(fā)方法是軟件工程課程教學(xué)的基本目標(biāo)。受教學(xué)資源、既定培養(yǎng)方案、學(xué)生個(gè)人條件等諸多因素的影響,軟件工程課程教學(xué)中還存在一系列問題。我們根據(jù)軟件工程課程特點(diǎn),在近幾年的教學(xué)實(shí)踐中,對(duì)軟件工程課程的教學(xué)內(nèi)容、教學(xué)方法、實(shí)踐教學(xué)方式等進(jìn)行了逐步調(diào)整和改進(jìn),解決了軟件工程課程教學(xué)中存在的部分問題。
一、軟件工程教學(xué)中的問題
軟件工程是一門伴隨著軟件危機(jī)的出現(xiàn)而發(fā)展起來的、集工程性和應(yīng)用實(shí)踐性為一體的課程。由于軟件規(guī)模不斷擴(kuò)大、軟件環(huán)境更迭頻繁、軟件危機(jī)的表現(xiàn)形式多樣,致使軟件開發(fā)的新方法、新技術(shù)層出不窮,軟件工程課程的內(nèi)容處于一種不斷改進(jìn)和發(fā)展的狀態(tài)。但目前軟件工程教材內(nèi)容相對(duì)滯后,且多以軟件開發(fā)理論和設(shè)計(jì)原則的形式呈現(xiàn),軟件開發(fā)案例等應(yīng)用性內(nèi)容偏少。在教學(xué)過程中,受教材內(nèi)容影響,教師習(xí)慣從軟件開發(fā)理論、軟件設(shè)計(jì)原則出發(fā)安排教學(xué)內(nèi)容,忽視軟件開發(fā)案例在教學(xué)中的支撐作用,教學(xué)內(nèi)容與實(shí)際應(yīng)用脫節(jié)。軟件開發(fā)過程包括軟件體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)、應(yīng)用程序設(shè)計(jì)、軟件系統(tǒng)實(shí)施等多個(gè)環(huán)節(jié),所以軟件工程教學(xué)內(nèi)容還涉及除軟件工程之外的其他多門軟件類課程。受教學(xué)資源和課程計(jì)劃學(xué)時(shí)等因素的制約,軟件工程的教學(xué)內(nèi)容往往缺乏相關(guān)軟件類課程之間的實(shí)質(zhì)性聯(lián)系,且實(shí)踐教學(xué)內(nèi)容和時(shí)間相對(duì)不足。加之學(xué)生少有軟件項(xiàng)目開發(fā)的機(jī)會(huì)和經(jīng)歷,致使學(xué)生感覺軟件工程課程內(nèi)容難以理解、不夠?qū)嵱?,缺乏整體感和系統(tǒng)性。針對(duì)上述問題,我們將新的教學(xué)內(nèi)容注入軟件工程課程;通過案例教學(xué)強(qiáng)化軟件工程課程的實(shí)用性特色;以層次化方式組織實(shí)踐教學(xué),使學(xué)生在軟件開發(fā)基本技能、綜合分析問題能力、軟件系統(tǒng)開發(fā)經(jīng)歷、團(tuán)隊(duì)協(xié)作意識(shí)培養(yǎng)等方面得到系統(tǒng)訓(xùn)練。
二、軟件工程教學(xué)的改革思路
1.調(diào)整教學(xué)內(nèi)容、注入教學(xué)案例。在教學(xué)內(nèi)容方面,對(duì)較陳舊的教材內(nèi)容進(jìn)行精簡,并增加與現(xiàn)代軟件開發(fā)方法和技術(shù)緊密相關(guān)的教學(xué)內(nèi)容。針對(duì)軟件工程教材內(nèi)容普遍重視理論、實(shí)用案例不足的狀況,將案例教學(xué)法[1]引入課堂教學(xué)中,通過案例分析對(duì)抽象內(nèi)容進(jìn)行詮釋,幫助學(xué)生理解軟件開發(fā)理論和原則。
2.貫通學(xué)科知識(shí)、突出綜合特色。軟件工程課程內(nèi)容覆蓋面較寬,與數(shù)據(jù)庫系統(tǒng)原理、程序設(shè)計(jì)語言、算法設(shè)計(jì)與分析等軟件類課程內(nèi)容交織,為了實(shí)現(xiàn)相關(guān)課程之間內(nèi)容的貫通、拓展學(xué)生的學(xué)科知識(shí)、提高學(xué)生綜合分析和解決問題的能力,將專題學(xué)習(xí)(Project-Based Learning)[2]、任務(wù)學(xué)習(xí)(Task-Based Learning)[3]和基于問題的學(xué)習(xí)(Problem-Based Learning)[4]等教學(xué)方法不同程度的引入課程教學(xué)中,突出軟件工程課程的綜合性、實(shí)踐性特色。
3.拓展實(shí)踐環(huán)節(jié)、培養(yǎng)工程能力。軟件工程實(shí)踐教學(xué)直接影響學(xué)生的軟件開發(fā)能力,學(xué)生軟件開發(fā)能力的提高是一個(gè)循序漸進(jìn)的過程。在常規(guī)的軟件工程課程培養(yǎng)方案中,主要安排了基礎(chǔ)實(shí)驗(yàn)內(nèi)容,對(duì)學(xué)生的工程化意識(shí)和綜合實(shí)踐能力的培養(yǎng)重視不夠。采取分層次、分步驟安排實(shí)踐教學(xué)內(nèi)容,由基礎(chǔ)實(shí)驗(yàn)逐步過渡到綜合實(shí)踐的教學(xué)方式,可以將軟件工程學(xué)科概念和學(xué)生的軟件項(xiàng)目研發(fā)能力逐步整合在一起,使學(xué)生在軟件工程實(shí)踐過程中逐步掌握學(xué)科知識(shí)、提高軟件項(xiàng)目的分析設(shè)計(jì)和實(shí)施能力。
三、軟件工程教學(xué)改革的實(shí)踐
1.課堂教學(xué)中的案例教學(xué)。案例教學(xué)可以強(qiáng)化軟件工程理論與實(shí)際應(yīng)用問題的結(jié)合。通過典型案例分析,可以對(duì)抽象的軟件工程原理和準(zhǔn)則進(jìn)行直觀詮釋,幫助學(xué)生理解課程內(nèi)容。
教學(xué)案例通常不是孤立的個(gè)案,一組精心設(shè)計(jì)的教學(xué)案例可以幫助學(xué)生理解基礎(chǔ)知識(shí)、掌握基本技能、提高運(yùn)用知識(shí)的能力。以軟件需求建模為例,在講述軟件系統(tǒng)行為模型的描述工具狀態(tài)轉(zhuǎn)換圖時(shí),使用幾個(gè)不同的教學(xué)案例,由淺入深地分析狀態(tài)轉(zhuǎn)換圖的作用、使用規(guī)則以及如何描述系統(tǒng)的行為三個(gè)方面的問題。首先,以學(xué)生比較熟悉的操作系統(tǒng)中的一個(gè)進(jìn)程為例,通過狀態(tài)轉(zhuǎn)換圖形象的描述了進(jìn)程的就緒、運(yùn)行、等待和完成四個(gè)狀態(tài)及其轉(zhuǎn)換關(guān)系,著重說明狀態(tài)轉(zhuǎn)換圖的作用。第二個(gè)案例是機(jī)票預(yù)訂系統(tǒng)的行為模型創(chuàng)建,介紹狀態(tài)轉(zhuǎn)換圖的畫法規(guī)則。機(jī)票預(yù)訂系統(tǒng)行為涵蓋機(jī)票查詢、機(jī)票預(yù)訂、訂單支付等幾個(gè)分支,比較完整地展現(xiàn)了狀態(tài)轉(zhuǎn)換圖中的圖符及使用規(guī)則。實(shí)際的軟件項(xiàng)目通常比較復(fù)雜,軟件需求建模要考慮多種條件、各種異常狀態(tài),所以將復(fù)印機(jī)控制程序作為第三個(gè)案例,其狀態(tài)轉(zhuǎn)換圖包括復(fù)印機(jī)正常工作流程、中斷處理流程(比如復(fù)印過程中復(fù)印紙用完等情況)、硬件故障處理流程等幾種系統(tǒng)行為。
2.問題式教學(xué)模式的運(yùn)用。軟件開發(fā)過程是一個(gè)綜合性的系統(tǒng)工程。軟件工程課程內(nèi)容與多門先修的軟件課程密切相關(guān),軟件開發(fā)項(xiàng)目是一個(gè)多學(xué)科貫通的綜合實(shí)踐問題。對(duì)于軟件工程課程,從教學(xué)內(nèi)容到教學(xué)形式都應(yīng)該倡導(dǎo)調(diào)動(dòng)學(xué)生的主動(dòng)學(xué)習(xí)情緒,即學(xué)生能夠基于自己的思考和實(shí)踐解決問題。我們?cè)谲浖こ探虒W(xué)改革實(shí)踐中,提出了一種主動(dòng)式、知識(shí)探究型的教學(xué)模式——問題式教學(xué)模式。問題式教學(xué)活動(dòng)中,教師依據(jù)課程內(nèi)容和學(xué)生的知識(shí)結(jié)構(gòu)、設(shè)計(jì)具備一定挑戰(zhàn)空間的非良構(gòu)問題;將學(xué)生組織成學(xué)習(xí)團(tuán)隊(duì);學(xué)生通過分析、解決緊密聯(lián)系實(shí)際的非良構(gòu)問題來探究問題背后隱含的概念和原理、拓展學(xué)科知識(shí)、提高實(shí)踐能力、培養(yǎng)團(tuán)隊(duì)協(xié)作意識(shí)。[5]問題式教學(xué)方法注重教學(xué)內(nèi)容的實(shí)用性,在一定程度上激發(fā)了學(xué)生的學(xué)習(xí)主動(dòng)性、強(qiáng)化了學(xué)生的軟件開發(fā)實(shí)踐能力。endprint
3.實(shí)踐教學(xué)環(huán)節(jié)的調(diào)整。從學(xué)生運(yùn)用軟件工程基礎(chǔ)知識(shí)的能力、系統(tǒng)化的個(gè)人職業(yè)技能訓(xùn)練、軟件項(xiàng)目的開發(fā)能力和團(tuán)隊(duì)協(xié)作意識(shí)四個(gè)層面出發(fā),將軟件工程實(shí)踐教學(xué)劃分為基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)踐兩個(gè)層次。
基礎(chǔ)實(shí)驗(yàn)培養(yǎng)學(xué)生對(duì)軟件生命周期組成階段的理解,重點(diǎn)訓(xùn)練學(xué)生對(duì)需求分析、軟件設(shè)計(jì)和軟件測(cè)試階段相應(yīng)開發(fā)技能和工具的掌握?;A(chǔ)實(shí)驗(yàn)的內(nèi)容偏重于設(shè)計(jì)型,實(shí)驗(yàn)形式又具有驗(yàn)證型的特征?;A(chǔ)實(shí)驗(yàn)是課堂教學(xué)中案例教學(xué)法的延伸和應(yīng)用,教師在課堂上通過教學(xué)案例闡述如何運(yùn)用軟件工程理論、技能和工具;學(xué)生在實(shí)驗(yàn)過程中,模擬解決與教學(xué)案例類似的軟件問題,以實(shí)踐的方式體會(huì)和鞏固軟件工程知識(shí)。基礎(chǔ)實(shí)驗(yàn)強(qiáng)調(diào)對(duì)每個(gè)學(xué)生進(jìn)行軟件工程基本技能的完整訓(xùn)練,學(xué)生通過實(shí)驗(yàn)獲得軟件開發(fā)過程的認(rèn)知、掌握軟件工程的理論和方法,提高個(gè)人的軟件項(xiàng)目能力。
軟件工程綜合實(shí)踐側(cè)重對(duì)學(xué)生軟件項(xiàng)目開發(fā)能力和團(tuán)隊(duì)協(xié)作意識(shí)的培養(yǎng),是一個(gè)系統(tǒng)化的工程實(shí)踐活動(dòng),實(shí)踐內(nèi)容涵蓋軟件項(xiàng)目開發(fā)的完整過程。學(xué)生可以通過綜合實(shí)踐環(huán)節(jié)獲得較真實(shí)的軟件項(xiàng)目開發(fā)經(jīng)驗(yàn)。
在綜合實(shí)踐環(huán)節(jié),教師要為學(xué)生提供兼具普適性和創(chuàng)新性特色的綜合實(shí)踐題目。普適性意味著實(shí)踐題目要具備明確的可操作性,學(xué)生能夠通過綜合實(shí)踐活動(dòng)體驗(yàn)軟件項(xiàng)目開發(fā)的基本規(guī)范、經(jīng)歷軟件開發(fā)的完整過程、鞏固軟件工程理論知識(shí)和技能。所以綜合實(shí)踐題目應(yīng)該與現(xiàn)實(shí)中的實(shí)際需求密切相關(guān),這類需求明確具體,學(xué)生的感性認(rèn)識(shí)深刻。考慮到學(xué)生組織成不同的軟件開發(fā)團(tuán)隊(duì)、每個(gè)團(tuán)隊(duì)要完成各自獨(dú)立的軟件項(xiàng)目開發(fā)工作,實(shí)踐題目還應(yīng)該具備在知識(shí)需求上基本相同、但應(yīng)用背景不同的特點(diǎn),使學(xué)生容易借鑒類似的軟件開發(fā)案例、從中汲取直觀具體的軟件設(shè)計(jì)和實(shí)現(xiàn)經(jīng)驗(yàn)。題目的創(chuàng)新性特色體現(xiàn)在軟件開發(fā)技能方面引導(dǎo)學(xué)生溫故知新、舉一反三;即對(duì)滿足普適性要求的實(shí)踐題目,進(jìn)行適當(dāng)?shù)男枨髷U(kuò)展和功能延伸,要適當(dāng)保持問題的非良構(gòu)性、保留一定的不確定性和疑點(diǎn),留給學(xué)生思考空間。在綜合實(shí)踐題目的創(chuàng)新性層面上,學(xué)生需要在問題的牽引下去適當(dāng)學(xué)習(xí)專業(yè)以外的知識(shí)、搜集提煉信息、補(bǔ)充項(xiàng)目本身缺失的條件,最終制定可行的軟件項(xiàng)目實(shí)現(xiàn)方案并解決軟件實(shí)施問題。綜合實(shí)踐題目的創(chuàng)新性特點(diǎn),可以在一定程度上激發(fā)學(xué)生的創(chuàng)造性思維潛力、擴(kuò)展學(xué)生的專業(yè)視野。
軟件工程綜合實(shí)踐環(huán)節(jié)是學(xué)生對(duì)軟件開發(fā)過程的模擬體驗(yàn),現(xiàn)代軟件開發(fā)工作多以團(tuán)隊(duì)協(xié)作方式進(jìn)行。所以對(duì)學(xué)生而言,需要組建軟件項(xiàng)目開發(fā)團(tuán)隊(duì)并進(jìn)行成員角色分配。組建項(xiàng)目團(tuán)隊(duì)時(shí)要考慮學(xué)生的認(rèn)知優(yōu)勢(shì)、學(xué)習(xí)習(xí)慣、學(xué)習(xí)興趣、動(dòng)手能力、邏輯思維能力,性格特點(diǎn)等因素,引導(dǎo)學(xué)生按照既發(fā)揮個(gè)人特長、又優(yōu)勢(shì)互補(bǔ)的原則進(jìn)行團(tuán)隊(duì)組建和工作分工。
四、結(jié)語
將精心設(shè)計(jì)的典型教學(xué)案例注入軟件工程教學(xué)內(nèi)容中,可以有效改善軟件工程教材內(nèi)容偏重軟件開發(fā)理論和軟件設(shè)計(jì)原則、弱化軟件開發(fā)實(shí)踐的狀況。知識(shí)探究型為主要特點(diǎn)的問題式教學(xué)模式可以激發(fā)學(xué)生的學(xué)習(xí)主動(dòng)性、拓展學(xué)生的學(xué)科知識(shí)、提高學(xué)生綜合分析和解決問題的能力?;A(chǔ)實(shí)驗(yàn)與綜合實(shí)踐相結(jié)合的層次化實(shí)踐教學(xué)方式,將學(xué)生的軟件工程基本技能和軟件項(xiàng)目研發(fā)能力整合在一起,使學(xué)生在軟件項(xiàng)目的分析設(shè)計(jì)和實(shí)施能力的訓(xùn)練、團(tuán)隊(duì)協(xié)作意識(shí)的培養(yǎng)方面獲得完整體驗(yàn)。
參考文獻(xiàn):
[1]Hay·P,Katsikitis·M.The expert in problem-based and case-based learning:necessary or not?[J].Medical Education,2001,35(1):25-30.
[2]Robert Michael Capraro,Scott?W.Slough.Project-Based Learning:An Integrated Science,Technology,Engineering,and Mathematics(STEM)Approach[M].Sense Publishers,2009.
[3]B·R,Simone Grin Verlag.New Media and Task-Based Teaching/Task-Based Learning:Web Quests[M].Grin Verlag,2010
[4]Boud·D& Feletti,G.I.(eds.).The Challenge of Problem-Based Learning,2nd Ed[M].London:Kogan Page Ltd.,1997.
[5]盧瑩,林蔭.問題式教學(xué)模式研究[J].計(jì)算機(jī)教育,2011,(14):98-101.
基金項(xiàng)目:常州大學(xué)教育教學(xué)研究基金項(xiàng)目(項(xiàng)目編號(hào):GJY11020019)
作者簡介:盧瑩(1962-),女,河南焦作,碩士,研究方向:軟件工程與數(shù)據(jù)庫技術(shù)。endprint