林勇
【摘要】針對(duì)目前軟件工程教學(xué)存在的問(wèn)題,進(jìn)行教學(xué)法探索和改革。在理論教學(xué)環(huán)節(jié)引入綜合案例和“一頁(yè)講義”教學(xué)法提高學(xué)習(xí)積極性;在實(shí)踐環(huán)節(jié)通過(guò)輔助軟件加強(qiáng)各開發(fā)階段知識(shí)的掌握和項(xiàng)目管理能力的培養(yǎng),采用大系統(tǒng)子模塊的綜合實(shí)踐加強(qiáng)學(xué)生的接口設(shè)計(jì)和團(tuán)隊(duì)合作能力。
【關(guān)鍵詞】軟件工程課程 案例教學(xué) 項(xiàng)目綜合實(shí)踐
【中圖分類號(hào)】G712.4 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2016)01-0010-01
1.引言
軟件工程是一門采用工程化原則指導(dǎo)高質(zhì)量且有效的軟件開發(fā)過(guò)程的課程。軟件工程課程是信息專業(yè)重要的專業(yè)基礎(chǔ)課,除了加深學(xué)生程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù)知識(shí)的掌握,更重要的是培養(yǎng)他們?cè)谲浖_發(fā)管理、設(shè)計(jì)模式、系統(tǒng)開發(fā)工具和團(tuán)隊(duì)協(xié)作等多方面的技能。
傳統(tǒng)的軟件工程教學(xué)注重理論教學(xué),沒有很好地結(jié)合理論與實(shí)際應(yīng)用,雖然教學(xué)過(guò)程中也引入的案例和實(shí)踐環(huán)節(jié),但沒有做到有機(jī)的結(jié)合和及時(shí)的監(jiān)控,往往留于形式 教學(xué)效果并不理想[1,2]。
2.教學(xué)方法探索思路
2.1 理論知識(shí)的案例教學(xué)與”一頁(yè)講義”教學(xué)
軟件工程理論知識(shí)的教學(xué)還是以教師授課為主,向?qū)W生教授軟件工程的基本理論和設(shè)計(jì)原則,內(nèi)容力求少而精,目的是在較短時(shí)間內(nèi)讓學(xué)生了解現(xiàn)階段最廣泛使用的軟件工程技術(shù)的理論基礎(chǔ),為下一步應(yīng)用部分的學(xué)習(xí)奠定基礎(chǔ)。首先,在教學(xué)過(guò)程中結(jié)合具體的軟件開發(fā)案例,我們選擇的案例不是孤立的個(gè)案,而是一組精心設(shè)計(jì)的能夠貫穿軟件設(shè)計(jì)開發(fā)過(guò)程的整體案例,我們選擇的是一個(gè)基于Web的圖書館管理系統(tǒng),由于學(xué)生對(duì)該系統(tǒng)業(yè)務(wù)流程和功能及操作都很熟悉,易于理解。教師在理論講述時(shí)同步結(jié)合圖書館管理開發(fā)的各階段進(jìn)行講解,通過(guò)這種邊做邊教的模式使得學(xué)生能夠理論結(jié)合實(shí)際,加深印象;其次在每個(gè)章節(jié)學(xué)習(xí)之前我們都會(huì)給學(xué)生發(fā)一張“一頁(yè)講義”,講義的內(nèi)容分為兩部分,一部分是本章的知識(shí)提要和重點(diǎn)的知識(shí)點(diǎn),據(jù)此,學(xué)生即能掌握本章學(xué)習(xí)內(nèi)容框架,并對(duì)學(xué)習(xí)的重點(diǎn)難點(diǎn)有所了解。另一部分是少量的課堂練習(xí)題,包括選擇、填空和問(wèn)答題,課堂中會(huì)抽10-15分鐘作課堂練習(xí)并進(jìn)行講解討論,及時(shí)鞏固學(xué)習(xí)的理論知識(shí)。我們發(fā)現(xiàn)紙質(zhì)的課堂練習(xí)題學(xué)生的參與度比互動(dòng)性比僅使用PPT要高,且許多設(shè)計(jì)思路學(xué)生會(huì)直接記在上面,將來(lái)是比較好的復(fù)習(xí)資料。案例教學(xué)與”一頁(yè)講義”教學(xué)能較好地幫助同學(xué)認(rèn)識(shí)軟件開發(fā)引入工程化思想的必要性并提高學(xué)習(xí)的積極性。
2.2 拓展實(shí)踐與強(qiáng)調(diào)團(tuán)隊(duì)協(xié)作
課程實(shí)踐對(duì)軟件工程課程具有非常重要的作用,通過(guò)實(shí)踐,學(xué)生能夠增強(qiáng)運(yùn)用軟件工程基礎(chǔ)知識(shí)的能力,對(duì)系統(tǒng)設(shè)計(jì)技能進(jìn)行訓(xùn)練、培養(yǎng)軟件項(xiàng)目的開發(fā)能力和團(tuán)隊(duì)協(xié)作意識(shí)。實(shí)踐環(huán)節(jié)包括兩方面內(nèi)容:基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)踐。
基礎(chǔ)實(shí)驗(yàn)通過(guò)CASE(計(jì)算機(jī)輔助軟件工程)工具的學(xué)習(xí)并運(yùn)用這些工具加深學(xué)生對(duì)軟件生命周期各階段的理解,著重培訓(xùn)學(xué)生對(duì)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及軟件測(cè)試階段相應(yīng)輔助工具的掌握,并運(yùn)用這些工具進(jìn)行各階段輔助設(shè)計(jì)。例如:運(yùn)用Microsoft Visio繪制軟件結(jié)構(gòu)圖、程序流程圖等;使用ERWin輔助數(shù)據(jù)庫(kù)設(shè)計(jì);運(yùn)用Rational Rose完成需求分析與系統(tǒng)設(shè)計(jì)中的用例圖、類圖、順序圖和部署圖等繪制。基礎(chǔ)實(shí)驗(yàn)主要實(shí)現(xiàn)軟件工程各生命周期階段教學(xué)內(nèi)容的延伸與應(yīng)用,強(qiáng)調(diào)CASE工具的運(yùn)用,使得軟件開發(fā)能夠更高效、標(biāo)準(zhǔn)地進(jìn)行。
2.3 培養(yǎng)工程管理與應(yīng)用能力
軟件工程強(qiáng)調(diào)使用工程化原則指導(dǎo)軟件開發(fā),因此對(duì)于軟件開發(fā)過(guò)程中的項(xiàng)目管理也是學(xué)生需要關(guān)注和學(xué)習(xí)的內(nèi)容。除了理論教學(xué)中需要對(duì)軟件項(xiàng)目管理進(jìn)行講述外,在基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)踐環(huán)節(jié),我們也加入了項(xiàng)目管理內(nèi)容的實(shí)踐,通過(guò)Microsoft Project學(xué)習(xí)項(xiàng)目資源的合理調(diào)度,通過(guò)VSS(Microsoft Visual SourceSafe)進(jìn)行代碼管理,防止各成員間代碼版本的沖突,并且要求學(xué)生在綜合實(shí)踐環(huán)節(jié)必須使用這些工具,并作為考核的一項(xiàng)內(nèi)容。
2.4 創(chuàng)造實(shí)踐環(huán)境
在軟件工程學(xué)習(xí)過(guò)程中可以讓學(xué)生接觸一些現(xiàn)成的軟件系統(tǒng),通過(guò)對(duì)商業(yè)化軟件系統(tǒng)的觀摩,能夠讓學(xué)生認(rèn)識(shí)復(fù)雜系統(tǒng)的集成方案,加深對(duì)整體框架的理解,同時(shí)對(duì)真正軟件系統(tǒng)的界面設(shè)計(jì)、出錯(cuò)處理、系統(tǒng)管理等方面有所了解,學(xué)習(xí)軟件設(shè)計(jì)開發(fā)過(guò)程中注重軟件的可用性、可操作性、健壯性和可維護(hù)性。由于我們專業(yè)特點(diǎn),與醫(yī)院和醫(yī)用軟件公司有長(zhǎng)期的合作關(guān)系,可以免費(fèi)獲得一些成熟的軟件系統(tǒng)(如:醫(yī)院信息系統(tǒng)),這為學(xué)生創(chuàng)造了一定的實(shí)踐環(huán)境。計(jì)算機(jī)或其他信息相關(guān)專業(yè)的教師也可以根據(jù)自身專業(yè)特點(diǎn)有意識(shí)的收集具有代表性的系統(tǒng),供學(xué)生參觀學(xué)習(xí)。
3.教學(xué)方法具體實(shí)踐
在教學(xué)方法實(shí)踐過(guò)程中,理論和實(shí)踐部分并不是相互獨(dú)立的,應(yīng)當(dāng)根據(jù)理論教學(xué)的推進(jìn),結(jié)合相應(yīng)的案例并且逐步實(shí)現(xiàn)各階段的文檔。我們?cè)谡n程教學(xué)初期,首先給以自主結(jié)合的方式完成分組,選定相應(yīng)需要開發(fā)的子系統(tǒng)并分配給各小組。題目選定后,隨著理論教學(xué)的推進(jìn),要求各小組逐步提交各階段文檔,而不是學(xué)期末一起上交,這樣能規(guī)范各模塊的開發(fā)按照先文檔,后設(shè)計(jì)再編碼的步驟進(jìn)行,避免系統(tǒng)編碼完成后再補(bǔ)充文檔的尷尬。部分文檔提交后需要集中小組長(zhǎng)進(jìn)行一定的討論,特別是整體數(shù)據(jù)庫(kù)的設(shè)計(jì)需要所有小組共同分析討論來(lái)完成,教師旁聽并指導(dǎo),指出缺陷和不足,并綜合得到最終設(shè)計(jì)結(jié)果。各模塊接口設(shè)計(jì)由相關(guān)模塊小組長(zhǎng)共同討論完成。在學(xué)期末專門安排一次課用于綜合實(shí)踐答辯,由小組代表對(duì)軟件的設(shè)計(jì)和開發(fā)進(jìn)行總結(jié)匯報(bào)并演示開發(fā)的系統(tǒng)。
在課程的考核方式上進(jìn)行優(yōu)化,強(qiáng)調(diào)實(shí)踐能力,因此綜合實(shí)踐的部分的考核比例增加至40%,理論考試占40%,而平時(shí)分占20%。為了避免部分學(xué)生“渾水摸魚”,我們會(huì)根據(jù)小組成員對(duì)項(xiàng)目開發(fā)做出的貢獻(xiàn)進(jìn)行度量,設(shè)置相應(yīng)的權(quán)重,綜合實(shí)踐的考核分?jǐn)?shù)根據(jù)貢獻(xiàn)權(quán)重計(jì)算得到。這樣能夠激發(fā)學(xué)生的實(shí)踐熱情,并合理的體現(xiàn)各學(xué)生工作量。
4.結(jié)束語(yǔ)
軟件工程課程非常強(qiáng)調(diào)理論聯(lián)系實(shí)踐程,在理論教學(xué)中引入貫穿整個(gè)學(xué)習(xí)過(guò)程的具體案例,能夠提高理論的實(shí)用性;“一頁(yè)講義”式的教學(xué)能夠幫助學(xué)生對(duì)整體知識(shí)框架的把握,配合具體的課堂練習(xí)能夠及時(shí)對(duì)理論知識(shí)進(jìn)行鞏固。在教學(xué)過(guò)程中,我們始終把實(shí)踐環(huán)節(jié)放在主要的地位,通過(guò)綜合系統(tǒng)子模塊開發(fā),讓學(xué)生認(rèn)識(shí)到模塊化設(shè)計(jì)和團(tuán)體協(xié)作的重要作用;我們同時(shí)也關(guān)注項(xiàng)目管理知識(shí)的傳授。教學(xué)結(jié)果證明,通過(guò)上述教學(xué)方法的探索與改革,能有效地提高了學(xué)生的學(xué)習(xí)興趣,增強(qiáng)了學(xué)生使用軟件工程方法和技術(shù)解決實(shí)際問(wèn)題的能力,培養(yǎng)了學(xué)生團(tuán)隊(duì)合作精神。
參考文獻(xiàn):
[1]張劍波,方芳,袁國(guó)斌.軟件工程專業(yè)實(shí)踐教學(xué)體系改革[J]. 計(jì)算機(jī)教育,2013(12):37-41.
[2]王衛(wèi)紅,楊良懷,江領(lǐng).軟件工程優(yōu)勢(shì)專業(yè)的建設(shè)與發(fā)展[J]. 計(jì)算機(jī)教育,2013(10):1-4,9.
[3]吳建斌, 陳中育,葉榮華.軟件工程類課程教學(xué)模式改革探索[J].中國(guó)信息技術(shù)教育,2013(5):119-121.
[4]Hay P,Katsikitis M.The expert in problem-based and case-based learning: necessary or not[J]. Medical Education, 2001, 35(1):25-30
[5]徐利軍, 張?jiān)?,洪中華等,軟件工程課程教學(xué)改革研究[J]. 中國(guó)信息技術(shù)教育, 2014(16): 10-11.