吳艷
(浙江工業(yè)大學(xué)之江學(xué)院,紹興312030)
《軟件工程》是本學(xué)院計(jì)算機(jī)和軟件工程專(zhuān)業(yè)的一門(mén)重要的專(zhuān)業(yè)課,開(kāi)設(shè)時(shí)間是在大三的上學(xué)期,也是一門(mén)承上啟下的核心課程。《軟件工程》既能鞏固和拓展已學(xué)的《面向?qū)ο蟪绦蛟O(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《數(shù)據(jù)庫(kù)》等專(zhuān)業(yè)核心基礎(chǔ)課程教學(xué)內(nèi)容,又能為后繼的專(zhuān)業(yè)實(shí)踐課程,如《Web 系統(tǒng)分析與設(shè)計(jì)》、《移動(dòng)應(yīng)用與開(kāi)發(fā)》、《物聯(lián)網(wǎng)技術(shù)與開(kāi)發(fā)》等,提供開(kāi)發(fā)方法和思路。此外,《軟件工程》課程也是考研和軟考的主要專(zhuān)業(yè)課。因此,《軟件工程》課程教學(xué)質(zhì)量直接影響到后繼課程教學(xué)、專(zhuān)業(yè)拓展以及學(xué)生就業(yè)。
作為《軟件工程》課程的主講教師,雖然在每輪的課程教學(xué)中都會(huì)根據(jù)學(xué)生的實(shí)際情況進(jìn)行調(diào)整;但是,隨著課程的重要程度逐步提升,傳統(tǒng)的《軟件工程》教學(xué)方法已經(jīng)滿足不了課程發(fā)展的需求,具體體現(xiàn)在以下幾個(gè)方面:
(1)課程大綱滿足不了課程發(fā)展的需要
課程原教學(xué)大綱主要介紹傳統(tǒng)的軟件工程方法學(xué)和面向?qū)ο蠓椒▽W(xué)。受課程課時(shí)的限制,兩種方法的講解只能“重理論,輕實(shí)踐”。此外,大部分學(xué)生不能理解開(kāi)發(fā)過(guò)程之間的銜接,因而不能保證開(kāi)發(fā)的持續(xù)性和一致性。
(2)教材中實(shí)例缺乏系統(tǒng)性和完整性
①缺乏完整的案例貫穿課程教學(xué),因而不能系統(tǒng)、連貫地引導(dǎo)學(xué)生展開(kāi)探索性學(xué)習(xí)。
②許多教材后的習(xí)題類(lèi)型單一,不能較好體現(xiàn)知識(shí)的循序漸進(jìn)的演進(jìn)過(guò)程。
③實(shí)例間沒(méi)有關(guān)聯(lián)或少關(guān)聯(lián),缺乏完整性和持續(xù)漸進(jìn),不能完整地體現(xiàn)軟件開(kāi)發(fā)過(guò)程。
(3)實(shí)踐重模仿、輕創(chuàng)新
在課程的實(shí)踐環(huán)節(jié),無(wú)論是實(shí)驗(yàn)課還是課程設(shè)計(jì),主要的教學(xué)方法是“老師做,學(xué)生模仿”。雖然,學(xué)生在模仿過(guò)程中能切身體會(huì)軟件開(kāi)發(fā)過(guò)程;但是,總體來(lái)說(shuō),還是擺脫不了被動(dòng)的學(xué)習(xí),從而一定程度上抑制了學(xué)生創(chuàng)新思維能力。
(4)實(shí)踐環(huán)節(jié)缺乏過(guò)程監(jiān)督和階段性文檔總結(jié)
由于課時(shí)限制,教師在課堂上只能對(duì)學(xué)生跟進(jìn)的操作進(jìn)行點(diǎn)評(píng)和提示,無(wú)法掌控項(xiàng)目開(kāi)發(fā)進(jìn)度和質(zhì)量,更不用說(shuō)及時(shí)給出實(shí)踐指導(dǎo)。此外,學(xué)生在開(kāi)發(fā)過(guò)程中不重視文檔編制,缺乏或不重視階段性文檔總結(jié)。更糟糕的是,會(huì)影響師生之間的溝通。
(5)實(shí)踐重實(shí)現(xiàn),輕設(shè)計(jì)和規(guī)范
大部分學(xué)生認(rèn)為計(jì)算機(jī)軟件專(zhuān)業(yè)的學(xué)生學(xué)習(xí)目標(biāo)就是要學(xué)會(huì)編程,只要程序運(yùn)行結(jié)果正確,根本不考慮程序是否易理解、易修改、易維護(hù)和易擴(kuò)展。因此,會(huì)忽視在分析和設(shè)計(jì)階段建立嚴(yán)謹(jǐn)?shù)倪壿嬆P?,結(jié)果最終實(shí)現(xiàn)的編碼不能滿足項(xiàng)目需求的要求。
(6)課程考核重理論,輕實(shí)踐
課程大綱中確定的考核包括三部分:期末考試成績(jī)占總成績(jī)的70%、平時(shí)成績(jī)(可以是作業(yè)、實(shí)驗(yàn),也可是項(xiàng)目)占20%、考勤得分占10%。從考核比例可以看出,這種考核方式不能如實(shí)反映學(xué)生實(shí)際綜合分析能力和實(shí)踐能力。
課程教改以案例實(shí)施為背景,以案例開(kāi)發(fā)過(guò)程(分析、設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)行)為載體,培養(yǎng)和提升學(xué)生開(kāi)發(fā)軟件項(xiàng)目的綜合專(zhuān)業(yè)知識(shí)、文檔編制技能以及團(tuán)隊(duì)協(xié)作意識(shí)。課程改革目標(biāo)主要體現(xiàn)在以下幾個(gè)方面:
(1)通過(guò)案例驅(qū)動(dòng)課堂教學(xué),促使學(xué)生利用面向?qū)ο蠓椒ㄑ驖u進(jìn)開(kāi)發(fā)軟件項(xiàng)目;
(2)培養(yǎng)學(xué)生工程素質(zhì)和職業(yè)素養(yǎng);
(3)通過(guò)課程教學(xué)的重構(gòu),引導(dǎo)學(xué)生自主、可持續(xù)性學(xué)習(xí);同時(shí),也提高教師組織、引導(dǎo)和應(yīng)變能力。
課程教改需要從專(zhuān)業(yè)培養(yǎng)目標(biāo)、應(yīng)用型大學(xué)性質(zhì)以及就業(yè)需求出發(fā),調(diào)整原有的培養(yǎng)計(jì)劃進(jìn)行調(diào)整、修改課程大綱、設(shè)計(jì)案例、重置教學(xué)和實(shí)驗(yàn)內(nèi)容、選取合適的教學(xué)方法和手段、完善課程考核制度等。具體教改方案的設(shè)計(jì)主要體現(xiàn)在如下幾個(gè)方面:
(1)修改課程大綱,精煉教學(xué)內(nèi)容
為了解決原大綱中課時(shí)短缺問(wèn)題,之前的課程教學(xué)也在不斷調(diào)整,如在課程教學(xué)中講解傳統(tǒng)工程方法時(shí),主要敘述如何在軟件生命周期的各個(gè)階段建立項(xiàng)目邏輯模型,學(xué)生則在課余建立相應(yīng)階段的邏輯模型,在期末完成項(xiàng)目的編碼;在課程大型實(shí)驗(yàn)時(shí),學(xué)生利用面向?qū)ο蠓椒ㄟM(jìn)行同一項(xiàng)目的軟件開(kāi)發(fā)。對(duì)于一些能力強(qiáng)的學(xué)生,學(xué)生能跟上教學(xué)節(jié)奏,但是這種教學(xué)方法對(duì)學(xué)生自身素質(zhì)的要求比較高,從而整體教學(xué)效果并不理想。
再者,學(xué)生已修的《程序設(shè)計(jì)語(yǔ)言》和《數(shù)據(jù)結(jié)構(gòu)》課程都采用的是目前主流的面向?qū)ο蠹夹g(shù),傳統(tǒng)的軟件工程方法中的許多原理、原則和啟發(fā)性規(guī)則在面向?qū)ο筌浖こ讨腥匀贿m合。因此,修改后的課程大綱是介紹面向?qū)ο筌浖こ痰姆椒▽W(xué)、原理、啟發(fā)性規(guī)則,以及面向?qū)ο箝_(kāi)發(fā)過(guò)程等主要課程內(nèi)容。
(2)設(shè)計(jì)案例,搭建教學(xué)框架
根據(jù)新大綱的要求,就需要設(shè)計(jì)貫穿整個(gè)教學(xué)內(nèi)容的實(shí)際案例,換一句話,就是使用案例驅(qū)動(dòng)理論教學(xué),案例需求在經(jīng)過(guò)面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)以及面向?qū)ο缶幊讨螅罱K生成實(shí)現(xiàn)代碼。案例作為一個(gè)軟件項(xiàng)目,既能作為教學(xué)內(nèi)容;又能作為課程考核內(nèi)容,直觀體現(xiàn)課程教學(xué)成果和效果。
因此,案例的設(shè)計(jì)直接影響課程教學(xué)過(guò)程和結(jié)果,設(shè)計(jì)案例的過(guò)程如下所示:
①選取合適的課程教學(xué)案例。具體的要求是案例規(guī)模不要太大;已有類(lèi)似應(yīng)用,可以作為開(kāi)發(fā)的原型模型;采用主流的開(kāi)發(fā)方法和技術(shù)實(shí)現(xiàn)案例項(xiàng)目。
②案例的實(shí)踐與課程理論教學(xué)的銜接。首先做階段性銜接(各個(gè)開(kāi)發(fā)階段完成相應(yīng)的邏輯模型);然后,再根據(jù)具體的教學(xué)進(jìn)展做細(xì)節(jié)調(diào)整,例如在每個(gè)階段結(jié)束時(shí)安排階段性總結(jié),團(tuán)隊(duì)成員可以介紹案例進(jìn)展情況,教師也可以適時(shí)進(jìn)行指導(dǎo)。
③形成團(tuán)隊(duì)實(shí)施案例。原則上是自由組隊(duì),5 人一組,由一人(案例項(xiàng)目負(fù)責(zé)人)進(jìn)行分工:3 人進(jìn)行軟件開(kāi)發(fā),1 人負(fù)責(zé)文檔編制,1 人負(fù)責(zé)案例分析PPT 講解??紤]到案例實(shí)施的有效性和完整性,團(tuán)隊(duì)成員會(huì)做調(diào)整(主要開(kāi)發(fā)成員不得超過(guò)2 人),各團(tuán)隊(duì)綜合能力基本均衡。
④案例實(shí)施成果將納入到課程考核中。項(xiàng)目團(tuán)隊(duì)成員之間分工要明確,考核成績(jī)也要有所區(qū)別。重置課程考核的比例,其中,期末考試成績(jī)占50%、案例項(xiàng)目實(shí)施成績(jī)占40%,課堂考勤得分占10%。
(3)編制教材,支撐案例開(kāi)發(fā)
案例驅(qū)動(dòng)教學(xué)中教材的組織順序就是軟件項(xiàng)目實(shí)施過(guò)程。在案例實(shí)施中,對(duì)于重復(fù)的操作避免教材內(nèi)容的重復(fù),但所授知識(shí)是“必需、夠用、重點(diǎn)強(qiáng)調(diào),且能溫故知新的”。
圖1 魚(yú)骨圖描述的教材結(jié)構(gòu)
圖1 中魚(yú)骨圖的右端魚(yú)尾表示學(xué)習(xí)《軟件工程》課程必須具備的專(zhuān)業(yè)知識(shí);左端魚(yú)頭代表最終課程教材;魚(yú)骨圖的上方是教材結(jié)構(gòu)圖,教材由4 篇內(nèi)容組成,用大骨表示,小骨則表示每篇中的章節(jié);魚(yú)骨圖的下方表示教材進(jìn)展過(guò)程中課堂教學(xué)需要達(dá)到的階段性教學(xué)目標(biāo),也是案例項(xiàng)目開(kāi)發(fā)進(jìn)程的體現(xiàn);貫穿整個(gè)教材的魚(yú)脊梁就是案例,教材中的案例是《機(jī)票預(yù)訂系統(tǒng)》項(xiàng)目。
(4)以學(xué)生為中心,組織課堂教學(xué)
課堂教學(xué)主要以學(xué)生為主,教師穿插講解面向?qū)ο筌浖こ谭椒?、原理及工具。例如,教師講解了面向?qū)ο箝_(kāi)發(fā)中涉及到三個(gè)模型:對(duì)象模型、功能模型和動(dòng)態(tài)模型以及建模過(guò)程,學(xué)生則完成建模過(guò)程,在這期間,需要團(tuán)隊(duì)成員之間的溝通以及教師和團(tuán)隊(duì)的溝通。階段性任務(wù)完成后,學(xué)生需要組織討論(完成階段性總結(jié)PPT)、評(píng)價(jià)階段成果(階段文檔),在教師和團(tuán)隊(duì)達(dá)成共識(shí)后,進(jìn)入下一個(gè)階段的學(xué)習(xí)或開(kāi)發(fā)。
(5)監(jiān)督教學(xué)進(jìn)度,建立課堂評(píng)價(jià)機(jī)制
案例實(shí)施監(jiān)督要貫穿課程教學(xué)始終。為了保證案例實(shí)施按照之前設(shè)計(jì)的預(yù)期效果進(jìn)行,教師要會(huì)預(yù)判教學(xué)中可能出現(xiàn)的問(wèn)題,并給出問(wèn)題的解決方案。如果遇到不能立刻解決的棘手問(wèn)題,可以課后解決以確保課堂教學(xué)持續(xù)性,課程內(nèi)容按授課計(jì)劃進(jìn)度進(jìn)行。
課堂評(píng)價(jià)機(jī)制是案例教學(xué)質(zhì)量把關(guān)的最后一個(gè)環(huán)節(jié),是課程教學(xué)一個(gè)重要組成部分。課堂評(píng)價(jià)既能肯定團(tuán)隊(duì)階段性成果,又能記錄課堂案例沒(méi)能解決的問(wèn)題;此外,能反饋課堂教學(xué)中存在的不足。有導(dǎo)向的課堂評(píng)價(jià)能促進(jìn)教學(xué)改革,增進(jìn)師生以及教師之間的交流,對(duì)課程教學(xué)有決策和鑒定功能。
由學(xué)院軟件工程16 實(shí)驗(yàn)班承擔(dān)《軟件工程》教改的試運(yùn)行任務(wù)。全班36 人,課程考核成績(jī)分布如圖2所示,其中,案例實(shí)施成績(jī)分布如圖3 所示。
圖2 《軟件工程》課程成績(jī)分布餅圖
圖3 課程案例實(shí)施成績(jī)分布餅圖
從分布圖中可以看出:學(xué)生參加項(xiàng)目實(shí)施的積極性比較高,分析和設(shè)計(jì)能力有明顯提高;學(xué)生重實(shí)踐,輕理論教學(xué)?!盾浖こ獭返娜厥欠椒ā⒐ぞ吆瓦^(guò)程,而方法是完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,為軟件開(kāi)發(fā)提供“如何做”的技術(shù)。再者,理論對(duì)實(shí)踐具有指導(dǎo)作用。因此,課程教學(xué)中不能忽視理論教學(xué),使之融于實(shí)踐教學(xué)之中。