張華
摘要:軟件工程是指導(dǎo)軟件開發(fā)和維護(hù)的一門工程學(xué)科,是一門理論與實(shí)踐并重的課程。該文分析了軟件工程教學(xué)中存在的問題,結(jié)合軟件工程課程的特點(diǎn),提出了一個(gè)從項(xiàng)目選題、團(tuán)隊(duì)建設(shè)、教學(xué)過程管理到課程考核的軟件工程實(shí)踐教學(xué)改革方案。
關(guān)鍵詞:軟件工程;實(shí)踐教學(xué);項(xiàng)目驅(qū)動(dòng);團(tuán)隊(duì)協(xié)作
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)32-7700-03
軟件工程是由軟件開發(fā)實(shí)踐和相關(guān)管理學(xué)理論發(fā)展而來的一門工程學(xué)科,主要研究如何利用工程化思想來進(jìn)行軟件開發(fā)、管理和維護(hù),具有很強(qiáng)的綜合性、時(shí)效性、實(shí)踐性等特點(diǎn),是計(jì)算機(jī)軟件專業(yè)的一門重要的專業(yè)必修課。其教學(xué)目標(biāo)除了要讓學(xué)生掌握計(jì)算機(jī)軟件項(xiàng)目從開發(fā)過程到管理維護(hù)的基礎(chǔ)理論和一般過程之外,更重要的是培養(yǎng)學(xué)生把科學(xué)的管理方法和優(yōu)質(zhì)的開發(fā)技術(shù)結(jié)合起來,采用工程化的原理、技術(shù)和方法進(jìn)行軟件的開發(fā)和維護(hù),提高學(xué)生的工程實(shí)踐能力、綜合應(yīng)用能力和職業(yè)素養(yǎng),為日后的就業(yè)和實(shí)際工程研發(fā)打下良好的理論和實(shí)踐基礎(chǔ)。
“工程性”和“實(shí)踐性”是軟件工程課程最大的特點(diǎn),如何將理論知識(shí)轉(zhuǎn)化為綜合應(yīng)用能力是實(shí)踐教學(xué)的重要目標(biāo),培養(yǎng)目標(biāo)能否實(shí)現(xiàn)關(guān)鍵在于實(shí)踐教學(xué)環(huán)節(jié)的質(zhì)量,實(shí)踐教學(xué)質(zhì)量的高低也將直接影響到學(xué)生今后的就業(yè)。因此,軟件工程課程應(yīng)該把實(shí)踐教學(xué)放在重要位置[1]。那么,在高等院校中,如何組織和開展軟件工程實(shí)踐教學(xué),如何在實(shí)踐教學(xué)過程中,面向就業(yè)市場,突出學(xué)生能力和職業(yè)素質(zhì)的培養(yǎng),使學(xué)生具備較強(qiáng)的工程實(shí)踐能力,能更好地適應(yīng)市場需求和社會(huì)需要,是擺在我們面前的一項(xiàng)非常緊迫的重要課題。
1 存在的問題
當(dāng)前高校軟件工程教學(xué)大都存在著 “說”的多、“做”的少的問題,在課程教材方面,內(nèi)容陳舊,重理論、輕實(shí)踐,只強(qiáng)調(diào)軟件工程的基本理論,而忽視了實(shí)踐應(yīng)用和管理維護(hù)的重要性,脫離市場和行業(yè)的實(shí)際情況,難以培養(yǎng)出具有良好的軟件開發(fā)技能的學(xué)生。雖然有些教材也有大量案例來對(duì)相關(guān)理論做支撐,但由于缺乏實(shí)用性、時(shí)效性和綜合性,案例之間沒有連貫性,很難讓學(xué)生對(duì)軟件項(xiàng)目的整個(gè)開發(fā)和管理過程以及各個(gè)環(huán)節(jié)的任務(wù)和實(shí)施方法進(jìn)行全面和深入的了解。在教學(xué)方法方面,很多院校還是采取傳統(tǒng)的以教師講為主,學(xué)生聽為輔,教師布置并指導(dǎo)學(xué)生完成相關(guān)課程內(nèi)容的實(shí)驗(yàn),學(xué)生基本上沒有主動(dòng)性,處于一種被灌輸?shù)谋粍?dòng)接受狀態(tài),這樣培養(yǎng)出來的學(xué)生往往缺乏自主學(xué)習(xí)和解決問題的能力,缺乏創(chuàng)新和實(shí)踐應(yīng)用能力,難以將知識(shí)轉(zhuǎn)化為能力。在課堂教學(xué)方面,雖然也引入了項(xiàng)目教學(xué)和情境教學(xué),但仍然沿用了傳統(tǒng)的理論教學(xué)模式,學(xué)生難以積極主動(dòng)地參與其中,而且項(xiàng)目教學(xué)也僅僅是處于一種離散式的“項(xiàng)目教學(xué)”方式,案例之間沒有連貫性,甚至毫不相干,最終導(dǎo)致教學(xué)內(nèi)容發(fā)散,無法保證教學(xué)過程的整體性和連貫性,使學(xué)生無法對(duì)項(xiàng)目開發(fā)和管理過程有一個(gè)整體性的理解。在教學(xué)效果上,由于上軟件工程課程的學(xué)生幾乎沒有參與過軟件開發(fā)的具體過程,沒有軟件開發(fā)經(jīng)驗(yàn),教學(xué)難度本來就大,而目前很多院校軟件工程課程教學(xué),又過分注重基本概念和理論,教學(xué)內(nèi)容理論多、實(shí)踐少,缺乏具體的、能貫穿整個(gè)軟件工程過程的案例分析,學(xué)生“聽”的多,“做”的少,理論與實(shí)踐脫節(jié),對(duì)課程中講述的開發(fā)模型、分析和設(shè)計(jì)方法等內(nèi)容很難深刻理解和掌握[2]。導(dǎo)致學(xué)生普遍感到這門課內(nèi)容抽象,枯燥無味,無實(shí)際用途,進(jìn)而失去學(xué)習(xí)積極性和主動(dòng)性,甚至不愿意來上這門課。
這些問題直接導(dǎo)致了學(xué)生的就業(yè)問題。雖然就業(yè)市場對(duì)中高級(jí)軟件人才的需求量很大,并隨著計(jì)算機(jī)軟件產(chǎn)業(yè)的快速發(fā)展在逐年增加,但還會(huì)出現(xiàn)學(xué)生就業(yè)難的問題,究其原因主要是培養(yǎng)模式問題,采用傳統(tǒng)的理工科人才培養(yǎng)模式來進(jìn)行計(jì)算機(jī)軟件教學(xué),無法體現(xiàn)軟件工程的“工程性”,沒有形成軟件企業(yè)特性的實(shí)戰(zhàn)教學(xué)模式,培養(yǎng)出的學(xué)生實(shí)踐能力差,綜合應(yīng)用能力匱乏,脫離于軟件產(chǎn)業(yè)界中工程應(yīng)用方面的實(shí)際需求,難以快速融入到現(xiàn)代軟件企業(yè)中,出現(xiàn)了“畢業(yè)生就業(yè)難,企業(yè)找人才難”的怪現(xiàn)象。因此,在就業(yè)形勢(shì)每況愈下的大環(huán)境下,計(jì)算機(jī)軟件專業(yè)如何有效開展軟件工程教學(xué),如何立足就業(yè)市場,培養(yǎng)出能適應(yīng)市場需要的應(yīng)用型人才,是我們應(yīng)思考和探索的問題。
2 改進(jìn)措施
實(shí)踐教學(xué)是對(duì)學(xué)生工程應(yīng)用能力和問題解決能力進(jìn)行培養(yǎng)的重要方法和途徑 [3]。軟件工程教學(xué)要面向就業(yè),以學(xué)生能力培養(yǎng)為導(dǎo)向,以項(xiàng)目開發(fā)為主線展開教學(xué),整個(gè)教學(xué)過程以學(xué)生為主體、教師為主導(dǎo),教師主要負(fù)責(zé)提供真實(shí)的項(xiàng)目開發(fā)“情境”、提出各階段的具體目標(biāo)及要求、講解所需理論和技術(shù),啟發(fā)和引導(dǎo)學(xué)生解決實(shí)際項(xiàng)目中需要解決的問題,讓學(xué)生明白“要做什么”、“能做什么”、“怎么做”。這種教學(xué)法的主要特點(diǎn)是始終以項(xiàng)目中的任務(wù)展開教學(xué),既注重項(xiàng)目的開發(fā)和管理過程,又注重最終的實(shí)踐結(jié)果。通過教師指導(dǎo)和學(xué)生討論,讓學(xué)生完全融入到任務(wù)完成的過程中,積極主動(dòng)地學(xué)習(xí),以達(dá)到培養(yǎng)學(xué)生的創(chuàng)新能力、協(xié)作能力、分析和解決問題能力的教學(xué)目標(biāo)。
為達(dá)到課程教學(xué)目標(biāo),可以選取一個(gè)能貫穿課程始終的實(shí)際工程項(xiàng)目,并把項(xiàng)目按軟件工程過程劃分成若干階段任務(wù),然后把相關(guān)的知識(shí)點(diǎn)融入到這些階段任務(wù)中去,從項(xiàng)目開發(fā)的前期準(zhǔn)備到系統(tǒng)分析和實(shí)現(xiàn)過程以及最后的系統(tǒng)維護(hù),隨著課程進(jìn)展布置任務(wù),把所學(xué)的理論知識(shí)應(yīng)用到項(xiàng)目開發(fā)的實(shí)踐過程中。同時(shí),引入團(tuán)隊(duì)協(xié)作和考核評(píng)估體系,模擬軟件企業(yè)的做法,對(duì)每個(gè)團(tuán)隊(duì)在每個(gè)階段的工作通過上臺(tái)演示、提問答辯、評(píng)價(jià)對(duì)比等方式進(jìn)行評(píng)價(jià)打分并作為課程期末成績的評(píng)定依據(jù),以充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,增強(qiáng)學(xué)生的責(zé)任感和團(tuán)隊(duì)榮譽(yù)感。
具體改革措施可以從以下四方面進(jìn)行:
1) 項(xiàng)目選題
由于計(jì)算機(jī)軟件產(chǎn)業(yè)發(fā)展迅速,所以軟件工程教學(xué)必須時(shí)刻關(guān)注主流的開發(fā)技術(shù)和開發(fā)方法,以此來決定課程內(nèi)容的設(shè)計(jì)。項(xiàng)目的選擇直接決定著實(shí)踐教學(xué)的質(zhì)量,這就要求,要以來自軟件行業(yè)或工程領(lǐng)域中具備較強(qiáng)的綜合性、實(shí)踐性、時(shí)效性等特點(diǎn)的實(shí)際軟件項(xiàng)目為題,通過一個(gè)能貫穿整個(gè)課程的始終的具體項(xiàng)目,將軟件生命周期從系統(tǒng)分析、系統(tǒng)設(shè)計(jì)到最終的系統(tǒng)實(shí)施和維護(hù)的整個(gè)過程的各階段講透徹,使學(xué)生能全面地、系統(tǒng)地理解和掌握整個(gè)軟件工程的全過程以及當(dāng)前流行和開發(fā)方法和開發(fā)技術(shù),這樣有利于學(xué)生建構(gòu)系統(tǒng)而完整的知識(shí)體系。endprint
2) 團(tuán)隊(duì)建設(shè)
軟件產(chǎn)業(yè)非常強(qiáng)調(diào)“團(tuán)隊(duì)”,計(jì)算機(jī)軟件的開發(fā)離不開團(tuán)隊(duì)合作。團(tuán)隊(duì)協(xié)作作為軟件人才的基本素質(zhì),在軟件工程教學(xué)的一開始,就應(yīng)先普及團(tuán)隊(duì)建設(shè)和團(tuán)隊(duì)協(xié)作以及團(tuán)隊(duì)管理方面的知識(shí),使學(xué)生了解團(tuán)隊(duì)在軟件項(xiàng)目開發(fā)過程中的重要性,同時(shí),讓學(xué)生根據(jù)自身的知識(shí)和能力弄清自己在團(tuán)隊(duì)中的定位以此來提高各成員在團(tuán)隊(duì)中的協(xié)作能力。
項(xiàng)目選題完成后,可以按照項(xiàng)目開發(fā)的實(shí)際需求,將學(xué)生組建成若干軟件工程開發(fā)團(tuán)隊(duì)。由于高校教學(xué)與企業(yè)生產(chǎn)有著顯著差異,不能生搬硬套,可以在保證項(xiàng)目開發(fā)過程完整且團(tuán)隊(duì)分工和主要職責(zé)相同的前提下,進(jìn)行適當(dāng)調(diào)整,具體如表1 所示。
1) 能力互補(bǔ)。團(tuán)隊(duì)成員不能隨便拼湊,在知識(shí)結(jié)構(gòu)和個(gè)人能力特長等方面應(yīng)能夠互補(bǔ),團(tuán)隊(duì)角色要完整,既要有擅長界面設(shè)計(jì)的,又要有善于編碼的,還要有擅長管理的和文檔編寫的。
2) 職責(zé)清晰。團(tuán)隊(duì)成員的職責(zé)要清晰,工作要規(guī)范,既要注重工作效率的提高又要注重職業(yè)素質(zhì)的培養(yǎng),團(tuán)隊(duì)中的每一個(gè)成員都要對(duì)團(tuán)隊(duì)的整體目標(biāo)負(fù)責(zé),只有依靠團(tuán)隊(duì)的共同努力才能保證項(xiàng)目的成功。
3) 教學(xué)過程管理
軟件工程實(shí)踐教學(xué)要體現(xiàn)“以學(xué)生為主體,教師為主導(dǎo)”的教學(xué)思想,整個(gè)教學(xué)過程是一個(gè)階梯式逐步漸增的過程,課程有總目標(biāo),每一階段又有具體的階段目標(biāo),針對(duì)該目標(biāo),教師先進(jìn)行案例演示,勾起學(xué)生興趣,然后進(jìn)行案例分析和相關(guān)理論講解,再由學(xué)生進(jìn)行實(shí)踐,最后學(xué)生和教師再一起進(jìn)行階段成果驗(yàn)收和總結(jié),之后就進(jìn)入下一階段,如此逐步遞進(jìn),直到課程總目標(biāo)全部完成為止。具體實(shí)施步驟如下:
1) 任務(wù)分解、建立目標(biāo)
首先,教師要將貫穿于整個(gè)學(xué)期的一個(gè)大型項(xiàng)目分解為:學(xué)期總目標(biāo)、階段目標(biāo)、課時(shí)目標(biāo)。學(xué)期總目標(biāo)是指通過完成一個(gè)大型項(xiàng)目使學(xué)生掌握軟件項(xiàng)目開發(fā)的基本理論、實(shí)施過程、管理方法和開發(fā)技術(shù),由于覆蓋的知識(shí)量大,要完成該目標(biāo)需要較長時(shí)間的講授和實(shí)踐。階段目標(biāo)是指在完成學(xué)期總目標(biāo)時(shí),根據(jù)工作量和時(shí)間限制將其劃分為若干階段,并通過對(duì)這些階段具體目標(biāo)的實(shí)施來體現(xiàn)學(xué)期總目標(biāo),通常花費(fèi)較少的時(shí)間即可完成。課堂目標(biāo)是將每階段的任務(wù)和目標(biāo)再進(jìn)行分解,使得能夠在若干課時(shí)內(nèi)完成。
2) 理論講解、案例分析
有了階段具體目標(biāo)和要求后,按照階段任務(wù)需要,教師可以先講解基礎(chǔ)理論,階段目標(biāo)的實(shí)現(xiàn)方法和所需技術(shù),并通過一些能激發(fā)學(xué)生興趣的典型案例的演示和分析,一步步引導(dǎo)學(xué)生,讓學(xué)生知道“要做什么”、“怎么做”,弄清“哪些通過已有知識(shí)可以做”、“哪些需要進(jìn)一步學(xué)習(xí)才能做”,充分調(diào)動(dòng)學(xué)生的好奇心和操作欲。
3) 教師引導(dǎo)、學(xué)生實(shí)踐
目標(biāo)和要求提出后,在教師引導(dǎo)下,組織團(tuán)隊(duì)討論,明確任務(wù)目標(biāo),制定任務(wù)實(shí)施計(jì)劃,并根據(jù)團(tuán)隊(duì)成員的知識(shí)和技能進(jìn)行分工,然后開始練習(xí),讓學(xué)生在練中學(xué)、學(xué)中悟。對(duì)于練習(xí)過程中遇到的問題,可以先由團(tuán)隊(duì)內(nèi)部討論解決,解決不了的可以進(jìn)行團(tuán)隊(duì)之間的相互討論和學(xué)習(xí),仍解決不了的,再由教師進(jìn)行輔導(dǎo)。對(duì)于一些共性問題,還可由教師進(jìn)行統(tǒng)一示范,集中解決。
在學(xué)生練習(xí)過程中,對(duì)于方法獨(dú)特、技術(shù)突出的學(xué)生,老師要給予表揚(yáng)和加分,來進(jìn)一步激勵(lì)學(xué)生的斗志和學(xué)習(xí)積極性,還可讓其上臺(tái)演示,給其他學(xué)生一些啟發(fā)。對(duì)于積極性差、表現(xiàn)落后的學(xué)生,教師要給與鼓勵(lì)和支持,引導(dǎo)其向積極方向發(fā)展。
4) 階段總結(jié)、評(píng)價(jià)驗(yàn)收
按要求,每個(gè)團(tuán)隊(duì)都要按照軟件工程理論組織自己的工程開發(fā),并且建立關(guān)鍵開發(fā)的過程管理。為防止某些學(xué)生“跟著混”,從而造成學(xué)生成績兩極分化,對(duì)于軟件開發(fā)的各個(gè)里程碑,將組織學(xué)生進(jìn)行技術(shù)評(píng)審。對(duì)于學(xué)習(xí)能力差的學(xué)生或操作有疏漏的學(xué)生要采取教師鼓勵(lì)引導(dǎo)和團(tuán)隊(duì)成員幫扶雙管齊下的策略,使其能跟上教學(xué)進(jìn)度,全面掌握知識(shí)點(diǎn),達(dá)到教學(xué)要求,實(shí)現(xiàn)教學(xué)目標(biāo)。
通過階段總結(jié)和評(píng)價(jià)驗(yàn)收,教師可以較為準(zhǔn)確地了解到學(xué)生對(duì)知識(shí)的掌握情況和對(duì)任務(wù)的完成情況,及時(shí)地、有針對(duì)性地對(duì)教學(xué)的進(jìn)度、內(nèi)容和難易程度等進(jìn)行適當(dāng)調(diào)整,以保證教學(xué)的質(zhì)量和效果。
4) 課程考核
評(píng)估體系是保障實(shí)踐教學(xué)質(zhì)量的基礎(chǔ)和驅(qū)動(dòng)力,可以從學(xué)生的專業(yè)技能、綜合應(yīng)用能力和職業(yè)素養(yǎng)等多個(gè)方面入手,既要進(jìn)行團(tuán)隊(duì)評(píng)估,又要進(jìn)行個(gè)人評(píng)估,既要有階段評(píng)估,又要有終結(jié)評(píng)估。具體的做法是:在每個(gè)階段,都要對(duì)學(xué)生團(tuán)隊(duì)在項(xiàng)目進(jìn)度、編碼和文檔質(zhì)量、團(tuán)隊(duì)協(xié)作和遇到的問題以及問題的解決情況等方面進(jìn)行檢查和評(píng)價(jià)。在課程結(jié)束時(shí),模擬軟件企業(yè)的做法來組織項(xiàng)目驗(yàn)收會(huì),要求每個(gè)團(tuán)隊(duì)都要上臺(tái)從團(tuán)隊(duì)分工情況、項(xiàng)目總體的完成情況、采用的技術(shù)、創(chuàng)新點(diǎn)和優(yōu)勢(shì)及存在問題和不足等面對(duì)項(xiàng)目成果進(jìn)行匯報(bào),然后對(duì)項(xiàng)目成果實(shí)現(xiàn)的各項(xiàng)功能進(jìn)行現(xiàn)場操作演示,并對(duì)老師的提問進(jìn)行答辯。然后根據(jù)課程目標(biāo)和考評(píng)體系要求對(duì)團(tuán)隊(duì)進(jìn)行績效考核,對(duì)團(tuán)隊(duì)成員量化評(píng)分。對(duì)于答辯良好者還可另設(shè)附加分。這種考核方式不僅能對(duì)團(tuán)隊(duì)和成員進(jìn)行全面的能力考核,而且能訓(xùn)練學(xué)生的表達(dá)能力和匯報(bào)技能。
3 對(duì)教師能力的要求
由于軟件工程實(shí)踐教學(xué)的“工程性”和“實(shí)踐性”特征,要求任課教師既要理論基礎(chǔ)扎實(shí)、實(shí)踐能力強(qiáng)、開發(fā)經(jīng)驗(yàn)豐富,又要熟知當(dāng)下軟件項(xiàng)目設(shè)計(jì)的新技術(shù)和新標(biāo)準(zhǔn)。為達(dá)到教學(xué)目標(biāo),授課教師不僅要能“講課”,還要能“開發(fā)”,這樣才能確保授課項(xiàng)目能得到很好地完成,教學(xué)目標(biāo)能得到很好地實(shí)現(xiàn)。因此,對(duì)于講授軟件工程實(shí)踐教學(xué)的授課教師的選擇,最好是獨(dú)立承擔(dān)過或是與軟件企業(yè)合作過實(shí)際軟件工程項(xiàng)目的教師,如有條件,也可直接從軟件企業(yè)聘請(qǐng)一線的軟件工程師參與教學(xué)活動(dòng)或是兼職教師。
4 結(jié)束語
軟件工程是一門隨軟件產(chǎn)業(yè)不斷發(fā)展而變化、理論與實(shí)踐并重的課程,培養(yǎng)符合市場需求的軟件工程專業(yè)人才最重要的環(huán)節(jié)就是實(shí)踐教學(xué)。
本文對(duì)當(dāng)前軟件工程教學(xué)過程中存在的問題進(jìn)行了分析,結(jié)合軟件工程課程的特點(diǎn),提出了一個(gè)從項(xiàng)目選題、團(tuán)隊(duì)建設(shè)、教學(xué)過程管理到課程考核的軟件工程實(shí)踐教學(xué)改革方案,希望能對(duì)軟件工程實(shí)踐教學(xué)起到一定的促進(jìn)作用。
參考文獻(xiàn):
[1] 徐怡.任務(wù)驅(qū)動(dòng)的軟件工程教學(xué)模式研究[J].教改教法,2013(252):78-79.
[2] 朱忠旭.項(xiàng)目驅(qū)動(dòng)的軟件工程進(jìn)化式教學(xué)方法[J].淮南師范學(xué)院學(xué)報(bào),2014(2):136-138.
[3] 張琳.軟件工程學(xué)課程多層次實(shí)踐教學(xué)體系的構(gòu)建[J].計(jì)算機(jī)教育,2011(17):67-70.endprint
2) 團(tuán)隊(duì)建設(shè)
軟件產(chǎn)業(yè)非常強(qiáng)調(diào)“團(tuán)隊(duì)”,計(jì)算機(jī)軟件的開發(fā)離不開團(tuán)隊(duì)合作。團(tuán)隊(duì)協(xié)作作為軟件人才的基本素質(zhì),在軟件工程教學(xué)的一開始,就應(yīng)先普及團(tuán)隊(duì)建設(shè)和團(tuán)隊(duì)協(xié)作以及團(tuán)隊(duì)管理方面的知識(shí),使學(xué)生了解團(tuán)隊(duì)在軟件項(xiàng)目開發(fā)過程中的重要性,同時(shí),讓學(xué)生根據(jù)自身的知識(shí)和能力弄清自己在團(tuán)隊(duì)中的定位以此來提高各成員在團(tuán)隊(duì)中的協(xié)作能力。
項(xiàng)目選題完成后,可以按照項(xiàng)目開發(fā)的實(shí)際需求,將學(xué)生組建成若干軟件工程開發(fā)團(tuán)隊(duì)。由于高校教學(xué)與企業(yè)生產(chǎn)有著顯著差異,不能生搬硬套,可以在保證項(xiàng)目開發(fā)過程完整且團(tuán)隊(duì)分工和主要職責(zé)相同的前提下,進(jìn)行適當(dāng)調(diào)整,具體如表1 所示。
1) 能力互補(bǔ)。團(tuán)隊(duì)成員不能隨便拼湊,在知識(shí)結(jié)構(gòu)和個(gè)人能力特長等方面應(yīng)能夠互補(bǔ),團(tuán)隊(duì)角色要完整,既要有擅長界面設(shè)計(jì)的,又要有善于編碼的,還要有擅長管理的和文檔編寫的。
2) 職責(zé)清晰。團(tuán)隊(duì)成員的職責(zé)要清晰,工作要規(guī)范,既要注重工作效率的提高又要注重職業(yè)素質(zhì)的培養(yǎng),團(tuán)隊(duì)中的每一個(gè)成員都要對(duì)團(tuán)隊(duì)的整體目標(biāo)負(fù)責(zé),只有依靠團(tuán)隊(duì)的共同努力才能保證項(xiàng)目的成功。
3) 教學(xué)過程管理
軟件工程實(shí)踐教學(xué)要體現(xiàn)“以學(xué)生為主體,教師為主導(dǎo)”的教學(xué)思想,整個(gè)教學(xué)過程是一個(gè)階梯式逐步漸增的過程,課程有總目標(biāo),每一階段又有具體的階段目標(biāo),針對(duì)該目標(biāo),教師先進(jìn)行案例演示,勾起學(xué)生興趣,然后進(jìn)行案例分析和相關(guān)理論講解,再由學(xué)生進(jìn)行實(shí)踐,最后學(xué)生和教師再一起進(jìn)行階段成果驗(yàn)收和總結(jié),之后就進(jìn)入下一階段,如此逐步遞進(jìn),直到課程總目標(biāo)全部完成為止。具體實(shí)施步驟如下:
1) 任務(wù)分解、建立目標(biāo)
首先,教師要將貫穿于整個(gè)學(xué)期的一個(gè)大型項(xiàng)目分解為:學(xué)期總目標(biāo)、階段目標(biāo)、課時(shí)目標(biāo)。學(xué)期總目標(biāo)是指通過完成一個(gè)大型項(xiàng)目使學(xué)生掌握軟件項(xiàng)目開發(fā)的基本理論、實(shí)施過程、管理方法和開發(fā)技術(shù),由于覆蓋的知識(shí)量大,要完成該目標(biāo)需要較長時(shí)間的講授和實(shí)踐。階段目標(biāo)是指在完成學(xué)期總目標(biāo)時(shí),根據(jù)工作量和時(shí)間限制將其劃分為若干階段,并通過對(duì)這些階段具體目標(biāo)的實(shí)施來體現(xiàn)學(xué)期總目標(biāo),通常花費(fèi)較少的時(shí)間即可完成。課堂目標(biāo)是將每階段的任務(wù)和目標(biāo)再進(jìn)行分解,使得能夠在若干課時(shí)內(nèi)完成。
2) 理論講解、案例分析
有了階段具體目標(biāo)和要求后,按照階段任務(wù)需要,教師可以先講解基礎(chǔ)理論,階段目標(biāo)的實(shí)現(xiàn)方法和所需技術(shù),并通過一些能激發(fā)學(xué)生興趣的典型案例的演示和分析,一步步引導(dǎo)學(xué)生,讓學(xué)生知道“要做什么”、“怎么做”,弄清“哪些通過已有知識(shí)可以做”、“哪些需要進(jìn)一步學(xué)習(xí)才能做”,充分調(diào)動(dòng)學(xué)生的好奇心和操作欲。
3) 教師引導(dǎo)、學(xué)生實(shí)踐
目標(biāo)和要求提出后,在教師引導(dǎo)下,組織團(tuán)隊(duì)討論,明確任務(wù)目標(biāo),制定任務(wù)實(shí)施計(jì)劃,并根據(jù)團(tuán)隊(duì)成員的知識(shí)和技能進(jìn)行分工,然后開始練習(xí),讓學(xué)生在練中學(xué)、學(xué)中悟。對(duì)于練習(xí)過程中遇到的問題,可以先由團(tuán)隊(duì)內(nèi)部討論解決,解決不了的可以進(jìn)行團(tuán)隊(duì)之間的相互討論和學(xué)習(xí),仍解決不了的,再由教師進(jìn)行輔導(dǎo)。對(duì)于一些共性問題,還可由教師進(jìn)行統(tǒng)一示范,集中解決。
在學(xué)生練習(xí)過程中,對(duì)于方法獨(dú)特、技術(shù)突出的學(xué)生,老師要給予表揚(yáng)和加分,來進(jìn)一步激勵(lì)學(xué)生的斗志和學(xué)習(xí)積極性,還可讓其上臺(tái)演示,給其他學(xué)生一些啟發(fā)。對(duì)于積極性差、表現(xiàn)落后的學(xué)生,教師要給與鼓勵(lì)和支持,引導(dǎo)其向積極方向發(fā)展。
4) 階段總結(jié)、評(píng)價(jià)驗(yàn)收
按要求,每個(gè)團(tuán)隊(duì)都要按照軟件工程理論組織自己的工程開發(fā),并且建立關(guān)鍵開發(fā)的過程管理。為防止某些學(xué)生“跟著混”,從而造成學(xué)生成績兩極分化,對(duì)于軟件開發(fā)的各個(gè)里程碑,將組織學(xué)生進(jìn)行技術(shù)評(píng)審。對(duì)于學(xué)習(xí)能力差的學(xué)生或操作有疏漏的學(xué)生要采取教師鼓勵(lì)引導(dǎo)和團(tuán)隊(duì)成員幫扶雙管齊下的策略,使其能跟上教學(xué)進(jìn)度,全面掌握知識(shí)點(diǎn),達(dá)到教學(xué)要求,實(shí)現(xiàn)教學(xué)目標(biāo)。
通過階段總結(jié)和評(píng)價(jià)驗(yàn)收,教師可以較為準(zhǔn)確地了解到學(xué)生對(duì)知識(shí)的掌握情況和對(duì)任務(wù)的完成情況,及時(shí)地、有針對(duì)性地對(duì)教學(xué)的進(jìn)度、內(nèi)容和難易程度等進(jìn)行適當(dāng)調(diào)整,以保證教學(xué)的質(zhì)量和效果。
4) 課程考核
評(píng)估體系是保障實(shí)踐教學(xué)質(zhì)量的基礎(chǔ)和驅(qū)動(dòng)力,可以從學(xué)生的專業(yè)技能、綜合應(yīng)用能力和職業(yè)素養(yǎng)等多個(gè)方面入手,既要進(jìn)行團(tuán)隊(duì)評(píng)估,又要進(jìn)行個(gè)人評(píng)估,既要有階段評(píng)估,又要有終結(jié)評(píng)估。具體的做法是:在每個(gè)階段,都要對(duì)學(xué)生團(tuán)隊(duì)在項(xiàng)目進(jìn)度、編碼和文檔質(zhì)量、團(tuán)隊(duì)協(xié)作和遇到的問題以及問題的解決情況等方面進(jìn)行檢查和評(píng)價(jià)。在課程結(jié)束時(shí),模擬軟件企業(yè)的做法來組織項(xiàng)目驗(yàn)收會(huì),要求每個(gè)團(tuán)隊(duì)都要上臺(tái)從團(tuán)隊(duì)分工情況、項(xiàng)目總體的完成情況、采用的技術(shù)、創(chuàng)新點(diǎn)和優(yōu)勢(shì)及存在問題和不足等面對(duì)項(xiàng)目成果進(jìn)行匯報(bào),然后對(duì)項(xiàng)目成果實(shí)現(xiàn)的各項(xiàng)功能進(jìn)行現(xiàn)場操作演示,并對(duì)老師的提問進(jìn)行答辯。然后根據(jù)課程目標(biāo)和考評(píng)體系要求對(duì)團(tuán)隊(duì)進(jìn)行績效考核,對(duì)團(tuán)隊(duì)成員量化評(píng)分。對(duì)于答辯良好者還可另設(shè)附加分。這種考核方式不僅能對(duì)團(tuán)隊(duì)和成員進(jìn)行全面的能力考核,而且能訓(xùn)練學(xué)生的表達(dá)能力和匯報(bào)技能。
3 對(duì)教師能力的要求
由于軟件工程實(shí)踐教學(xué)的“工程性”和“實(shí)踐性”特征,要求任課教師既要理論基礎(chǔ)扎實(shí)、實(shí)踐能力強(qiáng)、開發(fā)經(jīng)驗(yàn)豐富,又要熟知當(dāng)下軟件項(xiàng)目設(shè)計(jì)的新技術(shù)和新標(biāo)準(zhǔn)。為達(dá)到教學(xué)目標(biāo),授課教師不僅要能“講課”,還要能“開發(fā)”,這樣才能確保授課項(xiàng)目能得到很好地完成,教學(xué)目標(biāo)能得到很好地實(shí)現(xiàn)。因此,對(duì)于講授軟件工程實(shí)踐教學(xué)的授課教師的選擇,最好是獨(dú)立承擔(dān)過或是與軟件企業(yè)合作過實(shí)際軟件工程項(xiàng)目的教師,如有條件,也可直接從軟件企業(yè)聘請(qǐng)一線的軟件工程師參與教學(xué)活動(dòng)或是兼職教師。
4 結(jié)束語
軟件工程是一門隨軟件產(chǎn)業(yè)不斷發(fā)展而變化、理論與實(shí)踐并重的課程,培養(yǎng)符合市場需求的軟件工程專業(yè)人才最重要的環(huán)節(jié)就是實(shí)踐教學(xué)。
本文對(duì)當(dāng)前軟件工程教學(xué)過程中存在的問題進(jìn)行了分析,結(jié)合軟件工程課程的特點(diǎn),提出了一個(gè)從項(xiàng)目選題、團(tuán)隊(duì)建設(shè)、教學(xué)過程管理到課程考核的軟件工程實(shí)踐教學(xué)改革方案,希望能對(duì)軟件工程實(shí)踐教學(xué)起到一定的促進(jìn)作用。
參考文獻(xiàn):
[1] 徐怡.任務(wù)驅(qū)動(dòng)的軟件工程教學(xué)模式研究[J].教改教法,2013(252):78-79.
[2] 朱忠旭.項(xiàng)目驅(qū)動(dòng)的軟件工程進(jìn)化式教學(xué)方法[J].淮南師范學(xué)院學(xué)報(bào),2014(2):136-138.
[3] 張琳.軟件工程學(xué)課程多層次實(shí)踐教學(xué)體系的構(gòu)建[J].計(jì)算機(jī)教育,2011(17):67-70.endprint
2) 團(tuán)隊(duì)建設(shè)
軟件產(chǎn)業(yè)非常強(qiáng)調(diào)“團(tuán)隊(duì)”,計(jì)算機(jī)軟件的開發(fā)離不開團(tuán)隊(duì)合作。團(tuán)隊(duì)協(xié)作作為軟件人才的基本素質(zhì),在軟件工程教學(xué)的一開始,就應(yīng)先普及團(tuán)隊(duì)建設(shè)和團(tuán)隊(duì)協(xié)作以及團(tuán)隊(duì)管理方面的知識(shí),使學(xué)生了解團(tuán)隊(duì)在軟件項(xiàng)目開發(fā)過程中的重要性,同時(shí),讓學(xué)生根據(jù)自身的知識(shí)和能力弄清自己在團(tuán)隊(duì)中的定位以此來提高各成員在團(tuán)隊(duì)中的協(xié)作能力。
項(xiàng)目選題完成后,可以按照項(xiàng)目開發(fā)的實(shí)際需求,將學(xué)生組建成若干軟件工程開發(fā)團(tuán)隊(duì)。由于高校教學(xué)與企業(yè)生產(chǎn)有著顯著差異,不能生搬硬套,可以在保證項(xiàng)目開發(fā)過程完整且團(tuán)隊(duì)分工和主要職責(zé)相同的前提下,進(jìn)行適當(dāng)調(diào)整,具體如表1 所示。
1) 能力互補(bǔ)。團(tuán)隊(duì)成員不能隨便拼湊,在知識(shí)結(jié)構(gòu)和個(gè)人能力特長等方面應(yīng)能夠互補(bǔ),團(tuán)隊(duì)角色要完整,既要有擅長界面設(shè)計(jì)的,又要有善于編碼的,還要有擅長管理的和文檔編寫的。
2) 職責(zé)清晰。團(tuán)隊(duì)成員的職責(zé)要清晰,工作要規(guī)范,既要注重工作效率的提高又要注重職業(yè)素質(zhì)的培養(yǎng),團(tuán)隊(duì)中的每一個(gè)成員都要對(duì)團(tuán)隊(duì)的整體目標(biāo)負(fù)責(zé),只有依靠團(tuán)隊(duì)的共同努力才能保證項(xiàng)目的成功。
3) 教學(xué)過程管理
軟件工程實(shí)踐教學(xué)要體現(xiàn)“以學(xué)生為主體,教師為主導(dǎo)”的教學(xué)思想,整個(gè)教學(xué)過程是一個(gè)階梯式逐步漸增的過程,課程有總目標(biāo),每一階段又有具體的階段目標(biāo),針對(duì)該目標(biāo),教師先進(jìn)行案例演示,勾起學(xué)生興趣,然后進(jìn)行案例分析和相關(guān)理論講解,再由學(xué)生進(jìn)行實(shí)踐,最后學(xué)生和教師再一起進(jìn)行階段成果驗(yàn)收和總結(jié),之后就進(jìn)入下一階段,如此逐步遞進(jìn),直到課程總目標(biāo)全部完成為止。具體實(shí)施步驟如下:
1) 任務(wù)分解、建立目標(biāo)
首先,教師要將貫穿于整個(gè)學(xué)期的一個(gè)大型項(xiàng)目分解為:學(xué)期總目標(biāo)、階段目標(biāo)、課時(shí)目標(biāo)。學(xué)期總目標(biāo)是指通過完成一個(gè)大型項(xiàng)目使學(xué)生掌握軟件項(xiàng)目開發(fā)的基本理論、實(shí)施過程、管理方法和開發(fā)技術(shù),由于覆蓋的知識(shí)量大,要完成該目標(biāo)需要較長時(shí)間的講授和實(shí)踐。階段目標(biāo)是指在完成學(xué)期總目標(biāo)時(shí),根據(jù)工作量和時(shí)間限制將其劃分為若干階段,并通過對(duì)這些階段具體目標(biāo)的實(shí)施來體現(xiàn)學(xué)期總目標(biāo),通常花費(fèi)較少的時(shí)間即可完成。課堂目標(biāo)是將每階段的任務(wù)和目標(biāo)再進(jìn)行分解,使得能夠在若干課時(shí)內(nèi)完成。
2) 理論講解、案例分析
有了階段具體目標(biāo)和要求后,按照階段任務(wù)需要,教師可以先講解基礎(chǔ)理論,階段目標(biāo)的實(shí)現(xiàn)方法和所需技術(shù),并通過一些能激發(fā)學(xué)生興趣的典型案例的演示和分析,一步步引導(dǎo)學(xué)生,讓學(xué)生知道“要做什么”、“怎么做”,弄清“哪些通過已有知識(shí)可以做”、“哪些需要進(jìn)一步學(xué)習(xí)才能做”,充分調(diào)動(dòng)學(xué)生的好奇心和操作欲。
3) 教師引導(dǎo)、學(xué)生實(shí)踐
目標(biāo)和要求提出后,在教師引導(dǎo)下,組織團(tuán)隊(duì)討論,明確任務(wù)目標(biāo),制定任務(wù)實(shí)施計(jì)劃,并根據(jù)團(tuán)隊(duì)成員的知識(shí)和技能進(jìn)行分工,然后開始練習(xí),讓學(xué)生在練中學(xué)、學(xué)中悟。對(duì)于練習(xí)過程中遇到的問題,可以先由團(tuán)隊(duì)內(nèi)部討論解決,解決不了的可以進(jìn)行團(tuán)隊(duì)之間的相互討論和學(xué)習(xí),仍解決不了的,再由教師進(jìn)行輔導(dǎo)。對(duì)于一些共性問題,還可由教師進(jìn)行統(tǒng)一示范,集中解決。
在學(xué)生練習(xí)過程中,對(duì)于方法獨(dú)特、技術(shù)突出的學(xué)生,老師要給予表揚(yáng)和加分,來進(jìn)一步激勵(lì)學(xué)生的斗志和學(xué)習(xí)積極性,還可讓其上臺(tái)演示,給其他學(xué)生一些啟發(fā)。對(duì)于積極性差、表現(xiàn)落后的學(xué)生,教師要給與鼓勵(lì)和支持,引導(dǎo)其向積極方向發(fā)展。
4) 階段總結(jié)、評(píng)價(jià)驗(yàn)收
按要求,每個(gè)團(tuán)隊(duì)都要按照軟件工程理論組織自己的工程開發(fā),并且建立關(guān)鍵開發(fā)的過程管理。為防止某些學(xué)生“跟著混”,從而造成學(xué)生成績兩極分化,對(duì)于軟件開發(fā)的各個(gè)里程碑,將組織學(xué)生進(jìn)行技術(shù)評(píng)審。對(duì)于學(xué)習(xí)能力差的學(xué)生或操作有疏漏的學(xué)生要采取教師鼓勵(lì)引導(dǎo)和團(tuán)隊(duì)成員幫扶雙管齊下的策略,使其能跟上教學(xué)進(jìn)度,全面掌握知識(shí)點(diǎn),達(dá)到教學(xué)要求,實(shí)現(xiàn)教學(xué)目標(biāo)。
通過階段總結(jié)和評(píng)價(jià)驗(yàn)收,教師可以較為準(zhǔn)確地了解到學(xué)生對(duì)知識(shí)的掌握情況和對(duì)任務(wù)的完成情況,及時(shí)地、有針對(duì)性地對(duì)教學(xué)的進(jìn)度、內(nèi)容和難易程度等進(jìn)行適當(dāng)調(diào)整,以保證教學(xué)的質(zhì)量和效果。
4) 課程考核
評(píng)估體系是保障實(shí)踐教學(xué)質(zhì)量的基礎(chǔ)和驅(qū)動(dòng)力,可以從學(xué)生的專業(yè)技能、綜合應(yīng)用能力和職業(yè)素養(yǎng)等多個(gè)方面入手,既要進(jìn)行團(tuán)隊(duì)評(píng)估,又要進(jìn)行個(gè)人評(píng)估,既要有階段評(píng)估,又要有終結(jié)評(píng)估。具體的做法是:在每個(gè)階段,都要對(duì)學(xué)生團(tuán)隊(duì)在項(xiàng)目進(jìn)度、編碼和文檔質(zhì)量、團(tuán)隊(duì)協(xié)作和遇到的問題以及問題的解決情況等方面進(jìn)行檢查和評(píng)價(jià)。在課程結(jié)束時(shí),模擬軟件企業(yè)的做法來組織項(xiàng)目驗(yàn)收會(huì),要求每個(gè)團(tuán)隊(duì)都要上臺(tái)從團(tuán)隊(duì)分工情況、項(xiàng)目總體的完成情況、采用的技術(shù)、創(chuàng)新點(diǎn)和優(yōu)勢(shì)及存在問題和不足等面對(duì)項(xiàng)目成果進(jìn)行匯報(bào),然后對(duì)項(xiàng)目成果實(shí)現(xiàn)的各項(xiàng)功能進(jìn)行現(xiàn)場操作演示,并對(duì)老師的提問進(jìn)行答辯。然后根據(jù)課程目標(biāo)和考評(píng)體系要求對(duì)團(tuán)隊(duì)進(jìn)行績效考核,對(duì)團(tuán)隊(duì)成員量化評(píng)分。對(duì)于答辯良好者還可另設(shè)附加分。這種考核方式不僅能對(duì)團(tuán)隊(duì)和成員進(jìn)行全面的能力考核,而且能訓(xùn)練學(xué)生的表達(dá)能力和匯報(bào)技能。
3 對(duì)教師能力的要求
由于軟件工程實(shí)踐教學(xué)的“工程性”和“實(shí)踐性”特征,要求任課教師既要理論基礎(chǔ)扎實(shí)、實(shí)踐能力強(qiáng)、開發(fā)經(jīng)驗(yàn)豐富,又要熟知當(dāng)下軟件項(xiàng)目設(shè)計(jì)的新技術(shù)和新標(biāo)準(zhǔn)。為達(dá)到教學(xué)目標(biāo),授課教師不僅要能“講課”,還要能“開發(fā)”,這樣才能確保授課項(xiàng)目能得到很好地完成,教學(xué)目標(biāo)能得到很好地實(shí)現(xiàn)。因此,對(duì)于講授軟件工程實(shí)踐教學(xué)的授課教師的選擇,最好是獨(dú)立承擔(dān)過或是與軟件企業(yè)合作過實(shí)際軟件工程項(xiàng)目的教師,如有條件,也可直接從軟件企業(yè)聘請(qǐng)一線的軟件工程師參與教學(xué)活動(dòng)或是兼職教師。
4 結(jié)束語
軟件工程是一門隨軟件產(chǎn)業(yè)不斷發(fā)展而變化、理論與實(shí)踐并重的課程,培養(yǎng)符合市場需求的軟件工程專業(yè)人才最重要的環(huán)節(jié)就是實(shí)踐教學(xué)。
本文對(duì)當(dāng)前軟件工程教學(xué)過程中存在的問題進(jìn)行了分析,結(jié)合軟件工程課程的特點(diǎn),提出了一個(gè)從項(xiàng)目選題、團(tuán)隊(duì)建設(shè)、教學(xué)過程管理到課程考核的軟件工程實(shí)踐教學(xué)改革方案,希望能對(duì)軟件工程實(shí)踐教學(xué)起到一定的促進(jìn)作用。
參考文獻(xiàn):
[1] 徐怡.任務(wù)驅(qū)動(dòng)的軟件工程教學(xué)模式研究[J].教改教法,2013(252):78-79.
[2] 朱忠旭.項(xiàng)目驅(qū)動(dòng)的軟件工程進(jìn)化式教學(xué)方法[J].淮南師范學(xué)院學(xué)報(bào),2014(2):136-138.
[3] 張琳.軟件工程學(xué)課程多層次實(shí)踐教學(xué)體系的構(gòu)建[J].計(jì)算機(jī)教育,2011(17):67-70.endprint