時間:2023-03-13 11:04:45
導語:在軟件工程課程設計總結的撰寫旅程中,學習并吸收他人佳作的精髓是一條寶貴的路徑,好期刊匯集了九篇優秀范文,愿這些內容能夠啟發您的創作靈感,引領您探索更多的創作可能。

關鍵詞:CDIO;翻轉課堂;軟件工程
中圖分類號:G642 文獻標志碼:A 文章編號:1673-8454(2017)08-0050-03
一、引言
《軟件工程》是指導計算機軟件開發和維護的工程學科。軟件人才所需要掌握的系統理論和方法,所需要具備的軟件項目的理解與掌控能力、全面的實踐開發能力以及良好的溝通協調能力都與《軟件工程》課程的教學內容和教學目標緊密相關,因此《軟件工程》課程在軟件工程專業人才的培養上具有重要地位。
《軟件工程》教學內容理論性強,表面上一看就懂,實際上很難掌握。近年來,該課程的教學方法和手段不斷改進,在教學效果上有了明顯提高,但仍然存在諸多問題。例如,將基礎理論和方法的學習與軟件開發實踐割裂開來;在教學方法上以教師講授為主,忽視了對學生積極性、主動性、創新性的培養;強調學生個人軟件開發能力的發展,忽視了團隊協作精神的培養等。
CDIO[1-3]教育模式是近年來國際工程教育改革的最新成果,CDIO代表構思(Conceive)、設計(Design)、實現(Implement)和運作(Operate),注重通過實做來加深對理論知識的理解和掌握,培養學生的創新意識、項目開發能力和團隊協作精神。《軟件工程》這門課程對于沒有開發經驗的學生來說枯燥抽象,無法產生共鳴。學生只有通過實踐才能理解并掌握其理論知識,才能熟練運用相關工具完成軟件建模和軟件開發。其次,隨著軟件規模越來越大,軟件開發工作必須以團隊形式進行,但是很多大學生都缺乏良好的溝通能力和團隊精神。采用CDIO的教學模式,學生以小組形式共同完成軟件開發任務,必然會提高學生的溝通協調能力。因此,將CDIO模式引入《軟件工程》課程教學勢在必行。
翻轉課堂[4-6]是一種新型的教學模式。傳統情況下,學生的學習過程分為兩個階段:第一階段是“知識傳授”,通過教師在課堂上的講解來實現;第二個階段是“吸收內化”,在課后由學生通過復習、寫作業等形式來實現。“吸收內化”的過程需要靈活運用所學知識解決問題,相對于“知識傳授”階段來講難度更大,但此時卻缺乏教師的支持和輔導,學生常常感到挫敗,漸漸失去了學習動力,作業抄襲成了普遍現象。“翻轉課堂”對學生學習過程進行了重構,“知識傳授”在課前由學生自主進行;“吸收內化”是在課堂上通過教師講解和師生互動來完成。在學習《軟件工程》課程時,學生普遍感到看書時仿佛理解了,合上書本后卻什么也沒有留下,說明學生并沒有掌握軟件工程思想的精髓,知識的吸收與內化沒有做好,需要教師在這一過程中提供及時的幫助。
因此,在CDIO模式下融入翻轉課堂的思想,要求學生課前完成知識的了解,課堂上對學生理解不了的難點問題重點講解、討論,同時利用先進的實踐環境進行實操訓練,一定能夠有效提高課程的教學效果。
二、CDIO教育模式在《軟件工程》課程教學中的實施
在以往的教學中,理論教學在前十二周進行,然后到學期末尾進行軟件工程的課程設計,為期兩周,這兩部分完全脫節。在理論教學中,由于沒有實踐環節,學生單純學習理論知識,感覺枯燥乏味,不知所云,學習效果差。到了課程設計環節,由于前期沒有打下堅實的理論基礎,學生只是重視代碼的編寫,對分析和設計往往是在課程設計驗收時才匆忙寫一寫,應付了事,并沒有得到應有的訓練,沒有領會軟件工程的思想精髓。
采用CDIO教學模式后,將《軟件工程》的理論教學和實踐教學有機地融合在一起,同步M行。
1.學生組建若干個軟件項目開發小組
授課之初,將學生以自愿為原則分成若干組,每組3~5人,確定一名負責人,然后大家共同選定一個軟件開發項目,這些項目可以由教師指定,也可以由各組同學按興趣自行選定,教師給出指導意見,確定項目范圍。
2.隨著理論教學的推進,同步開展項目實踐活動
軟件開發分為需求分析、軟件設計、編碼和測試等階段。按照這些階段的先后順序安排教學內容,并同步開展實踐活動。例如,學習需求分析時,要求學生圍繞自己的項目進行充分的需求分析,包括查閱資料、實地調研和分析建模,并撰寫需求分析文檔。學習軟件設計時,要求學生進行項目的概要設計、詳細設計和設計建模,撰寫軟件設計文檔。
在開展軟件工程各個階段的工作時,要求學生采用業界常用的軟件建模和開發工具,例如Enterprise Architect、MyEclipse、Visual Studio等。
3.充分利用課堂教學和課程設計之間的空檔時間進行軟件編碼
軟件工程理論教學結束后和課程設計開始前的這段時間是編碼階段的工作時間,每個項目組根據之前的分析和設計結果,選擇程序設計語言和開發工具進行編碼工作,實現系統的核心部分。
4.在課程設計時間段進行軟件測試,編寫課設報告
在軟件工程課程設計的兩周時間里,采用人工測試和機器測試相結合的方法進行軟件測試,記錄整個測試過程,包括測試用例和測試結果,形成測試報告。最后,根據課程設計文檔的要求撰寫課程設計報告。
采用這種教學模式,在理論教學中采用案例教學方式,讓學生直觀地感受軟件工程的基本原理與方法;在課程設計中,通過動手實踐使學生深入理解和掌握軟件工程的基本原理與方法;通過研究性和探索性學習進行課題研究等形式,培養學生的研究能力和創新精神。
在實施CDIO教學模式時應該注意的是,學生的實踐活動不應該著眼于一個個孤立的小任務,而應該定位在一個完整的項目上,隨著課程內容的進展,一步步地完成軟件項目的各個階段任務。這部分的難點在于項目規模的控制,項目過小學生無法體會軟件工程的重要性,項目過大會占用學生過多的時間。可行的方法是將一個規模較大的軟件項目劃分成若干個子系統,每個小組負責一個子系統的研發,各個小組之間分工合作、協調配合。在實踐過程中,一定會遇到各種各樣的問題甚至是失敗,正是這些問題和失敗使學生充分認識到軟件工程方法的重要作用。
三、翻轉課堂在《軟件工程》課程教學中的應用
1.翻轉課堂網絡教學系統
實行翻轉課堂教學需要一個教學軟件系統的支持,現在有很多軟件公司都提供了功能豐富、使用方便的教學系統。如果要實現特定的要求,可以自行開發。軟件工程教學系統運用Java Web技術基于SSH框架開發,分為數據訪問層、業務邏輯層和表示層,其體系結構如圖1所示。使用本系統,學生可以方便地查看教師的任務單、觀看視頻、與教師進行交互和提交文檔和作業等,教師可以任務單、上傳視頻、及時了解和掌握學生學習的情況以調整授課策略。
2.確定適合翻轉課堂教學模式的教學內容
本科的《軟件工程》教學主要講述傳統的軟件開發方法和面向對象的軟件開發方法,適合翻轉課堂模式的教學內容比較多,如結構化分析、結構化設計、面向對象分析和面向對象設計等。這些內容都包含了建模技術的學習,如UML等,這些技術及其工具都比較簡單,容易掌握,難的是如何將這些技術應用到具體的軟件項目分析與設計中。因此,將建模技術的學習放在課前通過觀看視頻進行,將較難掌握的分析和設計方法結合具體項目在課堂教學中展開,通過師生之間的交流討論,使學生能夠對這些理論和方法有更深刻的理解和掌握。
3.制作教學視頻
教學視頻是實現翻轉課堂的基礎和前提。教學視頻的制作,需要一個功能強大的視頻制作軟件,例如Camtasia Studio、OBS Studio等。視頻內容要求體現重點和難點,將時間控制在20分鐘以內。可以恰當使用背景音樂來營造良好的學習氛圍。視頻畫面要求簡潔清晰,富于變化。在視頻中最好有一些分析和推導過程,教師通過手寫板等工具對重點內容進行勾畫并配以細致的講解,吸引學生的注意力。教師的影像可以出現在畫面中,增強面對面進行交互的感覺。在視頻中放置一些問題,學生回答后才可繼續觀看視頻,這一方面能夠引導學生總結和思考,另一方面能使教師了解學生對知識的理解和掌握程度,從而更好地安排后續的課堂教學內容。
4.課堂教學
在課堂教學中,教師首先針對學生課前提出的問題和學習任務單完成的情況,有針對性地講解相關知識點。然后以一個實際的軟件開發項目的分析或設計為目標組織學生分組討論。在此過程中,教師可以參加各組的討論并進行答疑,對存在的共性問題統一講解[7]。最后,隨機抽取2~3組學生匯報其工作成果,并請其他組的同學發現存在的問題,然后教師再對這些問題進行點評,提供更多有針對性的幫助。
5.反饋與評價
教師根據學生掌握知識的情況以及反饋的各種意見,總結教學環節存在的不足,以此調整教學內容和教學方式。教師在評價學生時主要考慮兩方面,一是根據學生觀看視頻、回答問題的情況以及在網上交流的情況;二是根據學生在課堂上的表現,包括學生所負責工作的難度和工作量,在組里的參與程度,和教師、其他學生的互動情況等。教師將評估結果及時反饋給學生,促使學生發現自身存在的問題,不斷進步。
四、結束語
通過在《軟件工程》課程中實施CDIO和翻轉課堂相結合的教學模式,解決了傳統教學模式的缺點,使學生成為主動的參與者,激發了學生的學習興趣,發揮了學生的主觀能動性,更有效的促進學生對知識的內化,教學效果得到了顯著提高。不過,翻轉課堂教學模式要求學生必須進行課前自學,否則教學效果很差,如何保證學生能夠自覺地學習需要進一步探索。
參考文獻:
[1]李彤,趙娜.基于CDIO的軟件工程國家精品課程建設[J].計算機教育,2012(1):14-19.
[2]n智,張振虹,李興娟.基于CDIO 理念的軟件工程課程教學改革[J].計算機教育,2010(11):56-59.
[3]汪軍,強俊.基于CDIO理念的軟件工程專業人才培養模式的研究[J].重慶工商大學學報(自然科學版),2015(6):70-74.
[4]宋朝霞,俞啟定.基于翻轉課堂的項目式教學模式研究[J].遠程教育雜志,2014(1):96-104.
關鍵詞:軟件工程;實踐教學;課程設計;案例庫;可復用
課程設計是一門課程結束之后安排一周或者兩周綜合實訓,讓學生完成一個實際的課題鞏固理論知識,對課程知識體系獲得更深刻全面的理解,是提高學生實踐能力的重要環節[1]。目前,學院軟件工程專業從第4、5學期陸續開設專業基礎課和專業課,如《C#面向對象的程序設計》、《Java程序設計》、《軟件需求分析》、《數據庫原理及應用》、《軟件工程》、《UML技術》、《軟件測試》等,這些課程均安排了為期一周的課程設計。但大四畢業設計時發現部分學生實踐能力達不到專業培養要求,原因主要在于專業類課程實踐環節沒能夠達到理想的教學效果。經調研發現,這些課程設計周是由各科授課老師布置一個相關課題,明確課題要求,給一周時間讓學生自主完成,最后提交一個小的系統與課程設計報告。這種課程設計存在以下問題:(1)課程設計教學內容方面。老師未能提供系統、綜合的課程知識相關案例,導致學生對題目理解不足,對課題認知模糊,無從下手,降低了學習主動性。(2)教學手段陳舊。基本還是停留在老師講、學生聽的階段。師生互動較少,學生沒有足夠時間思考,即使在某個環節出現問題也不能及時解決,課后問題可能不了了之。(3)課程設計考核體系不完善。實踐環節大多為考察,導致學生不夠重視,提交一個報告了事。由于缺乏完整監管機制,學生對整個課題的開發過程認識不清,沒有收獲。另外,老師憑提交的報告給出成績,區分度不明顯,不夠合理公平。針對目前存在問題,本文提出軟件工程類課程設計實踐教學改進方案。首先,建設一個可復用的軟件工程實踐教學案例庫,案例庫中的教學案例運用主流開發技術、管理技術及開發環境。“可復用”是指同一案例根據不同課程分割出不同的知識單元,軟件工程類課程之間本來就緊密聯系,相互承接,案例庫可供多門專業課在實踐環節教學中使用。其次,推行案例同時更新教學手段,采用注重學生參與及師生交流的分段式教學模式。最后,制定明確的課程設計監管與考核方案,對整個課程設計過程嚴格把控,培養學生綜合應用知識能力與實踐動手能力,提高課程設計環節教學效果。
1案例庫建設
案例庫中的項目不僅要考慮案例庫的可復用性,能夠服務多門課程,還需體現軟件工程專業能力培養需求,并考慮開發難度與學生接受程度。因此應選擇學生熟悉的業務系統,采用主流開發工具來實現輕量級工程化系統。系統功能盡量有代表性,同類系統可以仿照實現,并根據課程知識結構需要進行功能定制。如案例庫中的項目:《學生成績管理系統》用C#與SQLServer2008開發。該系統是典型的小型MIS系統,主要實現了學生、教師、管理員3類用戶對學生信息、課程信息及成績信息不同程度的增、刪、改、查。該案例可以服務于《C#面向對象的程序設計》、《數據庫原理及應用》、《UML技術》、《軟件工程》、《軟件測試》等課程的設計教學。案例庫項目開發融合了軟件工程很多專業課程知識,在不同課程中使用,學生可以明確各門課程學習目標,從不同視角體驗軟件開發流程,提高對軟件工程整體把握的能力,建立軟件工程的思想。
2知識結構劃分與整理
案例實現之后,為了服務于不同課程,不同授課教師需要重新組織教學資源,梳理課程大綱、劃分教學內容、整理教學素材、制作教學課件,這一步至關重要也最為核心。想要通過一個完整教學案例,使學生建立起課程知識結構網絡,授課教師不僅要基于案例將課程相關基本知識點及聯系貫穿其中,還要對知識進行高度提煉,體現課程內容有機聯系。這樣學生通過案例講解,不僅對理論知識理解更加透徹,對課程體系也會有更深刻的把握,學習效果取得質的飛躍。下面以《學生成績管理系統》的實現為例,按不同課程知識側重點進行概要劃分,在課程設計環節中,授課教師結合案例針對本門課程側重講授知識結構。(1)《面向對象的程序設計C#》,講授如何利用C#語言進行系統開發。利用常用控件來搭建設計學生成績管理系統界面、實現窗口間跳轉、消息傳遞;利用面向對象的程序設計方法實現系統業務邏輯與主要功能;利用ADO組件訪問數據庫,完成對系統數據的基本操作。(2)《數據庫原理及應用》,講授如何進行學生成績管理系統后臺數據庫設計。數據流圖,數據字典的創建;概念結構設計(E-R圖的繪制)邏輯結構設計,將E-R圖轉換為關系模式,如何考察關系模式、規范化程度、規范化理論、視圖機制、安全性及完整性設計;數據庫的實施:SQL的應用,建庫、建表、錄入數據等。(3)《軟件工程》,以學生成績管理系統為例,按照軟件工程流程,講解每一階段任務及涉及方法,結合案例從可行性分析、需求分析、總體設計、詳細設計、系統實現及系統測試幾個步驟進行。(4)《UML面向對象設計與分析》,對應學生成績管理系統開發各階段從建模的角度講解UML的9種圖,主要包括在需求階段如何識別參與者與用例,建立用例模型;在分析設計階段靜態結構模型的建立(類圖、對象圖)及動態行為模型的建立(順序圖、狀態圖、活動圖);系統實現階段物理模型的建立(組件圖、系統部署圖),及將UML自動轉換為面向對象設計語言的實現。可以看到,不同課程使用《學生成績管理系統》案例側重于不同知識體系。
3案例推行與考核模式建立
授課教師在課程設計環節中推行案例,按照案例教學、任務驅動模式來進行,課堂講授仍然是不可或缺的[2]。首先通過分析案例程序引導學生學習,由案例的講解分析,深入淺出地引出知識點,引導學生逐步理解課程重點、難點,深化理論知識學習[3]。其次提出本次課程設計任務要求,老師詳細分解設計題目內容與步驟,給出參照與示范。案例講解與任務分解交叉進行,課程差異性使得案例教學不必拘泥于固定模式與時間,講授案例時間大概是6~10學時,老師可以自行調整授課進度與節奏。在案例教學中,為了充分調動學生主動性,并及時發現問題、解決問題,采用了“教師提出課題—學生分組討論—教師演示案例—學生實踐—學生總結、師生交流”分段方式進行,并且在以學生為主體的階段進行考核。在案例講解、任務驅動教學方式下,建立完整考核機制,教師監控整個實踐過程,激勵學生參與到每一個階段中,學生遇到問題也可以反饋給老師,及時得到幫助,提高學生主動性。成績考評是根據學生每一階段任務完成情況,從分析解決問題、團隊合作、語言表達及文檔書寫能力表現作綜合評定,不僅保證了評價結果客觀性,也引導了學生加強這些方面的能力培養。
4結語
針對學院現在軟件工程類多門課程在課程設計環節存在問題,提出了建設可復用的案例庫,并根據不同課程教學需要對案例進行知識結構劃分與整理,在實踐中采用分段式教學推行案例,加以完整考評方式,現已收到較好教學效果。基于案例庫的實踐教學改進方案還可以應用在軟件工程綜合實訓環節,為了達到更高教學要求,培養高質量人才,案例庫還需要不斷更新與完善。
參考文獻:
[1]吳金秀.課程設計在高職實踐教學中的應用與探索[J].網絡與信息,2008(10):78.
1.課程定位不明確
在信管專業中,軟件工程主要指導學生進行管理信息系統的分析、設計、實施及維護,側重系統的研發和維護的原理和方法。管理信息系統課程則是讓學生全面認識管理信息系統,涉及的知識面廣,但內容淺顯。兩者在系統開發和維護部分的內容上存在交集,部分院校因此未將軟件工程加入專業培養計劃。另外一些院校為強化學生的系統開發能力,將“軟件工程”與“信息系統分析與設計”課程同時開設,出現課程重復的現象。這些都是軟件工程定位不清晰的結果。
2.課程時間安排不合理
信管專業中的軟件工程與諸多信管專業基礎課程聯系密切,需要較強的專業基礎知識,但目前部分院校的課程體系將軟件工程與管理學、程序設計等專業基礎課程安排在同一學期顯然不合適,教學安排缺乏層次性。
3.師資力量存短板
信管專業教授軟件工程的教師幾乎都畢業于計算機專業,不僅缺乏管理學相關知識且在教學思想上沿襲了理工科的風格,偏重程序研發流程,忽略管理信息系統開發過程的多學科交叉特點,導致學生把管理信息系統等同于一般的計算機軟件,使得學生對管理信息系統的內涵認識不足,甚至產生誤解。此外,大多數教師并沒有實際參與大型管理信息系統項目的開發,缺乏實際的研發經驗,故難以全面、深入地介紹管理信息系統研發過程和特點。
4.適用教材缺乏
一方面現有信管專業軟件工程的教材大都沿用自計算機專業,著重從理論方面介紹各種經典分析和設計方法,所選案例也缺乏與管理學等其他相關學科結合,且很少結合最新的設計方法和工具進行介紹。這種教材選擇方式難以和信管專業內的其他課程有機結合,自身形成知識孤島,無法體現信管專業管理為主、計算機為輔,多學科交叉的特點,同時也不能反映信管專業與計算機專業的本質區別。
5.教學方法古板,實踐不足
軟件工程的教學內容多為以往研發經驗的概括和總結,知識點多以各種概念、原則、規則和要點等形式出現,缺乏完整案例,內容抽象晦澀,教師多采用單向注入和強行灌輸的教學方式,不利學生的理解和應用。此外,信管專業課程體系龐雜,無法為軟件工程分配足夠的實踐課時。其他系統開發相關課程,或因項目過小而無需使用軟件工程思想,或因課時限制而側重系統的實現和測試方面。這些問題導致軟件工程思想難以完全付諸實踐,使學生缺乏系統性和全面性的訓練。
6.學生評價機制不合理
成績評定是評估學生學習效果的重要依據,也是反映教師教學能力的參考指標。本校統一采用“平時表現+期末筆試”的考核機制,比例為3:7。其中,平時表現包含期中考試成績、日常考勤、課后作業和實驗成績等。這種成績評定機制存在諸多問題:(1)期末考試比例過大,不能全面客觀反映學生的表現。(2)閉卷理論筆試不利于擴展學生的知識面,難以考查知識的實際綜合運用能力。(3)筆試為主的考核機制容易誘使學生產生應試教育的傾向。
二、《軟件工程》課程教學的若干對策
針對信管專業軟件工程課程的問題,結合本校教師的教學經驗提出相關的應對措施。
1.明晰教學定位
信管專業的定位是計算機和管理的交叉學科,管理信息系統是信管專業關系最為密切的信息系統。軟件工程在信管專業中的主要任務是為了培養學生使用軟件工程的思想分析、設計和開發管理信息系統。鑒于學生培養目標的不同,信息系統開發能力并非所有學生所必須掌握的。因此,軟件工程在信管專業中的定位不能搞一刀切,必須因方向而異。系統開發方向的學生應把軟件工程作為專業必修課,而信息管理方向的學生則作為專業選修課選修。
2.優化課程安排
軟件工程的目的是指導管理信息系統開發,學生選修前需具備基本的編程能力和數據庫知識。而且,管理信息系統的開發需要結合管理、會計和運籌等課程的相關知識。因此,軟件工程的安排應置于數據結構、數據庫、程序設計、管理學和運籌學等課程之后,信息系統課程設計之前。在課程設置上,軟件工程與面向對象程序設計、管理信息系統、信息系統課程設計等相關課程組成課程群,相關任課教師以團隊方式備課。每學期期初和期末,同一課程群的教師互相交流教學效果和存在的問題,根據學生的情況各自調整后序教學內容,有針對性地開展教學。課程群方式可以有效加強課程間的平滑銜接,強化教師間的團隊合作,實現知識的有機結合,提高課程安排的層次性與合理性。
3.建立合理的教師培養機制
教師培養采用“走出去,引進來”的方針,加強與兄弟院校和相關企業的交流。圍繞構建應用型本科院校的目標,引入高職院校中的“雙師型”培養機制,將科學研究和實際應用相結合,組織軟件工程及相關課程組構成的開發團隊,積極參與校內外的合作項目的研發,如校內各部門的信息系統開發項目、校外實習基地的合作開發項目、科研項目的系統實現等。在教學任務之外,學校應鼓勵任課教師定期到實習單位參加項目見習,甚至直接參與項目研發,提高教師的研發能力,更新知識儲備。同時,教師的考核體系應根據教師的授課內容進行分類評價,軟件工程等應用性課程的考核機制應加大對實踐的要求,鼓勵科研與知識應用的結合,真正實現應用型培養的發展方向
4.改進教學方法,強化實踐教學
根據軟件工程理論和實踐要求都較強的特點,采用案例驅動的方法開展教學,將理論知識融入到具體案例當中,通過“學中練、練中學”的模式將抽象的知識通過具體的項目展示,方便理解和消化吸收。此外,單純的理論知識學習是不夠的,需要通過實際的項目訓練進行提高,進而達到鞏固所學知識,靈活應用的目的。項目訓練以學生分組的方式進行,在學習的同時培養學生的團隊意識和協作精神。項目類型以中型管理信息系統為宜,來源可出自教師自身的項目或者協作單位項目中的子系統,也可以學生提出由任課教師審核通過。項目結束時,學生必須能夠提交可正確執行的程序,同時提交相關的系統開發文檔,文檔要求嚴格按照國標GB-T8567-2006編寫。在實踐過程中,教師應以項目管理人的角色監督項目的進度,及時發現并糾正存在的錯誤,同時回答學生在實踐中遇到問題。這種方式既讓學生清楚了解課程開設的目的和意義,也強化學生對所學知識的理解和應用。
5.完善教學資源
信管專業軟件工程課程的教學資源(如教材、輔導資料、教學案例等)的安排和設計應按本專業的需求進行改進和完善。首先,調整教材內容的編排。軟件開發技術知識點需要與時俱進,已被淘汰的知識點應予以刪除或以概述的形式介紹,同時增加近年出現的新技術和新方法,并對其中的典型方法進行重點介紹,并配上相應的案例進行講解。其次,修改教材內容的編寫方式。采用案例驅動的教學模式,將以往逐條羅列的抽象理論融合到具體的教學案例中,讓學生通過分析案例提取出知識要點。該方法既有利于對枯燥知識的理解和吸收,也為進一步的知識應用提供極好的參考素材。第三,修改配套案例。案例選擇中等規模的管理信息系統的完整研發過程較為合適。案例規模不宜過大的案例,否則不適宜初學者學習;規模太小則細節不足。案例可以取自教學參考書,也可以是教師自身的項目研發經歷,還可以源自合作單位的項目。第四,建立信息化教學實驗平臺。通過云計算等先進技術構建的軟件工程教學實驗平臺,師生能夠無時間、地域限制地實現教學課件和視頻等資源的共享、作業和課程實踐的實時監控和學生疑難問題的解答,極大方便了師生間的交流,對提高教學效果具有重大現實意義。
6.改革學生評價機制
課程成績對學生在課程學習過程中的表現和效果的綜合評價,對學生學習起指向性作用,必須秉承公正、全面、客觀的態度。第一、全面考慮學生評價要素。在教學過程中,除考勤情況、期中成績、期末成績等常規項目外,學生的課堂表現、作業完成質量和上交情況,實踐項目的完成情況等也是衡量學生的學習成績的重要依據。因此,軟件工程的考核體系可綜合為以下三方面:(1)平時表現,包含出勤情況、課堂提問和作業完成情況等;(2)實踐成績,包含課程設計和實驗的質量和文檔的編寫情況;(3)卷面成績,包含期中和期末考試的筆試成績。第二、合理分配評價要素的比重。評價要素的比重定量反映了課程各教學環節的重要性,能夠對學生的學習起導向作用。為了突出軟件工程以“理論為基礎,重在實踐應用”的特點,實踐成績的比重應與卷面成績相當,也可以考慮使用課程實踐成績代替期末筆試。第三、客觀評定評價要素。學生的評價要素通常分為定性和定量兩種。其中,各種考試成績和作業成績、考勤情況等定量評價易于給定。相對而言,平時表現等定性指標需教師主觀評定,易受到教師個人情感的影響,需要教師秉持公正客觀的態度。對學生的主觀評價一般以良為基礎,表現突出的學生可給予優,存在遲到早退、作業應付或缺交、課堂紀律不佳等情況的學生則酌情給予中或差的評價。第四、豐富考核形式。除傳統的閉卷筆試外,軟件工程的考核形式還可采用以下幾種:(1)課程論文:以個人為單位,就管理信息系統研發和管理中的某個環節提出自己的觀點并展開論述,完成3000-5000字的課程論文。(2)課程設計:參考教學案例,采用軟件工程思想,以團隊方式開發一個管理信息系統,完成從需求分析到設計實現的完整過程,并編寫相關軟件文檔。(3)開卷筆試:以論述和應用題為主要題型,主要考察學生解決系統分析、設計、測試和維護等環節中具體問題的能力,如按要求繪制程序流程圖、軟件結構圖和系統流程圖等分析設計圖表,設計測試用例等。學生允許攜帶一定數量的參考資料,但不允許攜帶電子設備。任課教師可根據教學目標和學時安排綜合使用上述方式。總體而言,以課程論文或課程設計代替期末筆試進行考核更符合學以致用的教學目標。
三、總結
關鍵詞: Moodle;網絡課程;軟件工程
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)02-0122-03
1 軟件工程網絡課程開發的必要性
軟件工程是我校計算機科學與技術(職教師資班)專業的一門專業必修課,是指導軟件開發和維護的工程學科,該課程信息量大,軟件開發的理論知識和方法貫穿教學實踐全過程,近五年的教學,積累了大量的課程資源、文檔、工具和項目資料,而學生實踐中遇到的問題、技術實現上的討論也需要平臺進行交流分享。信息化新時代,信息技術融入課程日益加強,構建有效的網上學習社區,提高教學中的互動與協作,開展教學多元評價,有利于有效提高教學績效。軟件工程教學實踐性強,針對課程的特點,精心進行網絡課程設計,利用現代教學手段開展教學,以適應信息化發展需要。因此開發一個輔助學生自主學習軟件工程的網絡課程非常有必要且具有很大的推廣性。
Moodle平臺使得課程目標、課程內容、學習資源等能有效被呈現,學在真實的網絡環境下,學生能夠自主學習、討論以及向教師提問等,學生的積極性與創造性得到充分調動,利于培養學生良好的信息素養和計算機應用能力,也利于加快信息化校園的建設與實現。
2 Moodle平臺簡介
Moodle是模塊化的、面向對象的、動態學習環境(Modular Object-Oriented Dynamic Learning Environment)的簡稱,是由澳大利亞教師Martin Dougiamas開發的一個課程管理系統(CMS),可幫助教學人員創建高效的在線學習組織,幫助教師高質量地創建和管理在線課程[1]。在國外高校中,Moodle作為一個免費的、開源的課程管理系統被廣泛的使用。 Moodle依據建構主義的學習理論,注重強調在信息化情景下教與學活動中的相互協作、交流,使學生根據已有的經驗完成意義建構。表1說明了Moodle平臺對教師和學生教學行為的支持[2]。
Moodle 教學平臺功能強大,操作簡單,它主要包括課程管理、資源管理、活動管理和互動評價四大功能模塊[3]。Moodle平臺提供在線評價系統,支持多種學習評價方式,可以實施軟件工程階段性性評價與總結性評價相結合,學生自我評價與教師(他人)評價相結合。
3 軟件工程網絡課程的設計
良好教學效果需要有科學的網絡課程設計。軟件工程學研究的范圍非常廣泛,設計軟件開發過程中的理論、技術方法,工具和管理等許多方面,內容豐富、學生參與和討論程度高,軟件工程網絡課程擬構建一個資源高度共享的、師生之間、生生之間的網絡協作學習平臺,豐富學習的交互性和生動性。結合網絡課程一般設計流程和Moodle平臺特點,針對我院軟件工程課程教學特點,分別從流程設計和任務設計兩方面闡述我院基于Moodle平臺的軟件工程網絡課程的設計思路。
3.1流程設計
在參考熊小梅等提出的Moodle平臺下網絡課程設計的一般流程[4]的基礎上,軟件工程網絡課程的設計流程如圖1所示。
在教學內容方面,軟件工程知識和能力是軟件研發崗位的職業基本技能。為強化軟件工程過程管理,將教學內容劃定為面向過程的軟件工程、面向對象的軟件工程和軟件過程管理專題的三大部分,而前兩部分又細分為問題定義、需求分析、概要設計、詳細設計、編碼實現、軟件測試、維護、文檔配置管理等知識點。
在教學策略上,本課程采用軟件過程階段實例導入、技術學習與討論、實踐操作分析相結合的啟發式教學策略及方法。既有實例導入,又有知識與技能的學習,還需要結合小組項目任務的制定和實施,開展教學。本課程采用理論教學、實驗實踐教學、項目驅動教學相結合的教學模式,讓學生參與軟件項目活動,開展協作學習并完成任務。同時,教師上傳豐富的資源形式并進行管理,學生可隨時網上學習和下載,并在課外學習,突破時空限制,為學生深入研習創造條件。教師利用每個學習階段對每個教學單元開展多種形式(如互動、測驗、心得報告等)對學生的學習效果和課程實施進行評價、獲取學生反饋,以便及時改進教學。
3.2任務設計
林鴻等人提出了C語言課程在線系統的設計[5],本文結合軟件工程課程特點,給出在線課程的主要任務設計如圖2所示。
4 軟件工程網絡課程Moodle平臺的搭建
Moodle平臺是采用PHP技術并使用MySQL數據庫的開放源碼軟件平臺,任何支持PHP和MySQL的系統均可安裝Moodle。為開展軟件課程網絡課程實踐,本文給出在Windows 7系統下搭建Moodle平臺網絡課程的過程。
4.1平臺軟件工具和環境配置
1)WampServer2.4。WampServer2.4是Apache+PHP+Mysql在Windows下的集成服務器環境,它安裝簡單,易于操作,避免了諸多PHP環境配置問題[6]。
2)VC++ 2008可再發行組件包。WampServer2.4所必需的微軟程序組件VC++ 2008可再發行包。
3)moodle-2.8.5。Moodle平臺的最新正式版本。
4)Moodle平臺中文語言包。
在安裝上述軟件之前,如果機器安裝有IIS 服務,還要事先關掉IIS 服務功能,因為通常一臺電腦上不能同時安裝兩個Web 服務器(80端口沖突)。平臺所需軟件見圖3所示。
4.2 平臺搭建過程
1)安裝VC++ 2008可再發行組件包。
3)啟動WampServer2.4所有服務,打開其中的PhpMyAdmin服務,管理課程Moodle平臺數據庫,創建一個名為moodle的空數據庫即可,注:用戶名為root,密碼為空。
4)解壓moodle-2.8.5.zip到WampServer2.4服務器安裝路徑下的網站文件夾www目錄下(如:D:\ wamp\www\)。
5)解壓中文包zh_ch.zip到服務器網站目錄www下的moodle文件夾的語言目錄中(如:D:\wamp\www\moodle\lang)。
6)打開http://localhost/moodle/開始進行Moodle平臺安裝與參數設置,建議選擇中文語言界面進行安裝,最后更設置好個人資料,用戶名和密碼即可。
安裝好之后管理員可在主頁上進行網站管理、用戶管理、課程管理等操作。
4.3《軟件工程》網絡課程構建與應用
搭建好Moodle平臺之后,用戶以教師(課程創建者)的身份登錄到Moodle平臺上,即可開始管理自己的網絡課程,構建課程的主要過程有:(1)添加并設置課程。(2)添加用戶。(3)共享教學資源。如課件、文檔、文章、網絡資源等。(4)創建活動。如論壇主題討論、在線測驗、作業、問卷調查、投票等活動。
在對我校2013級計算機科學與技術(職教師資班)專業32名學生開展的《軟件工程》課中搭建和應用了基于Moodle課程網絡平臺,師生共同完成了網絡課程的教師和個人信息編輯、課程資源共享和下載、課程討論區使用、站內與回復消息、在線實時聊天、課程作業管理、課程在線測驗、管理課程博客等功能,通過近一個學期的使用發現,網絡課程平臺使師生加強了課堂外的交流討論、學習和小組協作,拓展了學生學習方式,提高了學生學習自主性和創造性,學生反饋課堂學習更加豐富多彩,知識學習和交流互動更加便捷了,教與學的質量得到了很大的提高。學生課程首頁應用效果如圖5所示。
5 后記
軟件工程網絡課程的建設,加快了現代化教與學的模式的實施進程,給教學實踐和互動交流搭建了良好的平臺,學生從被動學習轉變為主動學習,探究與協作學習,突出了學生的主體性,有利于教學質量的提高。Moodle作為一個開源、基于建構理論的課程管理系統,對開發出高質量的軟件工程網絡課程平臺提供了很大的幫助。
參考文獻:
[1]黎加厚. Moodle課程設計[M],上海. 上海教育出版社,2007.
[2]Moodle官方網站.http:///.
[3]景寶華. 基于moodle平臺的《數據庫應用技術》網絡課程構建研究[J].計算機光盤軟件與應用, 2014(6).
[4]熊小梅. 基于Moodle平臺的網絡課程設計及應用[J]. 教育與職業, 2014(2).
關鍵詞:課程建設;課程設計;計算機軟件
作者簡介:張艷(1976-),女,河南南陽人,上海理工大學光電信息與計算機工程學院,講師。(上海 200093)
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)05-0096-01
計算機是一門技術性、工程性和應用性很強的學科,教育部高等學校計算機科學與技術教學指導委員會的發展戰略研究報告中也指出:計算機專業的人才應該被分為科學型、工程型、應用型三類,而絕大多數應該是工程型和應用型的。許多高校注重學生專業能力的培養,紛紛開設實踐類課程以滿足信息社會對實用型人才的需求。因此,如何建設實踐類課程無疑是擺在每位一線專業教師面前的重要課題。本文以“應用軟件課程設計”課程的建設為主要探討對象,介紹了該課程的設置意義、教學方法和實施細則,希望能對計算機專業實踐類課程的建設和教學以及學生的就業有所幫助。
一、課程設置的重要意義
在大學里,設置一門課程,不能只關注這門課程所含的內容,更要考慮本科教育培養學生基本專業能力、可持續發展能力等這些本質性的問題。計算機學科問題求解的基本思路是“問題形式化描述計算機化”,以抽象、理論、設計為其學科形態。按照計算機科學與技術專業本科生的培養目標,到學生畢業時應具備計算思維;算法設計與分析;程序設計與實現系統的認知、分析、開發與應用等四大基本能力。
“應用軟件課程設計”課程面向大三的學生開設,在計算機科學與技術專業四年本科教學中,是以前期的“數據結構”、“計算方法”、“離散數學”、“軟件系統”(包括編譯原理,操作系統)、“軟件工程”、“程序設計”、“數據庫原理”以及“計算機網絡與通信”等課程為基礎的一門軟件開發技術綜合應用的專業課程。該課程讓學生綜合運用專業知識,通過動手實踐,以團隊協作的方式根據軟件工程的原理選擇難度適中的課題,完成網絡環境下基于B/S架構的綜合應用軟件的系統設計與實現任務。課程設置的目的就是通過本課程的系統學習與實訓,達到全面提升學生綜合應用軟件的實際開發能力和團隊合作能力,以解決傳統教學中理論學習與工程應用相脫節、單門課程孤立地學習與缺乏正確運用學科體系的理念來指導學生實現綜合技術全面應用的突出問題,以期有效地實現計算機科學與技術專業本科學生的培養目標。
課程開設近10年的實踐證明,學生綜合運用計算機專業基礎知識,科學設計、開發軟件,合理進行軟件開發的能力得到全方位的、實戰型的鍛煉,不僅實現了專業理論知識與實踐有效地相互結合,而且很好地鍛煉了學生的動手實踐能力和團隊協作能力,為日后的擇業起到很好的鋪墊作用。
二、“應用軟件課程設計”的教學內容
“應用軟件課程設計”主要以曹渠江教授編寫的《綜合運用軟件設計》一書為教材,輔助以課程網站和網絡上的各類學習資源,要求學生利用軟件工程、面向對象程序設計的思想,根據課程項目任務和功能完成課題的需求分析;制定課程項目詳細的時間進度規范;利用面向對象程序設計、計算機網絡、數據庫原理、多媒體技術等相關知識來進行數據庫設計與開發;熟悉和掌握網絡應用的開發環境,分析課題中技術難點并進行技術攻關;根據制定的時間進度計劃和需求分析,進行網絡環境下基于B/S架構的系統軟件模塊的編寫、開發與整合;對整個項目所有模塊進行代碼集成測試、軟件產品完善;最后提交課程設計個人報告、課程設計小組報告以及完整程序。整個課程總學時為64學時,主要以機房實踐為主,通過演示軟件、答辯的形式公開、公平地評定成績。
三、應用軟件課程設計的實施方法
1.本課程的實施原則
實踐類課程不同于其他計算機專業課程,主要以實踐為主,這就比較難控制進度和公正地評價學習成績,因此筆者制定了如下實施原則:
由教師提供網上新聞管理系統、網上寵物商店、網上公文流轉系統、藥品管理系統、繼續教育管理系統、網上用戶投訴系統、在線同學錄、企業倉庫管理系統、班級相冊管理系統、在線學籍管理系統、網上聊天室、客戶關系管理系統等難度適中的十幾個項目,對于每個項目都講明設計要求和要求實現的基本功能;按照自愿原則,四到六個同學組成一個項目小組,推選出一位組長。對于沒被組合的同學,由教師統一安排,每組配備一位有項目開發與項目管理經驗的研究生為指導教師,負責學生的上機輔導、課外答疑、技術咨詢與指導;每組由組長填報所有成員的個人信息,以便師生之間緊密聯系;每組組長代表小組全體成員與指導教師商定每周一次的輔導、提問與答疑的時間,并互通聯絡信息;教師每周安排兩次上機,每次4個學時。最初的3周(12學時)進行理論授課,主要講課程基本要求和安排以及軟件工程、軟件開發工具和方法的基本知識;設立課程公共電子郵箱,上傳所有課程資料、進度安排和學生要提交的各個階段的文檔模板,每位學生必須根據給定的工作模板與課程要求,在不同時間節點完成個人與小組的初期、中期、末期三個時期的階段報告和最終的課程設計報告;最后進行大組公開演示和答辯,全體指導教師根據答辯情況、提交的報告質量、平時上機表現與平時的檢查情況集體打分,綜合評定出每位學生的最終成績。
2.本課程的教學安排
整個課程在實際教學過程中,按照16周的總體時間共分為以下5個階段。
(1)課程設計第一階段(3周):認真學習教材和閱讀課題任務說明書,根據軟件工程的理論和選定項目任務完成課題的需求分析;制定本課題的實施方案,完成個人角色任務分配等各類文檔和開發規范;確定課題技術難點及其攻關措施;熟悉和掌握.NET的開發環境、后臺數據庫開發工具以及與課題相關的開發工具。在本階段結束時,向指導教師提交課程設計個人及小組的初期報告。
(2)課程設計第二階段(4周):根據制定的時間進度計劃和需求分析,進行系統數據庫的實現及應用軟件的初步模塊編寫與開發。在本階段結束時,向指導教師提交課程設計個人與小組的中期報告以及個人階段性開發的程序源碼。
(3)課程設計第三階段(4周):本階段是項目開發的實質性階段,對整個項目所有模塊進行開發并進行代碼集成測試、完善整個軟件產品。在本階段結束時,向指導教師提交課程設計末期的個人和小組的報告。
(4)課程設計第四階段(3周):完成全部代碼的開發工作,檢查并匯總本課題小組成果,課題小組完成項目開發總結報告,個人完成各自的課程設計個人報告。在本階段結束時,向指導教師提交課程設計個人與小組的報告以及小組的完整的、可供運行的代碼文檔。
(5)最后是課程設計綜合評價階段(2周):對本課題設計項目綜合評價,最后進行大組公開演示和答辯,檢查程序運行效果;全體指導教師根據答辯情況、提交的報告質量與平時的上機情況集體打分,綜合評定出每位學生的最終成績,力求公平、公正。
另外,在課程結束后會召開師生座談會,集中講評、總結課程的教學、學習情況,征求學生對課程和教學方面的建議和意見,同時給學生指出專業學習的努力方向,學生給教師提出今后課程需改進的地方,使教與學相互促進從而不斷完善該課程。
四、結論
“應用軟件課程設計”在上海理工大學已經開設10年,是上海理工大學精品課程與上海市教委重點課程建設項目,它很好地體現了計算機專業課程的系統性、完整性、科學性和原理性,有效鍛煉了學生的動手實踐、軟件開發和團隊協作能力,對提高學生的專業能力和專業素質起到了關鍵作用。任課教師在教學實踐中付出了很大的努力,不斷完善課程的教學模式和評價手段,積累了大量經驗,該課程多次受到學生的好評,很多已就業的學生反饋的信息表明:該課程對學生專業素養的培養和從學校到職場的銜接起到了很好的作用,為計算機專業的實踐教學探索出一條切實可行的道路。
參考文獻:
[關鍵詞]卓越工程師 雙師型 校企合作
引言
目前,我國開設工科專業的高校近千所,占高校總數的90%以上,中國已經成為工程人才的培養大國,但卻不是培養強國。工程人才培養質量方面與西方先進國家相比,差距較大,難以適應國家發展對創新型工程技術人才的迫切需求[1]。基于此,2010年6月23日,國家教育部正式啟動了“卓越工程師教育培養計劃”。該計劃作為《國家中長期教育改革與發展規劃綱要(2010-2020)》的一個重大項目,目標在于培養和造就一大批創新能力強、適應中國經濟社會發展需要的高素質各類工程技術人才[2]。該目標與東北石油大學軟件工程專業“創新型、實踐型、工程化、國際化”的人才培養目標不謀而合。
我們本著大學要為地方經濟服務的辦學宗旨,積極探索卓越軟件工程師的人才培養模式,全面提升學生的創新能力和工程實踐能力,主要在以下幾方面做了初步嘗試。
一、培養模式和培養方案的改革
東北石油大學軟件工程專業培養模式為“3+1”模式,即前三年在校學習和最后一年的企業實訓。前三年在校學習,內容主要包括通識基礎知識、專業基礎知識、專業知識的學習以及每個短學期的企業實訓,從而打造階梯式的培養模式。建立以工程能力培養為核心的人才培養體系,不斷更新課程內容,去掉陳舊的知識,及時挖掘新知識、新技術,完善知識結構,讓學生了解和掌握最前沿的信息和技術,擁有合理的知識體系;改進知識學習方式,以學生自主學習為主,教師加以適當引導,培養學生的自學能力和創新精神,只有這樣,學生在工作后才能根據社會經濟的需要發展自己、完善自己,從而適應新形勢,解決新出現的問題,創造性地完成自己的工作;改革考核方式和評價標準,不再僅以一張試卷對學生的學習效果加以定論,而是對某門課程學習的全程進行記錄跟蹤,對學生的自主學習能力、實踐動手能力、分析問題和解決問題的能力加以全面的考核,強調學習過程和學習成效;通過課外創新活動,拓寬學生的知識面,開闊視野,提高學生的學習興趣和主動性,從而提高團隊協作能力、溝通能力、創新能力和社會競爭力。
前三年在校學習的每個學年,都設計學生進入企業學習的環節,保證學生在這個過程中了解企業的文化、接受企業的熏陶、遵守企業的紀律、完成企業的工作任務,把不同階段的學習與企業實踐相結合,為最后一年的企業實訓打下基礎。
大學的最后一年實現完全企業環境下的實訓,在此期間完成畢業設計。通過前三年階梯式的不間斷的企業實訓,到大四時,學生基本具有了在企業獨立頂崗工作的能力。這一年中學生可以根據實際實訓的崗位情況,經過學校和實訓企業的聯合指導,按照能力培養的基本要求完成畢業設計環節。
畢業設計對于學生來說是非常重要的一個環節。在學生完成了前三年的基本學習任務后,在最后一個暑假前,就讓學生選擇好實訓的企業。在進入實訓企業之前,學生首先要選擇由學院提供的畢業設計題目,讓學生帶著這個任務進入自己選擇的實訓企業。在參與到企業的具體工作后,允許根據具體的工作以及企業的導師方向來提出新的畢業設計題目。經過學院的學術委員會研究,認為題目能夠滿足本科畢業設計的基本要求后,正式更改題目,并且備案。通過這樣的方式,既能夠保證學生的畢業設計能夠充分與企業實際相結合,也保證了培養方案中規定的畢業設計質量。
二、課程體系和教學內容的改革
創新能力培養是卓越工程師后備人才培養的主要目標,而創新的基礎就是實踐動手能力,因此在整個培養體系中,尤其加強了實踐部分的比重,建立從大一到大四全過程、遞進式、可操作性強的完整實踐教學體系,該體系從課內實驗、課程設計、模擬企業項目的開發、假期企業實訓、集中的企業實訓、綜合的畢業設計,逐步培養學生的動手能力、職業素質、團隊協作能力、項目管理能力和綜合解決問題能力。具體體現在如下幾點:
1.講練一體式教學
增加課內實驗部分的比重,同時所有程序設計課程實現講練一體式教學,使學生邊做邊學,保證在最短的時間內收到最大的成效。
2.進行短期的企業環境體驗
在大學一年級的短學期,學生已經學習了計算機與信息技術基礎課程,能熟練地使用辦公軟件,此期間,安排3周的短期企業實訓。學生進入大慶服務外包產業園的企業,跟企業員工一樣按時上班、下班、并做一些在這個階段能做的具體工作,例如數據錄入工作,體驗企業環境和企業文化,體會企業嚴謹的工作作風和踏實的工作態度,從而去掉自身的好高騖遠、眼高手低的浮躁心態,培養踏實認真的行事作風。
3.階梯式課程設計
大一的短學期之前,學生已經學完程序設計導論課程,初步地了解c#程序設計語言、.net開發環境和面向對象的基礎知識,在短期企業實訓前安排2周的c#課程設計。主要由教師出幾道模擬題目,指導學生進行開發,需求分析和設計部分主要由教師以要求的方式提出,學生只負責編碼部分的實現。目的主要在于使學生初步了解一個完整項目的開發過程,同時綜合應用學過的理論知識,提高動手編程能力。
1.1課程資源
課程資源是涵蓋理論課和實驗課的各種相關資源信息,主要包括課程介紹、教學大綱、實驗大綱以及課程相關資料等。這個模塊為學生課下自主學習提供了非常有針對性的資源,對課堂教學是一個很好的補充。
1.1.1理論教學資源
課程介紹:是對課程的主要內容、課程的特點、課程學習的目的和任務等多方面作一個總括性的簡介方便學生對課程有一個總體的把握與了解。教學大綱:主要包括課程教學的內容與要求,對每章節的知識點、重點和難點進行說明,闡述具體的教學安排和課時分配,便于學生按照大綱的指導進行學習。教學日歷:用來描述課程的進度安排。學生可以通過查看教學日歷,事先預習教學內容,使得課堂學習更有目的性和針對性,提高了教學效率。授課教案和課件:這是學生自主學習最重要的部分,包括各章節的文字教案和多媒體教學課件。如果學生課堂上沒有完全理解授課內容的,可以帶著問題在課下繼續進行自主學習,能調動學生的自主學習的積極性,提高教學效果。預備知識:列出學生已經學習過的與軟件工程設計有關的課程目錄,如程序語言、數據庫、操作系統等,引導學生復習一些在軟件工程中需要涉及到的相關知識。
1.1.2實驗教學資源
實驗大綱:根據課程實驗的要求組織實驗項目,編寫實驗大綱,主要包括各個實驗的實驗目的、實驗原理、實驗內容和實驗環境等。注意實驗項目內容應從簡單到復雜對學生進行引導,給學生留下充足的學習思考空間,引導學生自主學習的方式和解決問題的方法,課程設計要求:主要包括分組情況、任務分配、任務書的規范說明、提交方式、打印格式和成績核定方法。此外,還可以給出實驗日戈表和課程設計計戈表等實驗詳細信息,使學生能合理規劃好整個實驗環節所要完成的任務。
1.2項目任務
該模塊主要包括項目實例,方便學生學習和了解;建立項目題庫,學生可以選擇項目,完成實驗任務。
1.2.1項目實例
教師根據學生的知識結構和實際情況,虛擬設計一兩個小型系統,作為項目實例,如停車場管理系統、借還書管理系統等。貫穿軟件生命周期整個過程,從問題定義、可行性分析、需求分析、總體設計、詳細設計到調試分析和軟件測試,給出項目的全過程設計。學生通過實例學習,對軟件工程開發項目有全面的認識和了解,知道軟件生命周期的各個過程應該做些什么,如何進行可行性研究,需求分析的任務是什么,采用什么分析工具,怎樣能全面周到的做好總體設計規劃,詳細設計階段的設計說明書的作用是什么,系統模塊如何劃分,程序實現的方法有哪些,怎么設計軟件測試方案以及軟件維護說明書。
1.2.2項目題庫
教師可為學生準備一些軟件項目,如停車場管理系統,在線考試系統,圖書管理系統,學生信息系統,銀行卡管理系統,教材定購系統,工資管理系統,設備管理系統等,建立項目題庫,每個項目配備相應的項目任務書,以便學生選擇項目,下載相關的項目任務書,完成項目計劃。項目題庫中的項目,要不斷更新。項目的來源可以根據企業的需求、也可以是教師自己的科研項目,要對各個項目進行共同討論,決定項目的可行性,并根據教學要求和課程特點,對實際項目進行剪切或劃分成子項目,使其具有可操作性和實踐性,便于學生操作和實訓。
1.3軟件工具
該模塊是配置相應的軟件工程實驗軟件,主要提供建模工具和編程軟件的下載,便于學生完成項目的分析過程,實現系統功育旨。
1.3.1建模工具
對幾種uML統一建模工具進行簡單介紹,并提供軟件下載,安裝方法和使用教程。學生可以采用不同的分析工具,建立系統的分析模型,并做好需求分析和系統設計。主要的建模工具有MierosoftOffieeVisio、RationalRose和powerDesigner三種。MierosoftOffieeVisio中引進了軟件分析設計功能到代碼生成的全部功能,可以更輕松地將流程、系統和復雜信息可視化、可以創建多種類的圖表。RatiollalRose主要是對開發過程中的各種語義、模塊、對象以及流程、狀態等進行比較好的描述,能從各個方面和角度來分析和設計,對系統的代碼框架生成有很好的支持。P*erDesigller是一種數據庫建模工具,允許使用一種結構化的方法有效地創建數據庫或數據倉庫,它還提供了直觀的符號表示,使數據庫的創建更力口容易,并使項目組內的交流和通訊標準化。
1.3.2編程工具
給出幾種軟件開發工具,如結構化編程語言或面向對象的編程軟件(c、c料、JAvA、DELPHI),以及sQL、P*erbuilder等開發工具,并提供軟件下載和安裝方法,供學生選擇編程軟件,編寫程序,并測試軟件。
1.4文檔資料
該模塊主要列出整個項目所要提交的各類文檔資料。此外,還應該提供統一格式的實驗報告和課程設計任務書范本,便于學生下載,并按要求填寫內容。項目文檔:主要包括有可行性分析報告,需求規格說明書,項目計劃書,總體設計報告,詳細設計說明書,軟件系統的程序代碼,軟件測試報告以及用戶使用手冊等。規格說明:可以給出一些規格說明的樣例和標準,學生可以使用非形式化、半形式化和形式化等方法描述需求分析規格說明,詳細設計規格說明,并給出系統各部分的設計規格說明書。鼓勵學生學習和使用形式化的方法描述規格說明,例如:有窮狀態機、Petri網以及z語言等,這樣可以用數學方法研究和驗證規格說明是否正確,并消除二義性。
1.5成績評價
該模塊主要給出實驗教學各階段的成績考核方式及評定標準。課程實驗中,上機操作占課程實驗成績的50%(含平時上機操作和考勤),課程實驗需要提交的文檔和報告占50%。課程設計因為是分小組進行,成績評定可以分成個人成績和小組成績兩部分,個人成績主要根據個人在小組中所分工作多少和完成工作情況來確定,小組成績則由各個小組階段成績和系統最終驗收的情況來確定(如系統是否達到需求規格說明中的功能性、提交的文檔是否全面和規范,源程序編寫是否規范、可維護性等)。每個項目組都應該進行匯報,展示自己的成果,由教師和其他同學組成評審團,對每個項目組的匯報進行評審和打分,提出修 改意見和建議。匯報結束后,,教師要進行總結點評,并寫出評語。既要評價項目成果,也評價學生的表現,幫助學生整理學習內容,鼓勵學生的積極性。
2網絡輔助教學
建立軟件工程實驗課程網絡教學平臺后,如何讓學生充分利用平臺資源進行網絡學習,也是必不可少的關鍵部分。整個教學實踐過程可在教師引導下,學生自主管理,分工協作,這樣既鍛煉了學生參與項目管理的能力,又訓練了學生之間的團隊合作精神。有了網絡學習平臺,在理論課程學習的同時,學生可以分三個階段完成軟件工程實驗課程:l)網絡學習:該階段主要學習課程資源,同時,學生進行選題,分小組和分派任務,進行項目的可行性研究和項目的需求分析。2)課程實驗:該階段主要是讓學生學習建模工具,通過使用建模工具,完成項目的分析過程,并進行系統的詳細設計,劃分系統的各組成模塊,給出系統的各部分設計規格說明書。3)課程設計:該階段主要是根據項目的需求規格說明書和系統設計文檔,采用合適的程序設計軟件完成對整個系統的代碼編寫,遵循代碼的開發規范。設計測試用例,對系統進行測試,并提交相關文檔。成績評價部分由教師來完成,每個階段都要進行階段性評價,并根據項目的最終完成情況給出整體評價。要著力培養學生軟件工程開發工具的應用能力,要求學生按規定提交項目要求的各種文檔,形成較為科學的綜合成績評定方法。
3結束語
關鍵詞:數據結構;數據結構課程設計;評價方式
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2013)05-1088-02
數據結構課程內容抽象,信息量大;在學習過程中所用到的技術多,而之前所介紹的專業性知識又不多,因而加大了學習難度;隱含在各部分的技術和方法豐富,也是學習的重點和難點。根據數據結構課程本身的技術特性,設置數據結構課程設計環節十分重要。通過實踐內容的訓練,能達到學生程序思維的訓練和動手上機調試程序能力的增強 , 提高學生組織數據及編寫大型程序的能力。
1 概述
當前我國工程教育面臨的普遍問題是:工程教育與社會和產業的需求脫節,包括,工程教育的培養目標與社會需求不一致;工程教育中的質量評估結果不能真實的反映學生的能力;工程教育環境與職場環境相差甚遠。當前工程教育中,很少能體現課程體系,學科之間的關聯很少。關于課程評價和反饋,包括師生雙方地互評。老師評價學生的手段是在學期結束時,給學生一個或好或差的成績。學生從這個結果中,無法得知他需要進一步努力的方向。用人單位無法依據這份成績來判斷這個學生是否符合他們的需求。學生評教制度就是讓學生在某個時間段(比如第14周到第16周)給老師一份評價。學校根據這份評價來考核老師的教學工作是否合格。而評教的根本目的:促使教師改進教學,服務學生,滿足學生學習需求并實現學生學習利益,在很大程度上被忽略。
數據結構課程設計作為工程教育的一個環節,同樣存在上述問題。另外總共32學時的課時太少,導致學生沒有充分時間去實施系統分析、設計和實施的完整過程。
學生的語言掌握程度較大程度地影響到數據結構課程設計的實施。往往系統實施的思路是正確的,由于語言不熟練,又缺乏正確的調試手段和調試方法,導致程序無法通過調試或者花費大量時間進行調試。由于沒有軟件工程的思想,系統事先沒有經過周密的設計,程序調試通過,驗收時發現題目理解錯誤,與老師的要求相差甚遠。需要重新設計,編寫代碼,造成學生大量時間的浪費。
最后,學生的創新能力、溝通和團隊協作能力有待于進一步提高,而這些能力是作為一名工程型和創新型的計算機專業人才所必需具備的。比較顯著的就是溝通問題。在驗收階段,一個簡單問題無法用恰當的語言回答教師。
2 課程改革的理念和思路
課程改革的理念是充分利用本校本學院已有資源,結合CDIO理念,提高學生整體計算機專業能力,訓練良好的思維方式,培養扎實的實踐能力,具備創新能力和團隊合作精神。
課程改革的思路:課程改革從課時數、教學內容、教學方法和評價與反饋等多方面展開。首先是在教學大綱上增加本門課程的學時數。在教學內容上,把程序語言和軟件工程的內容以恰當地形式加入課程設計中。
在教學方法上,加強思維方式的訓練,強調產學結合,增加學生工程經驗,訓練實踐能力。思維方式的訓練從兩方面展開:在布置任務時,提醒學生按照一定的方法進行抽象,盡量避免手工操作(自動化手段);在驗收階段,針對具體的代碼和算法設計思路,教師提具體的改進方案,并相應地指出可能存在思維誤區。思維方式的形成不是一天就可以完成,希望經過一學期的訓練可以有效地改變部分同學的思維方式。工程實踐(包括工程開發各個環節的實踐)能力提高也是從兩方面展開:一是讓學生經歷工程開發的整個過程;二是提業界真實地案例供學生模仿分析學習。
評價和反饋從師生雙方互評入手。教師對學生的評價要真實反映當前的知識和能力,讓學生明白自己的優勢和不足。學生對教師的評價真實反映這一學期教師的教學能力和教學態度。讓教師進一步清楚學生具體的學習需求和自身能力提高的方向。
課程改革的目標包括加深學生數據結構基礎知識的理解,拓展知識面,增強學生實踐動手能力,激發學生的創新和團隊協作能力,訓練學生的溝通表達和思維能力,培養學生具備良好的職業素質,使學生成為一名工程型和創新型的優秀計算機專業人才。
3 課程改革的內容
該綜合課程設計預計需要32學時。其中6學時用來幫助學生加強程序設計能力,先由老師講解部分的難點重點(主要是在數據結構實施過程中常用的知識點),然后學生完成一個相對復雜的程序。
數據結構的課程設計占用中間的26學時。一學期的課程設計需要學生完成3到4個不同章節的題目。由于學生能力水平參差不齊,每章教師給出3到4個難度不同的題目供選擇。這些題目部分來自配套教材,部分由教師自行設計。學生根據自身能力選擇完成其中的一個題目(也可以自主選擇題目,經教師審核后去實施),然后提交教師驗收。在此過程中,誘導學生按照軟件工程的思想去完成各個題目。具體的手段是給學生一個合理的、按照軟件工程思想設計的課程設計指導書。(先設計后實現)
充分利用學院已有資源,在ACM網站開辟一個數據結構專區,按照ACM競賽的模式設計一些題目供有余力的學生選擇。對于已完成教師安排任務的學生,建議他們注冊登錄學院ACM網站去完成額外的題目,以此增強他們的實踐動手能力。
課程設計的其中一個重要環節是驗收。它不僅起著評定成績的作用,而且還承擔著訓練思維,提高算法設計和溝通表達能力的作用。程序測試通過后,教師選擇部分感興趣的代碼,要求學生解釋。如果得不到滿意的解釋,教師可以暫停此次驗收。這個環節可以考驗學生的溝通表達能力,以及對系統的理解程度。在一定程度上的杜絕拷貝這種現象,退一步,就算是拷貝也必須完全理解整個系統,強制學生必須實際參與課程設計。
接著去提高代碼的質量和效率。先一起分析具體的代碼,研究算法的效率有無進一步提高的空間。若有該如何修改,教師根據學生的具體情況,討論確定方案后,交由學生完成。效率提高后的系統,可以在下一次課再次要求驗收。另外,教師需要明確指出明顯不符合計算思維的代碼,要求學生當堂修改。
最后根據題目難度、完成的質量以及驗收時的表現,給出一個成績并登錄在冊,作為最終成績的一部分。每個驗收的系統必須提交一個配套的課程設計報告。課程設計報告能讓學生學會正確的測試和事后的分析總結,起到部分的自我評價功能。每份課程設計報告也有成績,同樣登記在冊,作為評定最終成績的一個標準。
在課程設計結束時,老師除了給每位學生的一個成績以外,再對出現的問題進行分析總結并以文檔的形式反饋給學生。內容包括語言的掌握程度以及還存在的問題;數據結構的基本內容掌握情況,提交程序的效率、有無按照軟件工程的思想完成,還需重點解決的問題;創新能力、溝通和團隊協作能力如何等等。
參考文獻:
[1] John Malmqvi st. The Application of CDIO Standards in the Evaluation of Swedish Engineering Degree Programmers[J].World Transaction on Engineering and Technology Education,2006,5(2):361-364.
[2] 查建中. 面向經濟全球化的工程教育改革戰略[J].計算機教育,2010(11):2-7.
[3] 中國CDIO網站. CDIO簡介[EB/OL].http:///vNews.asp?typeID=30&parentID=29. 2011.
[4] 茍喜霞.車載導航系統最優路徑規劃的研究[D]. 北京:北京交通大學,2009.
[5] 任雪萍,王立波,趙葆華.融入PIC-CDIO理念的“數據結構”課程教學改革[J].計算機教育,2012(7):29-32.
關鍵詞:軟件測試;能力培養;教學理念;培養模式;探索實踐
中圖分類號:TP311 文獻標識碼:A DoI: 10.3969/j.issn.1003-6970.2012.03.009
Explore and Practice of Training the Ability for Software Test Talent
CaI Jian-ping
(School of Software Engineering Beijing University of Technology, Beijing 100101, China)
【Abstract】According to the requirements of Ministry of Education for training software talents, Aim at the software engineering features, and as a breakthrough for shortage of talent on software test, the paper analysis the employing demand of IT enterprises, study the training target of software testing talents and the training demand on the ability, explore a good method of the ability training for software test talents. Based on this, we actively undertake many practice activities about the ability training for software test talents, for example, concise the teaching philosophy of training software testing talent, build the new pattern of training the ability for software test talents, constitute a general outline for software test course, write corresponding book, establish laboratory, etc.
【Key words】software testing; ability training; Teaching Philosophy; Training Pattern; Explore and Practice
0 引 言
軟件測試是軟件工程的一個重要分支,是軟件質量保證的重要基礎。現代軟件測試與傳統的軟件測試不一樣,它是貫穿軟件工程整個生命周期(從需求分析、軟件設計、代碼開發,一直到最后測試、驗收和維護),涉及各種軟件開發技術、應用技術以及測試技術,覆蓋軟件各種應用領域(如桌面軟件、網絡應用、信息系統、電子服務、嵌入式系統、數字娛樂等),面臨不同的專業領域知識,所要求的投入與軟件開發相比規模同等甚至更高。另外,軟件測試是一項需具備較強專業技術、學習和創新能力的工作,軟件測試人員除了需要有一定的軟件測試實踐經驗外,必須要具有縝密的邏輯思維能力、全面的技術能力、各種測試工具的使用能力、敢想敢干的創新能力,要有較強的責任心和團隊合作精神以及出色的溝通能力等專業素質。要成為一名合格的軟件測試人才需要經過嚴格系統化的專業培養,并且在專業培養過程中一定要結合軟件測試專業化的特殊要求,強調軟件測試人員的工程實踐能力。
目前,很多高等學校僅僅是在計算機專業或軟件工程專業中設置一些軟件測試課程,還沒有提高到軟件測試專業化人才培養這個層面。北京工業大學軟件學院率先在這方面進行了探索和實踐,將能力培養作為軟件測試人才培養的重要內容和突破口,提出了“用工具,促能力”的教學理念,積極探索軟件測試課程的改革與實踐,最終建立通過學習和使用軟件測試工具進行軟件測試能力培養的新模式。并在此基礎上,開展課程建設、教材建設、實驗室建設等工作,取得了較好的效果。
1 “用工具,促能力”的教學理念
工程實踐能力是計算機專業,特別是軟件工程專業的基本要求之一。計算機技術或軟件工程技術涉及到大量的知識內容,包含各種開發和應用技術,覆蓋許多應用領域,需要有很強工程實踐能力。對于我們在校的本科學生,由于從高中到大學,一直在學習,缺乏實際項目經歷。如果按照傳統的課堂傳授理論知識的方法進行教學,輔助一般的實驗,會讓學生感到枯燥、乏味,提不起興趣。
為此,北京工業大學軟件學院要求在軟件工程本科專業的培養計劃中加大計算機基礎課程和軟件工程專業核心課程的實踐教學環節(包括配套的課程設計,獨立的實踐課程,以及小學期的集中實訓等),并特別在軟件測試課程的實踐教學上進行了大膽的改革和創新,提出了“用工具,促能力”進行軟件測試人才能力培養的教學理念。該教學理念的核心思想是通過要求學生熟練地使用各種軟件測試工具,來掌握軟件測試相關知識、技術、方法和管理流程,提高軟件測試的工程實踐能力,提升軟件測試的專業化水平。
熟練地使用軟件測試工具能帶來如下好處:
1)提高工作效率。
軟件測試的工作量很大(據統計,測試會占用到40%的開發時間;一些可靠性要求非常高的軟件,甚至會占到60%);另外,測試中的許多操作是重復的、非智力性的和非創造性的,但要求準確細致。最后,那些固定的、重復性的工作,可以由測試工具來完成,這樣就使得測試人員能有更多的時間來計劃測試過程,設計測試用例,使測試進行的更加完善。
2)保證測試的準確性。
手工測試常會犯一些人為錯誤。為此需要投入大量的時間和精力;而工具的特點是能保證測試的準確性,防止人為疏忽造成的錯誤。
3)有些測試很難開展,必須使用工具(如性能測試等)。
測試工具可以執行一些手工難于執行,或者是無法執行的測試。這是因為軟件測試工作相當復雜,要求非常嚴格,很多測試在手工測試環境是無法完成的。
4)測試工具很好地保證測試工作的規范性和一致性。
軟件工程最重要的內容就是管理,軟件測試同樣也是將管理放在第一位。
5)測試工具體現了先進的測試思想、方法和技術。
掌握并熟練地使用軟件測試工具,能夠快速和有效地掌握或鞏固所學的軟件測試的思想、方法和技術;運用軟件測試工具開展軟件測試工作,能夠有效地提升解決軟件測試中遇到的各種問題,增強軟件測試的實戰能力。
事實上,“用工具,促能力”的教學理念非常適合在工程化要求較高的軟件工程核心課程中進行示范,予以推廣。
2 探索軟件測試人才能力培養的新模式
我們在“用工具,促能力”的教學理念指導下,對以軟件測試人才能力培養為目標的教學方法與教學模式進行積極地探索和實踐,確定了軟件測試課程教學的知識體系以及學習和使用軟件測試工具進行軟件測試能力培養的實踐教學體系,制定了軟件測試課程教學大綱和實踐教學課程大綱,從而建立軟件測試課程教學及能力培養的新模式。
我們這里所說的軟件測試人才能力培養新模式主要是指我們在對軟件工程本科學生的軟件測試能力培養過程中,強調“用工具,促能力”的教學理念,以開源軟件測試工具為基礎,結合精選的教學案例,大膽地將測試工具的掌握和測試工具的應用作為實踐教學的重點,強化學生軟件測試專業知識的掌握,促進學生軟件測試實踐能力的培養。這種實踐教學的新模式,通過不斷的探索和實踐,充分得到學生的認可。學生通過軟件測試工具的使用,大大提高了參與實踐的興趣,對軟件測試相關的理論知識有了更深入的理解和掌握,運用工具解決測試項目實際問題的能力得到了加強。
2.1 軟件測試人才能力培養的課程建設
軟件測試人才培養專業性強,人員素質高,這要求我們必須科學地對軟件測試課程體系進行論證,并按照軟件測試人才能力培養新模式的要求制定出教學大綱。目前,學院在軟件測試課程體系的設置上分三個層次:理論課程―軟件測試,實踐課程―軟件測試課程設計,創新學分―軟件協同測試。貫穿這三個層次的主線是軟件測試工具,即通過軟件測試工具在不同軟件測試項目中的使用,強化學生知識的掌握和能力的培養,并按照工具使用流程要求,培養學生專業職業素質。
2.2 基于開源軟件的軟件測試實驗室建設
軟件測試課程對工程實踐要求極高,對學生動手能力要求極強,因此軟件測試實驗室的建設,軟件測試工具的配備除了支撐教學外,還是“用工具,促能力”教學理念的貫徹和通過學習和使用軟件測試工具進行軟件測試人才能力培養新模式的實施最重要的保證。
考慮到軟件測試貫穿軟件工程整個軟件生命周期,涉及各種軟件開發技術、應用技術以及測試技術,覆蓋軟件各種應用領域,需要用到多種測試技術、方法和測試類型。因此要建設能夠讓學生或受訓人員全面參與這些實驗或實踐的軟件測試實驗室,特別是全面配置商用軟件測試工具,這幾乎是不可能的。首先,除一次性投入滿足數十位學生同時上機進行實驗或實踐的要求外,經常性的升級維護費用就會讓條件優越的高校或培訓機構難以承受,更不要說大多數條件不優越的高等院校。另外,如果完全依靠商用軟件測試工具開展軟件測試的實踐教學,除了面太窄、投入太高外,我們很難推廣和普及在這方面取得的實踐教學成果。
為此,我們提出了以主流的開源軟件測試工具為基礎,進行軟件測試實驗室建設的解決方案。該方案覆蓋軟件測試的各個階段和各種類型,保證了國內許多院校在辦學條件不足,實驗教學經費有限,無法全方位引進商用軟件測試工具的情況下,仍然能夠很好地開設軟件測試實踐類課程。
實際上,我們在軟件測試實踐能力培養過程中,一直是要求學生使用開源測試工具。這是因為:
①開源測試工具的使用,特別是測試環境的建立,能夠促使學生接觸各種開源工具,如操作系統、服務器、數據庫、頁面開發語言、繪圖、郵件等,培養他們搭建平臺的綜合能力。
②采用開源測試工具搭建測試環境開展測試工作,更有利于學生學習和理解軟件開發技術和軟件測試原理,提高學習興趣。
③學生通過使用開源測試工具,除了完成課程設計所規定的測試任務外,還能夠清楚地了解這些測試工具對測試技術和測試方法的支持以及這些工具在應用中存在的問題,并可以嘗試自己動手改進這些測試工具。
2.3 軟件測試課程配套的教材建設
為使教學理念真正得到貫徹,能力培養模式真正得到實施,必須解決與之配套的教材問題。為此,我們編寫了《軟件測試大學教程》、《軟件測試實驗指導教程》以及《嵌入式軟件測試實用技術》3本教材。這3本教材不僅是課程的配套教材,而且還是軟件測試課程建設和教學研究及改革等成果的最終表現,也是軟件測試能力培養新模式實施的基石。《軟件測試大學教程》已被北京市教委推薦為“十二五”普通高等教育本科國家級規劃教材(待評審);另外,《軟件測試實驗指導教程》全面介紹了支持各種軟件測試類型的開源軟件測試工具的主要功能、應用流程及實際案例,涉及到測試管理、缺陷管理、代碼分析、單元測試、系統測試、性能測試以及軟件綜合評測等重要實踐內容。該教材配套有近1GB內容的DVD光盤,光盤中存放有覆蓋軟件測試不同階段和不同類型的大量開源軟件測試工具及配套的實踐教學案例,保證了國內許多院校在辦學條件不足,實驗教學經費有限,無法全方位引進商用軟件測試工具的情況下,仍然能夠學習和推廣我們的教學成果;最后,學術專著《嵌入式軟件測試實用技術》對軟件工程應用領域嵌入式軟件的測試活動開展提供了專業支持。
上述教材的出版及使用,能夠使我們的教學理念真正得到貫徹,教學大綱真正得到落實,教學新模式真正得到實施,實踐教學的探索及改革有據可查,有跡可循。
2.4 軟件測試精品課程的建設
精品課程的建設能夠推動優質教育資源的共享、教學理念的宣傳和教學模式的普及與推廣,使學生得到最好的教育,從而全面提高教學質量。
軟件測試課程自2009年評為北京工業大學校級精品課程以來,一直在努力開展精品課程相關內容的建設,積極申報北京市精品課程。通過近幾年的軟件測試精品課程建設,很好地推動了優質教育資源的共享,以及實踐教學理念的宣傳和實踐教學模式的普及與推廣。
軟件測試課程在建設過程中,對教學內容、教學方法進行了如下的改革:
①在整個本科和工程碩士教學計劃和培養方案的基礎上,進行課程體系、教學內容及實驗和實踐環節整體配套和優化的教學改革;
②重視基礎理論,采用案例驅動式教學方式,加強實踐教學環節,注重基本技能訓練與工程能力的培養;
③密切軟件開發技術及測試技術應用最新動態,設計實踐教學案例,增強課程內容的針對性和時效性;
④將軟件測試課程理論教學與軟件測試課程設計、軟件協同測試等實踐教學和創新學分整體考慮,努力達到培養高素質、專業化軟件測試人才的要求;
⑤為使軟件測試課程達到既定目標,開展了配套的教材建設。
總之,精品課程教學內容突出全生命周期軟件測試概念、軟件質量分析手段、現代軟件測試技術、主流測試工具應用以及典型應用測試方法等,幫助學生了解和掌握現代軟件測試的各種原理、方法和技術,并能夠選擇合適的軟件測試工具進行相關測試。這些舉措為培養學生今后成為高素質、專業化的軟件測試人才打下很好的基礎,許多學生畢業后在IT企業能夠很好地從事軟件測試工作。
軟件測試精品課程網站是按照北京市精品課程網站建設要求建設的。網上的內容除了課程概況、課程內容、練習作業、教學課件、參考資料以及全程錄像。由于軟件測試課程包含有實踐性教學,因此本網站包括實踐教學指導等。除此之外,本網站還包括軟件測試課程全面教育教學研究和改革的思路、方案和成果。可以說,本網站內容完整、資源豐富,其成果具有可示范性和可推廣性。
軟件測試課程建設得到北京世紀超星信息技術發展有限責任公司的大力支持,該公司將本課程作為優秀學術成果(超星名師講壇――超星學術視頻)進行了全程的錄像和系統的整理,部分錄像資源可在超星網上觀看或下載,網址是: video.省略/playvideo.aspx?id=31475。另外,超星公司已授權我們可將本課程的完整學術視頻放在學校精品課程網站上,使教師和學生共享其資源。
3 軟件測試人才能力培養模式的實踐
軟件測試課程在不同的院校其設置是不一樣(如理論課或理論課+實驗課,學時、學分等)的,北京工業大學軟件學院在軟件工程專業本科生的教學計劃中將軟件測試課程設為專業必修課,其課程設置包括理論課及實驗課(課程設計)兩部分。理論課32學時,16周完成,每周2學時,最后參加學校考試周的閉卷考試。課程設計是期末小學期2周集中進行,共60學時。
3.1 課程設置情況
軟件測試課程自2005年開設以來,就依據“用工具,促能力”的教學理念開展本文所提到的軟件測試人才能力培養的新模式進行教學,講授了8輪次,學習人數達500多人。
無論是軟件測試理論課實驗、軟件測試課程設計,還是創新學分――軟件協同測試,都是以軟件測試工具為核心,結合精心設計的測試案例,使學生從測試需求、測試環境建立、測試策略、測試技術應用、測試用例設計與執行、測試結果分析,以及缺陷跟蹤管理與測試報告文檔撰寫等方面完成實驗內容和課程設計內容。
3.1.1 軟件測試理論課程的實驗大綱
軟件測試理論課中安排了6個學時的實驗內容,包括三個方面的內容(每部分內容2學時):代碼靜態檢測、Java單元測試Junit、Gtk+界面測試。
3.1.2 軟件測試課程設計大綱
軟件測試課程設計按照《軟件測試實驗指導教程》開設了6大類型的軟件測試項目,每個類型的測試項目要求學生同時使用主流的開源測試工具,體會先進和成熟的軟件測試技術,提高學生的實戰能力。
類型1:以測試過程管理為主,實驗重點是缺陷管理、測試管理以及缺陷管理與測試管理的集成。涉及到的開源工具主要有Mantis、Bugzilla、Testlink、Testopia等。
類型2:以程序的靜態分析為主,實驗內容是程序理解、代碼靜態分析。涉及到的開源工具主要有Oink,Eclipse PTP/ CDT,以及分析Java代碼的多種工具(如Findbugs、PMD、Checkstyle、Valgrind、Prefast等)。
類型3:以單元測試為主,實驗內容是基于支持測試驅動開發(TDD)的單元測試框架xUnit的C/C++功能測試和C/C++及Java的覆蓋測試。涉及到的開源工具主要有CppUnit、EclEmma、Gcov等。
類型4:以圖形界面測試為主,基于單元測試框架對Java GUI進行測試,對網頁進行測試。涉及到的開源工具主要有JFCUnit、HttpUnit、JWebUnit等。
類型5:以性能測試為主,除了繼續在單元測試框架的基礎上對Java應用進行單元性能測試外,重點是對Web應用系統進行整體的性能測試。涉及到的開源工具主要有p-unit、JMeter、WebLoad等。
類型6:以軟件綜合評測為主,對南京大學的EASTT工具進行綜合應用(可輔助使用Panorama++試用版),全面了解軟件評測的思想、方法和要求。
軟件測試課程設計的考核內容包括:建立測試環境,運行測試工具,編寫測試例子,加載被測程序,執行測試用例,分析測試結果,撰寫測試總結報告(報告字數不少于1萬字),最后登臺匯報(PPT演講)。
通過撰寫報告和登臺PPT匯報,培養學生的邏輯思維、歸納總結、論文撰寫、多媒體制作以及登臺演講能力。3.1.3 軟件協同測試創新學分大綱
軟件協同測試創新學分實踐課程主要是由教師布置具體的較大型軟件測試項目,模擬多人異地得測試活動,讓學生體驗軟件測試各個階段進行協同的關鍵要素。包括測試需求分析、測試計劃制定、測試用例設計、測試用例執行、測試結果收集以及測試資源和測試過程管理等各個環節的協同要求,學生通過協同分工完成整個課程任務,并在測試實踐中總結方法,創新性的提出軟件協同測試的解決方案。
3.2 實踐效果
基于“用工具,促能力” 的教學理念下的軟件測試人才能力培養的新模式在內容組織上做到了既能夠調動學生專業興趣,使其感到軟件測試的實用性和挑戰性,又加強了學生軟件測試的實際動手能力。軟件測試課程以主流的開源軟件測試工具應用為基礎,以實戰能力培養為目的,易于教師開展軟件測試的各項實踐教學活動,而且學生對這種形式的實踐教學反映非常好,學生參與實驗的熱情非常高,學生經過實踐后收獲非常大、能力提高非常快,學生為實踐收集或設計的案例非常豐富,部分學生撰寫的實踐總結報告水平也非常高。另外,學生結合分組實踐內容的安排,進行針對性地軟件測試實踐活動,同時也可以方便不同層次的學生根據自己的能力、時間和興趣選擇相關的實踐內容進行自學和實踐,進一步地拓展自己的專業知識和專業技能,為今后的職業生涯規劃打基礎。
企業對我們所取得的成果給予了認可。北京應用軟件產品質量監督檢驗中心與學院簽署了戰略合作協議,確定在軟件測試人才培養(如軟件測試培訓、實訓及實習)、軟件測試科研、軟件協同測試平臺建設以及嵌入式軟件測試等基礎建設方面開展合作。
2009年,北京工業大學軟件學院所獲得的北京市軟件工程實踐教學示范中心其建設內容主要是軟件工程及其相關專業核心課程的實踐教學及其學生的能力培養。按照什么樣的理念和模式開展這些課程的實踐教學,軟件測試課程“用工具,促能力”的教學理念和在該教學理念指導下的軟件測試人才能力培養模式做了一個很好的實踐和回答。
4 結束語
目前計算機學院或軟件學院學生的軟件測試人才培養一直是高等院校計算機人才或軟件人才培養的一個“短板”,一直缺少好的教學理念和教學模式。因此,開展軟件測試人才能力培養的教學理念及培養模式的探索與實踐是一件非常有意義的工作。對于這項工作,有關專家給與了充分的肯定,他們認為:軟件測試人才能力培養的教學理念和新模式強調軟件測試工具使用的重要性,同時重視教學實驗成本和教學的靈活性,所有實驗和實踐活動的內容組織均以開源軟件測試工具為主。通過實際測試項目的開展和工具的使用,能夠使學生掌握軟件測試的基本方法、技術和流程,提高他們的動手能力。而且這種教學理念和培養模式具有示范性和推廣性。
參考文獻
[1] 柳永坡. 讓軟件測試實驗和實訓課程輕松地走進高校或培訓機構――介紹《軟件測試實驗指導教程》[J].計算機教育,2010(13):158.
[2] 柳永坡. 軟件測試大學教程:軟件測試課程專業教材[J].計算機教育,2010(12):158.
[3] 蔡建平. 開源軟件測試實踐教學方案設計[J]. 計算機教育,2011(6):103-108.
[4] 蔡建平. 軟件測試大學教程[M]. 北京:清華大學出版社,2009,09.