施冬冬
(安徽大學(xué)江淮學(xué)院 安徽 合肥 230039)
新形勢(shì)下軟件工程教學(xué)改革探討
施冬冬
(安徽大學(xué)江淮學(xué)院 安徽 合肥 230039)
《軟件工程》是計(jì)算機(jī)軟件專(zhuān)業(yè)的核心課程,傳統(tǒng)的板書(shū)式理論教學(xué)已經(jīng)跟不上時(shí)代的節(jié)奏。今年來(lái)隨著國(guó)家對(duì)三本院校提出建設(shè)“應(yīng)用型本科教學(xué)”,許多高校都在探索《軟件工程》這門(mén)課的課程改革,本文從教學(xué)目的、教學(xué)手段、教學(xué)內(nèi)容、師資培訓(xùn)四個(gè)方面提出了基于學(xué)生,教師,企業(yè)“三位一體”的教改方案,并通過(guò)實(shí)踐證明方案的可行性。
《軟件工程》;改革;三位一體
在計(jì)算機(jī)專(zhuān)業(yè)中,《軟件工程》是專(zhuān)業(yè)必修課。在此課程中主要介紹使用工程化的管理來(lái)指導(dǎo)大型軟件的開(kāi)發(fā),從而降低軟件的成本提高軟件的質(zhì)量。大多數(shù)本科院校開(kāi)設(shè)這門(mén)課都是采用理論+實(shí)踐的方式教學(xué),但是一般院校本身欠缺開(kāi)發(fā)大型軟件的條件,導(dǎo)致這門(mén)課的開(kāi)設(shè)出現(xiàn)理論大于實(shí)踐,學(xué)生感覺(jué)枯燥乏味,難學(xué)難懂,教師普遍感覺(jué)難教,此外軟件工程又是一門(mén)發(fā)展迅速的學(xué)科,新的技術(shù)方法和工具層出不窮,書(shū)本上的知識(shí)有一定的滯后性。
近年來(lái),社會(huì)對(duì)應(yīng)用型人才的需求越來(lái)越大,國(guó)家對(duì)高校提出建設(shè)“應(yīng)用型本科教育”口號(hào)。[1]許多三本院校都在向應(yīng)用技術(shù)型高校轉(zhuǎn)型,傳統(tǒng)高校計(jì)算機(jī)軟件專(zhuān)業(yè)畢業(yè)的學(xué)生只有理論知識(shí)缺乏實(shí)踐經(jīng)驗(yàn),但眾多軟件招聘企業(yè)規(guī)模較小,沒(méi)有能力對(duì)畢業(yè)生進(jìn)行崗前培訓(xùn),一些大企業(yè)即使有能力對(duì)畢業(yè)生進(jìn)行相關(guān)技術(shù)專(zhuān)業(yè)培訓(xùn),但到達(dá)到企業(yè)的要求還需要時(shí)間的積累。高校的軟件人才方案培養(yǎng)與企業(yè)需求的脫節(jié),嚴(yán)重降低了社會(huì)的生產(chǎn)率。因此,如何讓學(xué)生在《軟件工程》課程學(xué)習(xí)中在掌握理論知識(shí)的同時(shí),還能訓(xùn)練其實(shí)踐動(dòng)手開(kāi)發(fā)軟件的能力是當(dāng)今《軟件工程》教學(xué)研究的一個(gè)熱點(diǎn)問(wèn)題。
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,軟件開(kāi)發(fā)領(lǐng)域中新技術(shù)、新方法、新思維層出不窮,目前在眾多軟件開(kāi)發(fā)公司都采用流行的面向?qū)ο箝_(kāi)發(fā)方法開(kāi)發(fā)軟件,而大多數(shù)高校在軟件工程教學(xué)中還停留在落后的面向過(guò)程化的結(jié)構(gòu)化開(kāi)發(fā)方法的教學(xué),并且因?yàn)榫帉?xiě)時(shí)間原因有的教材對(duì)軟件的構(gòu)架、風(fēng)險(xiǎn)分析、成熟度等軟件開(kāi)發(fā)中十分重要的內(nèi)容涉及很少[2]。使得正常的教學(xué)與實(shí)際的應(yīng)用存在嚴(yán)重的滯后性,經(jīng)常有學(xué)生在學(xué)完《軟件工程》課程后還得自己重新學(xué)習(xí)面向?qū)ο蟮拈_(kāi)發(fā)方法。
在獨(dú)立學(xué)院中,因?yàn)檗k學(xué)條件受限于母體高校,《軟件工程》此類(lèi)專(zhuān)業(yè)課程的授課都來(lái)源于母體高校的教師,但目前母校的師資基本上都是從事教學(xué)工作有幾十年的資深教師,在理論教學(xué)中并不存在什么問(wèn)題,但是這些教師一般沒(méi)有在企業(yè)的實(shí)踐開(kāi)發(fā)經(jīng)驗(yàn),在實(shí)踐教學(xué)方面沒(méi)有大型系統(tǒng)分析能力,很難勝任實(shí)踐教學(xué)任務(wù),這將影響實(shí)踐教學(xué)計(jì)劃的實(shí)施和合格人才的培養(yǎng)[3]。
在傳統(tǒng)的軟件工程理論教學(xué)過(guò)程中,往往是這種現(xiàn)象:老師在講臺(tái)上高談闊論,學(xué)生對(duì)黑板上或書(shū)本各個(gè)階段出現(xiàn)的抽象的概念、理論和方法普遍感到難于理解。由于課本上只是對(duì)軟件生命周期的各個(gè)階段進(jìn)行解讀,往往都是大段文字的描述,并沒(méi)有涉及到具體項(xiàng)目的開(kāi)發(fā),不少學(xué)生認(rèn)為軟件工程的學(xué)習(xí)就是完成每個(gè)階段的文檔報(bào)告書(shū)[4]。由于缺乏實(shí)際項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),學(xué)生不能夠深切體會(huì)到每個(gè)階段對(duì)軟件開(kāi)發(fā)的重要性以及缺乏團(tuán)隊(duì)協(xié)作意識(shí),導(dǎo)致很多學(xué)生不能夠區(qū)分什么是軟件開(kāi)發(fā)什么是程序設(shè)計(jì),不能將抽象的理論與實(shí)踐應(yīng)用聯(lián)系在一起,因此學(xué)習(xí)的主動(dòng)性越來(lái)越低。此外在實(shí)驗(yàn)課程中,很多高校缺乏相應(yīng)的軟硬件環(huán)境,教師在布置任務(wù)是只能讓學(xué)生完成最基本的軟件分析與設(shè)計(jì)CASE工具的使用和每個(gè)階段文檔報(bào)告的撰寫(xiě),學(xué)生在實(shí)驗(yàn)課程中也體會(huì)不到軟件項(xiàng)目開(kāi)發(fā)的具體過(guò)程,最終實(shí)驗(yàn)課也變成了程序設(shè)計(jì)訓(xùn)練。
傳統(tǒng)的軟件工程教學(xué)主要以理論教學(xué)為主,教師上課時(shí)就靠粉筆,多媒體課件進(jìn)行近乎照本宣科的教學(xué),講臺(tái)下面的學(xué)生只能被動(dòng)的接收知識(shí),逐漸失去聽(tīng)課興趣。此外,《軟件工程》這門(mén)課包含了眾多計(jì)算機(jī)專(zhuān)業(yè)課程的知識(shí),涉及面非常廣泛,其中很多知識(shí)又是來(lái)源于實(shí)際的項(xiàng)目開(kāi)發(fā),這種被動(dòng)式的教學(xué)方式,對(duì)于沒(méi)有任何項(xiàng)目實(shí)踐經(jīng)驗(yàn)的學(xué)生而言很難深入的理解軟件工程開(kāi)課的目的和思想,從而經(jīng)過(guò)一個(gè)學(xué)期的學(xué)習(xí),學(xué)生有可能學(xué)到的只是按照規(guī)范畫(huà)出每個(gè)階段的流程圖,認(rèn)為這門(mén)課就是學(xué)會(huì)如何撰寫(xiě)文檔報(bào)告的一門(mén)課程[5]。但是實(shí)際上,軟件工程來(lái)源于實(shí)際,里面的眾多理論,各種文檔報(bào)告,都是前人的經(jīng)驗(yàn)總結(jié),這門(mén)課的教學(xué)目的是培訓(xùn)學(xué)生能夠按照工程化的思想開(kāi)發(fā)一個(gè)真實(shí)的軟件項(xiàng)目,通過(guò)學(xué)習(xí),學(xué)生不僅僅能有寫(xiě)出各個(gè)階段的文檔報(bào)告,還能夠應(yīng)用已經(jīng)掌握的計(jì)算機(jī)知識(shí)開(kāi)發(fā)和管理一個(gè)項(xiàng)目系統(tǒng)。因此這門(mén)課需要教師將基本的理論知識(shí)和實(shí)際的軟件項(xiàng)目結(jié)合在一起教學(xué),以便增強(qiáng)學(xué)生對(duì)項(xiàng)目開(kāi)發(fā)的理解。但是在當(dāng)前教學(xué)中,普遍存在理論與實(shí)踐脫節(jié),有的學(xué)校還缺少相應(yīng)的實(shí)踐教學(xué)場(chǎng)所和開(kāi)發(fā)環(huán)境,這樣培養(yǎng)出來(lái)的學(xué)生很難學(xué)以致用,也滿(mǎn)足不了當(dāng)今社會(huì)對(duì)軟件人才的需求[6]。
針對(duì)以上提出來(lái)的若干問(wèn)題,結(jié)合獨(dú)立學(xué)院的特點(diǎn)。在充分利用學(xué)校和社會(huì)上的已有的資源,我們?cè)诒疚闹刑岢隽艘惶住叭灰惑w”的軟件工程教學(xué)模式。把企業(yè)引入到課堂中去,使教師和企業(yè)工程師結(jié)合起來(lái),讓學(xué)生深入企業(yè),了解實(shí)際項(xiàng)目開(kāi)發(fā)流程。我們從教學(xué)目標(biāo),教學(xué)手段,教學(xué)內(nèi)容,師資培訓(xùn)和考核方式五個(gè)方面進(jìn)行全面改革。使傳統(tǒng)的重理論輕實(shí)踐的教學(xué)改變成理論與實(shí)踐同等重要的教學(xué)方式。
為了符合獨(dú)立學(xué)院提出的“應(yīng)用型本科教育”這一口號(hào),結(jié)合軟件工程這門(mén)課本身就是基于實(shí)踐的一門(mén)課程。在要求學(xué)生牢固掌握軟件開(kāi)發(fā)中的問(wèn)題定義,可行性研究,需求分析、概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼與單元測(cè)試,集成測(cè)試,運(yùn)行維護(hù)等相關(guān)理論知識(shí)的同時(shí),還要鍛煉學(xué)生實(shí)際軟件開(kāi)發(fā)和管理軟件能力,把教師、企業(yè)、學(xué)生三者結(jié)合在一起,增強(qiáng)學(xué)生動(dòng)手能力和團(tuán)隊(duì)協(xié)作能力。最終把學(xué)生培養(yǎng)成符合社會(huì)要求的應(yīng)用型人才。
在教學(xué)中,改變傳統(tǒng)的單純課堂中學(xué)習(xí)模式,把老師的書(shū)本枯燥乏味教授和學(xué)生被動(dòng)的聽(tīng)講進(jìn)行了重大調(diào)整。在這里引入企業(yè)元素,形成企業(yè)—教師—學(xué)生“三位一體”的教學(xué)模式,通過(guò)校企合作,將合適的企業(yè)引入到學(xué)校參與教學(xué),首先,在教學(xué)初期,以學(xué)校教師授課為主,企業(yè)派來(lái)的人員為輔,對(duì)學(xué)生進(jìn)行基本的理論教學(xué),在此期間,企業(yè)工程師根據(jù)學(xué)生掌握的理論知識(shí)情況制定后期的實(shí)訓(xùn)計(jì)劃;在教學(xué)中期,根據(jù)學(xué)生對(duì)理論知識(shí)的掌握,通過(guò)學(xué)校教師的帶領(lǐng)深入到企業(yè),由企業(yè)工程師對(duì)一個(gè)已近完成的項(xiàng)目按照軟件工程的流程進(jìn)行分解再次開(kāi)發(fā),在企業(yè)工程師的指導(dǎo)下讓學(xué)生熟悉軟件開(kāi)發(fā)的每個(gè)步驟;在教學(xué)后期。以企業(yè)工程師為主,學(xué)院教師為輔,采用“項(xiàng)目團(tuán)隊(duì)”的組合方式,模擬企業(yè)軟件開(kāi)發(fā)小組構(gòu)成,每組學(xué)生有人員限制(不超過(guò)7人),每個(gè)小組選出項(xiàng)目組長(zhǎng),由其對(duì)其他小組成員進(jìn)行分工。完成由企業(yè)結(jié)合學(xué)院教學(xué)的實(shí)際情況制定的項(xiàng)目,通過(guò)學(xué)習(xí),一方面鍛煉了學(xué)生開(kāi)發(fā)軟件及項(xiàng)目管理的能力,一方面也增強(qiáng)了學(xué)生團(tuán)隊(duì)協(xié)作的意識(shí)。圖一是教學(xué)流程。
圖1 軟件工程教學(xué)流程
在軟件工程教學(xué)內(nèi)容設(shè)計(jì)中,按照CDIO的思想對(duì)整個(gè)教學(xué)安排規(guī)劃進(jìn)行設(shè)計(jì),課程的教學(xué)分2塊來(lái)完成,首先,學(xué)院選取合適的教材讓有豐富理論經(jīng)驗(yàn)的教師完成理論知識(shí)的講解,接下來(lái),企業(yè)工程師完成教學(xué)計(jì)劃中的實(shí)踐指導(dǎo)工作。但是這2塊之間存在以下幾個(gè)問(wèn)題需要解決。
2.3.1 教師和企業(yè)工程師溝通
在上文中已經(jīng)提到高校教師在教學(xué)中普遍存在缺乏實(shí)踐經(jīng)驗(yàn)的問(wèn)題,而企業(yè)人員雖然有著豐富的開(kāi)發(fā)經(jīng)驗(yàn),但存在著設(shè)計(jì)過(guò)程不夠嚴(yán)謹(jǐn),按照企業(yè)的思想進(jìn)行教學(xué)導(dǎo)致學(xué)生跟不上上課的進(jìn)度,聽(tīng)不懂等情況,針對(duì)這些問(wèn)題,我們實(shí)行校企協(xié)作,取長(zhǎng)補(bǔ)短,讓教師與企業(yè)工程師在開(kāi)課前一起制定教學(xué)計(jì)劃,把雙方的分歧在課前通過(guò)協(xié)商手段進(jìn)行解決。
2.3.2 學(xué)生和企業(yè)工程師溝通
企業(yè)工程師在為學(xué)生上課往往把企業(yè)的一些習(xí)慣帶到實(shí)踐教學(xué)中去,在指導(dǎo)學(xué)生軟件開(kāi)發(fā)的細(xì)節(jié)中往往不是太重視甚至和書(shū)本上的內(nèi)容相反,并且企業(yè)人員在授課時(shí)有可能存在進(jìn)度過(guò)快或過(guò)慢的問(wèn)題。這時(shí)我們需要讓授課教師參與到實(shí)踐教學(xué)中去,在不影響整體教學(xué)的進(jìn)度情況下,對(duì)學(xué)生有異議的地方加以補(bǔ)充解釋。
2.3.3 案例設(shè)計(jì)
在實(shí)踐教學(xué)中,企業(yè)工程師設(shè)計(jì)的案例都是來(lái)源于實(shí)際項(xiàng)目,但又不等同實(shí)際項(xiàng)目,實(shí)際項(xiàng)目受到客觀環(huán)境或主觀環(huán)境的影響,企業(yè)在追求有效解決問(wèn)題的同時(shí),有可能忽略了個(gè)別模塊高耦合低內(nèi)聚的問(wèn)題,和書(shū)上的理論知識(shí)不符,這時(shí)教師應(yīng)該配合企業(yè)工程師重新對(duì)項(xiàng)目進(jìn)行修改,按照軟件工程開(kāi)發(fā)流程進(jìn)行規(guī)范化處理,完善每個(gè)階段的文檔,使教學(xué)素材符合教學(xué)要求。
在案例的設(shè)計(jì)過(guò)程中為了使學(xué)生更加深刻的理解軟件開(kāi)發(fā)的真實(shí)流程,我們?cè)谶@里使用了錄屏模式,在企業(yè)工程師設(shè)計(jì)案例的過(guò)程中,我們把整個(gè)設(shè)計(jì)的過(guò)程通過(guò)錄屏記錄下來(lái),之后,在實(shí)踐教學(xué)時(shí)發(fā)給每位學(xué)生,讓學(xué)生在進(jìn)行自己的實(shí)踐項(xiàng)目中可以進(jìn)行對(duì)比,從而發(fā)現(xiàn)自己的問(wèn)題和不足,并且也可以作為課后學(xué)生學(xué)習(xí)的工具。
案例設(shè)計(jì)要突出待解決的實(shí)際問(wèn)題,圍繞如何解決關(guān)鍵問(wèn)題引出軟件工程的相關(guān)知識(shí)點(diǎn),然后在軟件工程相關(guān)理論的指導(dǎo)下,使用具體的技術(shù)工具解決問(wèn)題。另外,案例設(shè)計(jì)還要覆蓋軟件生命周期的各個(gè)階段,并且各個(gè)階段的案例要具有連續(xù)性,讓學(xué)生更好地理解軟件開(kāi)發(fā)周期的各個(gè)階段之間的銜接關(guān)系。
現(xiàn)在國(guó)家一直在提倡培養(yǎng)“雙師型”教師。在《軟件工程》這門(mén)與實(shí)際生產(chǎn)密切相關(guān)的課程,我們可以進(jìn)行以下安排:
(1)安排代課教師走出去,讓教師暑期或寒假到國(guó)內(nèi)外軟件公司進(jìn)行參觀,培訓(xùn),使教師了解到現(xiàn)在軟件行業(yè)最新的技術(shù),最新的方法,未來(lái)發(fā)展的趨勢(shì),以便在教學(xué)中對(duì)現(xiàn)有的知識(shí)進(jìn)行補(bǔ)充教學(xué)。
(2)把校外的“雙師型”教師引進(jìn)來(lái)。目前社會(huì)上有很多軟件的培訓(xùn)機(jī)構(gòu),其中就有一批高素質(zhì)的“雙師型”教師,學(xué)院可以把這些教師聘請(qǐng)過(guò)來(lái)從事《軟件工程》教學(xué),并讓本院教師隨堂聽(tīng)課學(xué)習(xí)。
在傳統(tǒng)的軟件工程課程考核,一般都是采用閉卷筆試,但是筆試只能考核學(xué)生理論知識(shí)掌握的情況。為了考核學(xué)生實(shí)踐動(dòng)手能力,我們對(duì)考核方式進(jìn)行多樣化調(diào)整,我們把平時(shí)成績(jī)占總成績(jī)的比例從原本的30%提高到40%,在平時(shí)成績(jī)中包括學(xué)生的作業(yè)、課堂回答、每次課程實(shí)踐的表現(xiàn),而期末考試分成2個(gè)部分,一部分依然通過(guò)閉卷考試考查學(xué)生的理論知識(shí)掌握情況,另外一部分對(duì)學(xué)生在實(shí)踐項(xiàng)目開(kāi)發(fā)中項(xiàng)目完成的情況進(jìn)行打分,最后對(duì)卷面成績(jī)和項(xiàng)目打分進(jìn)行合成。同時(shí)我們也強(qiáng)調(diào)期末考試的重要性,課程成績(jī)是對(duì)學(xué)生學(xué)習(xí)改課程知識(shí)成果的直接反映,為了防止學(xué)生在平時(shí)上課,實(shí)驗(yàn)課因人數(shù)過(guò)多導(dǎo)致平時(shí)成績(jī)和實(shí)驗(yàn)成績(jī)蒙混過(guò)關(guān)的不公平現(xiàn)象,我們?cè)谧詈髲?qiáng)制規(guī)定軟件工程課程的期末卷面成績(jī)不足50分則該課程成績(jī)不及格。
安徽大學(xué)江淮學(xué)院通過(guò)軟件工程教學(xué)改革與實(shí)踐,取得了顯著的教學(xué)效果。學(xué)生對(duì)軟件工程這門(mén)課的態(tài)度有了極大的轉(zhuǎn)變,學(xué)習(xí)主動(dòng)性有所提高,課外自主學(xué)習(xí)和創(chuàng)新能力得到鍛煉;通過(guò)校企合作,學(xué)生能實(shí)地感受到軟件開(kāi)發(fā)的流程,將書(shū)本上抽象的概念和方法具體化、實(shí)例化,并且通過(guò)實(shí)踐項(xiàng)目開(kāi)發(fā)更能理解軟件工程基本原理和方法,提高動(dòng)手能力;通過(guò)團(tuán)隊(duì)合作項(xiàng)目開(kāi)發(fā),也懂得了團(tuán)隊(duì)協(xié)作的重要性??傮w來(lái)說(shuō),此次課程改革是成功的。
[1]葉俊民,胡金柱,李蓉,周偉.軟件工程案例教學(xué)研究[J].計(jì)算機(jī)教育,2007(14).
[2]潘婭.軟件工程教學(xué)方法探索[J].西南科技大學(xué)高教研究,2006(02).
[3]彭佳紅,彭佳文,曹曉蘭.基于案例的軟件工程課程教學(xué)研究[J].高等農(nóng)業(yè)教育,2009(11).
[4]李知菲.CDIO模式在數(shù)字媒體課程群教學(xué)改革中的應(yīng)用[J].計(jì)算機(jī)教育,2013(10):23-26.
[5]李鋒,夏小玲.計(jì)算機(jī)軟件工程專(zhuān)業(yè)卓越計(jì)劃實(shí)踐教學(xué)[J].計(jì)算機(jī)教育,2013(13):18-21.
[6]徐世軍,范偉,黃賢英.面向卓越工程師培養(yǎng)的專(zhuān)業(yè)課程教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2013(13):22-25.
G642.0
A
2095-7327(2017)-12-0009-02
施冬冬(1984.7—),男,漢族,安徽合肥人,安徽大學(xué)江淮學(xué)院講師,碩士研究生,研究方向?yàn)閿?shù)據(jù)挖掘。