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