王妍++高仲合++倪建成
摘要:《軟件工程》是一門理論與實(shí)踐緊密結(jié)合的學(xué)科。目前的實(shí)驗(yàn)教學(xué)存在諸多問(wèn)題,本文總結(jié)了多年來(lái)《軟件工程》的實(shí)驗(yàn)教學(xué)經(jīng)驗(yàn),提出了章節(jié)實(shí)驗(yàn)+課程設(shè)計(jì)的教學(xué)實(shí)驗(yàn)方案,并在教學(xué)中合理運(yùn)用,取得了有效地成果。
關(guān)鍵詞:軟件工程;課程設(shè)計(jì);實(shí)驗(yàn)教學(xué)
中圖分類號(hào):TN925+.3
文獻(xiàn)標(biāo)識(shí)碼:A
DOI:10.3969/j.issn.1003-6970.2015.12.008
本文著錄格式:王妍,高仲合,倪建成.平行實(shí)驗(yàn)在《軟件工程》教學(xué)中的運(yùn)用[J]軟件,2015,36(12):35-37
0 引言
隨著Web程序設(shè)計(jì)及云與大數(shù)據(jù)在各領(lǐng)域中的廣泛使用,工程化的開(kāi)發(fā)人員越來(lái)越被需要,然而在現(xiàn)有高校的《軟件工程》教學(xué)中,不太注重對(duì)學(xué)生的軟件設(shè)計(jì)、開(kāi)發(fā)及運(yùn)行維護(hù)能力的培養(yǎng),而往往把大量的理論灌輸在軟件工程這門課上。如何在《軟件工程》教學(xué)中最大限度地激發(fā)學(xué)生的實(shí)踐能力是亟待解決的一個(gè)重要課題。另一方面,基于軟件生命周期的工程化開(kāi)發(fā)方法,歸根結(jié)底屬于文檔驅(qū)動(dòng)型的開(kāi)發(fā)方法,如何引導(dǎo)學(xué)生書寫規(guī)范化的軟件開(kāi)發(fā)文檔也是我們教學(xué)過(guò)程中應(yīng)該注重的一部分。鑒于此,我們提出了章節(jié)實(shí)驗(yàn)+課程設(shè)計(jì)的啟發(fā)式軟件工程實(shí)驗(yàn)教學(xué)模式,以激發(fā)學(xué)生的學(xué)習(xí)積極性,增強(qiáng)學(xué)生的實(shí)踐開(kāi)發(fā)能力。
1 目前軟件工程實(shí)驗(yàn)教學(xué)中存在的問(wèn)題
1.1 理論教學(xué)缺乏新意,無(wú)法激發(fā)學(xué)生的學(xué)習(xí)興趣
《軟件工程》課堂教學(xué)內(nèi)容基本為理論講授,按照軟件的全生命周期過(guò)程,分別給學(xué)生介紹了問(wèn)題定義、可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼測(cè)試與維護(hù)的相關(guān)理論知識(shí)。通過(guò)課堂教學(xué),大部分學(xué)生只掌握了基本概念、開(kāi)發(fā)原理,開(kāi)發(fā)方法。課堂授課枯燥無(wú)味加上內(nèi)容較抽象,嚴(yán)重影響了實(shí)際教學(xué)效果。
實(shí)際上,隨著軟件開(kāi)發(fā)規(guī)模的不斷擴(kuò)大以及對(duì)軟件質(zhì)量要求的提高,軟件工程課程的教學(xué)內(nèi)容及教學(xué)模式更應(yīng)該注重理論與時(shí)間的結(jié)合。既要注重軟件設(shè)計(jì)的基本原理與方法,還要注重軟件開(kāi)發(fā)的實(shí)踐經(jīng)驗(yàn)以及技術(shù)運(yùn)用。
1.2 實(shí)驗(yàn)內(nèi)容不具體,學(xué)生無(wú)從下手
目前的《軟件工程》實(shí)驗(yàn),一般只有一個(gè)課程設(shè)計(jì),題目白選,類型自選。這樣的實(shí)驗(yàn)要求缺乏具體性,使得學(xué)生無(wú)從下手。另外《軟件工程》的整個(gè)教學(xué)過(guò)程是基于軟件生命周期的過(guò)程,在每個(gè)相關(guān)階段都有具體的實(shí)施技巧與實(shí)施方法,可以將具體的的技術(shù)方法以小實(shí)驗(yàn)的形式命題。比如在講到需求分析的工具數(shù)據(jù)流圖時(shí),可以給出一個(gè)小型系統(tǒng)功能的問(wèn)題描述,然后讓學(xué)生利用MicrosoftVisio畫出描述該業(yè)務(wù)流程的數(shù)據(jù)流圖,這樣既可以將理論應(yīng)用于實(shí)踐,又體現(xiàn)了文檔驅(qū)動(dòng)型的開(kāi)發(fā)理念。
1.3 實(shí)驗(yàn)教學(xué)缺乏有效的檢測(cè)機(jī)制
目前的實(shí)驗(yàn)教學(xué),教師一般是把課程設(shè)計(jì)布置下去,然后讓學(xué)生獨(dú)立完成。但是對(duì)于沒(méi)有任何開(kāi)發(fā)經(jīng)驗(yàn)的學(xué)生來(lái)說(shuō),根本無(wú)從下手,所以80%的學(xué)生最后放棄了實(shí)驗(yàn)。只有部分學(xué)生開(kāi)展了課程設(shè)計(jì),但中途遇到困難也就放棄了。因此規(guī)定好課程設(shè)計(jì)的題目,進(jìn)行有效的選題知道,中期審查以及后期檢查等活動(dòng),可以督促學(xué)生完成設(shè)計(jì)。另外,在整個(gè)課程設(shè)計(jì)過(guò)程中,教師的輔導(dǎo)時(shí)必不可少的。
2 章節(jié)實(shí)驗(yàn)與課程設(shè)計(jì)相結(jié)合的平行實(shí)驗(yàn)教學(xué)模式
隨著理論教學(xué)的推進(jìn),在適當(dāng)?shù)闹R(shí)點(diǎn)完成后,安排小實(shí)驗(yàn),以鞏固所學(xué)知識(shí)。另外,大實(shí)驗(yàn)設(shè)計(jì)即課程設(shè)計(jì)貫穿整個(gè)學(xué)期,通過(guò)大實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)使學(xué)生實(shí)際體驗(yàn)系統(tǒng)開(kāi)發(fā)全過(guò)程。這樣大小實(shí)驗(yàn)穿插進(jìn)行,相輔相成,相得益彰。
2.1 章節(jié)實(shí)驗(yàn)內(nèi)容的設(shè)計(jì)
《軟件工程》理論教學(xué)是按照軟件生命周期的全過(guò)程完成的,在各個(gè)開(kāi)發(fā)實(shí)施的階段都會(huì)介紹到開(kāi)發(fā)原理、開(kāi)發(fā)工具、開(kāi)發(fā)技術(shù)。比如在可行性研究階段會(huì)介紹到數(shù)據(jù)流圖、數(shù)據(jù)字典;在需求分析階段會(huì)介紹到E-R模型、層次方框圖、Warnier圖等;在設(shè)計(jì)階段會(huì)介紹到結(jié)構(gòu)化的設(shè)計(jì)方法、過(guò)程設(shè)計(jì)工具PAD圖、判定表、判定樹(shù)等;在實(shí)現(xiàn)階段會(huì)介紹到各種測(cè)試方法:?jiǎn)卧獪y(cè)試、集成測(cè)試、回歸測(cè)試、白盒測(cè)試、黑盒測(cè)試等;在面向?qū)ο蟮拈_(kāi)發(fā)方法中又會(huì)介紹到UML的各種模型圖。對(duì)于這些知識(shí)點(diǎn),我們都設(shè)置了小實(shí)驗(yàn)以鞏固學(xué)生的理論知識(shí)。其實(shí)驗(yàn)設(shè)計(jì)如表1所示:
小實(shí)驗(yàn)的內(nèi)容貫穿整個(gè)實(shí)驗(yàn)教學(xué)過(guò)程,通過(guò)十個(gè)小實(shí)驗(yàn)的練習(xí),將課本上90%的知識(shí)點(diǎn)覆蓋,學(xué)生即通過(guò)實(shí)驗(yàn)鞏固了理論知識(shí),又學(xué)會(huì)了如何將理論知識(shí)應(yīng)用于實(shí)踐,還掌握了一些文檔編寫需要的工具。
2.2 課程設(shè)計(jì)實(shí)驗(yàn)的設(shè)計(jì)
課程設(shè)計(jì)以應(yīng)用型軟件系統(tǒng)研發(fā)為主,教師給出部分的設(shè)計(jì)實(shí)施題目,也可以學(xué)生自選設(shè)計(jì)題目,但教師要最后把關(guān)。根據(jù)實(shí)際需求,靈活選定軟件項(xiàng)目,在規(guī)定的周期界定范圍內(nèi),學(xué)生完成相關(guān)的階段性任務(wù),以規(guī)范性的文檔形式提交任課教師審閱。批準(zhǔn)后,以此為據(jù),展開(kāi)下一階段任務(wù)。整個(gè)的分析、設(shè)計(jì)和研發(fā)過(guò)程,是以規(guī)范性的文檔形式為審閱結(jié)果及實(shí)踐提交成果。課程設(shè)計(jì)的實(shí)驗(yàn)內(nèi)容如表2所示:
課程設(shè)計(jì)以軟件生命周期為依據(jù),序列化螺旋式展開(kāi),每一階段都以相應(yīng)的文檔性資料為依據(jù),通過(guò)審核后方可進(jìn)入下一階段的任務(wù),最后提交軟件系統(tǒng),整理代碼結(jié)構(gòu),以及相關(guān)的后期工作任務(wù)總結(jié)資料。
2.3 兩種實(shí)驗(yàn)內(nèi)容相輔相成
所謂平行實(shí)驗(yàn)室指在以種教學(xué)實(shí)驗(yàn)任務(wù)中,以兩條不同的主線開(kāi)展實(shí)施,兩個(gè)中心的實(shí)驗(yàn)分別針對(duì)不同的知識(shí)點(diǎn)和鍛煉方向。表l和表2是兩個(gè)不同中心的實(shí)驗(yàn)內(nèi)容,表l旨在鍛煉學(xué)生的基礎(chǔ)理論知識(shí)的實(shí)踐運(yùn)用,表2旨在鍛煉學(xué)生的實(shí)踐綜合運(yùn)用能力。兩個(gè)實(shí)驗(yàn)方向平行進(jìn)展,同時(shí)開(kāi)始,分別進(jìn)行。從不同角度和方向促進(jìn)了學(xué)生的實(shí)踐能力的培養(yǎng)。
3 平行實(shí)驗(yàn)教學(xué)模式的具體實(shí)施方案
3.1 平行實(shí)驗(yàn)開(kāi)展過(guò)程及方法
對(duì)于小實(shí)驗(yàn),我們以章節(jié)為單位,當(dāng)學(xué)習(xí)到相關(guān)的理論知識(shí)時(shí),開(kāi)展適應(yīng)的小實(shí)驗(yàn)內(nèi)容。學(xué)生獨(dú)立完成小實(shí)驗(yàn),并提交實(shí)驗(yàn)報(bào)告。
對(duì)于課程設(shè)計(jì),我們以小組為單位完成,每小組大概10人左右,設(shè)定隊(duì)長(zhǎng),有效劃分工作任務(wù)。在規(guī)定的時(shí)間內(nèi),由小團(tuán)隊(duì)獨(dú)立完成。在任務(wù)的展開(kāi)過(guò)程中,出現(xiàn)問(wèn)題,由教師與學(xué)生一起共同解決,并且主要采取引導(dǎo)的方式啟發(fā)學(xué)生獨(dú)立分析和解決問(wèn)題。
3.2 平行實(shí)驗(yàn)?zāi)J降慕虒W(xué)收效
本實(shí)驗(yàn)課程在3屆軟件工程相關(guān)專業(yè)的教學(xué)中實(shí)施,通過(guò)該課程的學(xué)習(xí),學(xué)生鞏固和加深了軟件的工程化和系統(tǒng)化知識(shí),了解了整個(gè)學(xué)科、專業(yè)和課程的發(fā)展前沿和實(shí)施背景,進(jìn)一步加強(qiáng)了學(xué)生個(gè)體綜合設(shè)計(jì)及創(chuàng)新能力的培養(yǎng),同時(shí)良性引導(dǎo)和培養(yǎng)了學(xué)生實(shí)事求是、嚴(yán)肅認(rèn)真的科學(xué)作風(fēng)和良好的學(xué)習(xí)和實(shí)踐習(xí)慣,為今后的就業(yè)和深造打下扎實(shí)的基礎(chǔ)。
4 結(jié)論
《軟件工程》實(shí)驗(yàn)在學(xué)院實(shí)驗(yàn)室以及部分合作實(shí)施單位的開(kāi)發(fā)梯隊(duì)中展開(kāi),收到了良好的效果。我們實(shí)時(shí)記錄學(xué)生的項(xiàng)目執(zhí)行過(guò)程,做好日志的量化登記,為此指定了學(xué)生的校外實(shí)踐指導(dǎo)教師參與,以后將利用校企合作這個(gè)廣闊平臺(tái),更加深入的進(jìn)行工程化的實(shí)踐練習(xí)。