[摘 要]項目型教學(xué)模式實現(xiàn)了課堂教學(xué)與項目實踐的相結(jié)合,教師的知識教授與學(xué)生的實際運用相同步。學(xué)生進(jìn)入項目角色,在項目的驅(qū)動下,通過項目所需知識點與教學(xué)內(nèi)容的結(jié)合,能把被動接收知識變?yōu)橹鲃犹角笾R,把學(xué)習(xí)之后不知何用,變?yōu)閷崿F(xiàn)項目任務(wù)而學(xué)習(xí)。在項目型教學(xué)模式中,項目的選題十分重要,需要教師透徹掌握課程,并對實際進(jìn)行全方位的分析,然后總結(jié)多年開發(fā)項目的實踐經(jīng)驗與多年教學(xué)授課經(jīng)驗的基礎(chǔ)上確定項目的題目。
[關(guān)鍵詞]軟件工程 項目 教學(xué) 實施 考核
一、引言
《軟件工程》是一門指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的課程。設(shè)置課程的目的就是要求學(xué)生通過系統(tǒng)地學(xué)習(xí)軟件開發(fā)的過程、工具、方法,掌握軟件開發(fā)的技術(shù),能用工程的觀點來認(rèn)識軟件工程的建設(shè);掌握項目系統(tǒng)的開發(fā)方法;掌握項目系統(tǒng)開發(fā)的各個步驟及技術(shù),按計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)撰寫文檔,使其將所學(xué)的理論知識快速地應(yīng)用于項目開發(fā)實踐,從而具備從事計算機(jī)系統(tǒng)開發(fā)和維護(hù)的初步能力。課程內(nèi)容抽象,總結(jié)性的內(nèi)容多,條條框框較多,不太容易講解,學(xué)生學(xué)習(xí)起來也感到內(nèi)容空洞、枯燥乏味、難學(xué)。針對這種普遍現(xiàn)象,其主要原因:
課程的綜合性強(qiáng)。軟件開發(fā)是一項系統(tǒng)工程,需要開發(fā)者具有操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)和前臺開發(fā)工具等諸多方面知識和綜合能力。而學(xué)生學(xué)習(xí)的只是單一的課本知識,知識面窄而且沒有系統(tǒng)化。
實踐經(jīng)驗的缺乏。本課程是實用工程學(xué)科,課本內(nèi)容采用將知識點從具體到抽象、對實踐經(jīng)驗進(jìn)行概括總結(jié)的方法加以敘述,學(xué)生對實例并不了解,難以理解所講述的知識,另一方面沒有適合學(xué)生觀摩和借鑒的實用軟件系統(tǒng)。
要想將該課程講得通俗,讓學(xué)生易于接受又能達(dá)到相應(yīng)的教學(xué)效果,必須對該課程進(jìn)行改革,采用項目型教學(xué),突出實踐環(huán)節(jié)。項目型教學(xué)模式借鑒了實踐型教學(xué)模式的教學(xué)實踐相同步的方式,同時吸收了實際軟件工程項目的組織方式,力圖在教學(xué)中同步培養(yǎng)學(xué)生對知識的自學(xué)能力和實際運用能力,培養(yǎng)學(xué)生開發(fā)計算機(jī)應(yīng)用系統(tǒng)的獨立解決問題的工作能力、自己動手的實際操作能力及團(tuán)隊團(tuán)結(jié)協(xié)作精神和提高整體的綜合素質(zhì)[1]。
二、項目型教學(xué)模式的理論教學(xué)過程
(一)建立合理的課程內(nèi)容體系
建立合理的課程內(nèi)容體系首先應(yīng)合理地選擇教材,我們選用的教材為清華大學(xué)出版社出版的張海藩編著《軟件工程導(dǎo)論(第四版)》。該教材內(nèi)容的特點是:①理論性,教材比較全面地介紹了軟件工程中的基本原理、概念和方法;②實踐性,課程的內(nèi)容體系強(qiáng)調(diào)基本原理、方法在實踐中的具體應(yīng)用;③先進(jìn)性,教材較為詳細(xì)地介紹了軟件工程中的新技術(shù)、新方法。同時,我們選用的輔助教材為清華大學(xué)出版的鄭人杰編著《實用軟件工程(第二版)》。
其次,應(yīng)根據(jù)學(xué)生的培養(yǎng)方向、學(xué)時數(shù)等因素對所講授的內(nèi)容作必要地取舍。我們以傳統(tǒng)的生命周期方法學(xué)和面向?qū)ο蠓椒▽W(xué)為主線,建立了課程內(nèi)容體系, 參考國內(nèi)外先進(jìn)的軟件工程理論和應(yīng)用實例,對教學(xué)內(nèi)容進(jìn)行了必要的補(bǔ)充和刪減;以培養(yǎng)學(xué)生的軟件項目開發(fā)過程中的技能為目標(biāo),制作了內(nèi)容豐富、聯(lián)系項目開發(fā)實際的多媒體教學(xué)課件;建立了較為完善的軟件工程典型項目案例庫,為每一個案例提供詳細(xì)的分析說明;編寫了供實踐環(huán)節(jié)使用的《軟件工程項目實踐指導(dǎo)書》[2]。
(二)開展以學(xué)生為主體的案例式教學(xué)
在教學(xué)過程中,開展以學(xué)生為主體的案例式教學(xué),克服了傳統(tǒng)的“教師教、學(xué)生學(xué)”的模式。在課程的開始,即將學(xué)生分為若干個項目小組,并為每個小組確定一個負(fù)責(zé)人,各個項目小組選定一個互不相同的項目,并明確所選項目的總體要求及考核標(biāo)準(zhǔn)。教師以一個完整的已在企業(yè)中運行的項目案例貫穿于整個理論教學(xué)過程中,學(xué)生則帶著自己項目中的問題去理解、思考教師所講授的內(nèi)容。學(xué)生的作業(yè)主要體現(xiàn)為三個時期八個階段的項目的各階段性的分析和設(shè)計文檔,項目小組的成員在討論、協(xié)作的基礎(chǔ)上,每次均以小組的形式提交作業(yè)。
(三)建立《軟件工程》課程教學(xué)資源平臺
該課程的教學(xué)輔助資料圍繞《軟件工程》網(wǎng)絡(luò)課程建設(shè)而展開,所建設(shè)的網(wǎng)絡(luò)課程主要內(nèi)容包括:教學(xué)大綱,教學(xué)內(nèi)容,電子教案,課程習(xí)題,模擬試題,多媒體課件,實驗部分,課程評價反饋等。建立網(wǎng)絡(luò)課程平臺的目的是為了便于學(xué)生進(jìn)行網(wǎng)上自學(xué)、討論交流、作業(yè)提交、在線測試、教學(xué)效果評價等功能,充分發(fā)揮學(xué)生在學(xué)習(xí)過程中的主體作用。
三、項目型教學(xué)模式的組織
(一)項目的選題
軟件工程項目的選題,應(yīng)當(dāng)遵循以下原則:
1.應(yīng)該與學(xué)生專業(yè)背景和學(xué)校特色相結(jié)合。
2.應(yīng)該具有一定的實際意義和價值,并與學(xué)生所接觸到的社會實踐相適應(yīng)。
3.具有一定的規(guī)模,學(xué)生在課程學(xué)習(xí)的規(guī)定時間內(nèi),通過努力能夠完成。
4.應(yīng)該反映當(dāng)前IT業(yè)對計算機(jī)技能的需求趨勢和主流市場需求。
5.應(yīng)該具有一定的完備性,有利于學(xué)生運用所學(xué)的軟件工程知識和方法。
任課教師合力建立自己在軟件企業(yè)已開發(fā)完成的項目的題庫,并逐年更新。在課題的內(nèi)容和形式上盡量多樣化,內(nèi)容盡量覆蓋課程的主要知識點。也可準(zhǔn)備一些不同難度級別的題目。另外,應(yīng)該充分注意、明確項目的規(guī)模、目標(biāo)和范圍,以確定項目的工作量和人員的崗位[3]。
(二)項目的人員組織
項目規(guī)模要適中,一般5至7人為宜,最少不能少于3人,最多不要超過8人。每個項目設(shè)一名項目組長。
教師在課程的開始階段就應(yīng)該確定好選題,一般在第一次課上布置,在學(xué)生自愿組合、班委會討論確定和教師指導(dǎo)相結(jié)合的原則下確定每個項目的人員組織和崗位。人員的組織應(yīng)該與項目規(guī)模相適應(yīng),做到每個人在項目中都有明確的崗位和任務(wù),在可行性分析報告中以甘特圖的形式表示出來,并且要求每個人都有比較飽和的工作量。
四、項目與教學(xué)的同步
(一)教學(xué)計劃與項目計劃相協(xié)調(diào)
教學(xué)計劃的主體是教師;而項目計劃則是學(xué)生通過項目學(xué)習(xí)和運用課程知識的計劃安排,它的主體是學(xué)生。教學(xué)計劃重在教,項目計劃重在學(xué),教與學(xué)要相互協(xié)調(diào)。在指導(dǎo)學(xué)生制訂項目計劃的時候,要與該課程的教學(xué)計劃步調(diào)一致。教師在制訂教學(xué)計劃的同時,要充分考慮項目的運作特點,使得課堂教學(xué)能與項目所需銜接。
教師在課程的第一次課時應(yīng)重點完成7項工作:
1.以開發(fā)項目的實際范例向?qū)W生講述軟件開發(fā)管理信息系統(tǒng)的演變過程:分別介紹單機(jī)MIS系統(tǒng)、多用戶MIS系統(tǒng)、網(wǎng)絡(luò)型MIS系統(tǒng)、客戶/服務(wù)器(client/server)MIS系統(tǒng)、瀏覽器/服務(wù)器(browser/serve r)MIS系統(tǒng)、局域網(wǎng)與廣域網(wǎng)MIS系統(tǒng),使學(xué)生初步認(rèn)識開發(fā)項目從單機(jī)的開發(fā)到多用戶及在網(wǎng)上應(yīng)用的全過程。
2.向?qū)W生講解教學(xué)計劃,讓學(xué)生了解該課程的主要內(nèi)容以及時間安排、項目實施分階段的內(nèi)容以及時間安排。
3.讓學(xué)生在項目題庫中選題,并詳細(xì)講解項目運作方式和規(guī)則,以及考核方式。
4.講解每個項目的目標(biāo)、范圍以及相關(guān)要求,讓學(xué)生大致了解項目要做什么,并提供項目任務(wù)書電子文檔。
5.學(xué)生可自定義項目,但其項目的要求同與給學(xué)生提供的項目題庫中項目選題的規(guī)則。
6.聲明項目人員的組織方式和原則,強(qiáng)調(diào)學(xué)生自愿,班委會討論同意,老師可以根據(jù)具體情況進(jìn)行指導(dǎo)調(diào)配。
7.講解如何編寫項目計劃,結(jié)合教學(xué)計劃進(jìn)行案例講解;要求學(xué)生在第二個教學(xué)周內(nèi)完成項目計劃的撰寫。
(二)教學(xué)與項目的工作相結(jié)合
該課程的教學(xué)效果不理想,其中一個很重要的因素是教師教學(xué)和學(xué)生實踐相脫離。項目型的教學(xué)模式就是要把這兩者緊密地結(jié)合起來。教學(xué)和項目工作從四個方面相結(jié)合:
(1)教學(xué)內(nèi)容要結(jié)合項目所需進(jìn)行講解,讓學(xué)生從完成項目任務(wù)的角度上主動去學(xué)。
(2)教師課堂的提問要與項目中的問題相配套。這樣有兩個好處:一是可以引導(dǎo)學(xué)生把課堂所學(xué)到的知識運用到項目工作中;二是可以幫助學(xué)生解決項目中遇到的難題。
(3)課后的作業(yè)應(yīng)該與項目的工作產(chǎn)品相配套。項目的過程中需要產(chǎn)生若干工作產(chǎn)品,這些工作產(chǎn)品應(yīng)作為學(xué)生的課后作業(yè)定期提交。這不但可以考查學(xué)生對教學(xué)內(nèi)容的掌握程度,也可以了解目前項目的進(jìn)展情況。例如《可行性分析報告》、《需求分析說明書》、《總體設(shè)計報告》與《詳細(xì)設(shè)計報告》等都作為課后作業(yè)定期提交。
(4)教學(xué)的主要階段與項目里程碑相一致。按軟件工程三個時期八個階段分別設(shè)立里程碑[4]。在項目的里程碑處,項目組的人員應(yīng)該向教師進(jìn)行項目工作的匯報,并提交相應(yīng)的文檔。教師可以統(tǒng)一安排所有項目里程碑的評審會。評審會可以分為三個議程:首先是對項目的工作產(chǎn)品進(jìn)行講解,學(xué)生結(jié)合幻燈片講解項目的進(jìn)展、技術(shù)路線、完成的工作產(chǎn)品以及項目組每個成員工作任務(wù)的完成情況;然后進(jìn)行項目工作產(chǎn)品的演示;最后進(jìn)行評審答辯和討論,教師和其他項目組的學(xué)生都可以針對評審的項目進(jìn)行提問,項目組的所有人員都可以進(jìn)行解答。這種答辯是一種較好的相互交流和學(xué)習(xí)方法。
五、制定符合項目型教學(xué)模式的課程考核體系
(一)課程考核的組成
課程考核由三部分組成:理論考核占50%,項目考核占40%,平時考核占10%。
(二)項目考核的對象[5]
1.項目文檔。項目文檔分為產(chǎn)品文檔、管理文檔、過程文檔和技術(shù)資料四種:
產(chǎn)品文檔是在項目開發(fā)過程中各種特定階段的工作產(chǎn)品的文檔,主要包括可行性研究報告、需求分析說明書、概要設(shè)計和詳細(xì)設(shè)計、測試方案和測試用例、系統(tǒng)安裝文檔、用戶操作手冊與項目總結(jié)報告等。
管理文檔是在項目開發(fā)過程中配合項目管理而產(chǎn)生的文檔,例如項目計劃書、項目工作報告、項目組制定的相關(guān)的規(guī)章和規(guī)范等。
過程文檔主要是指在項目開發(fā)過程中產(chǎn)生的文檔。例如項目文檔、變更文檔、會議紀(jì)要以及度量文檔等。
技術(shù)資料包括項目中用到的技術(shù)規(guī)范、參考文獻(xiàn)以及項目的培訓(xùn)資料等。
對項目文檔的要求是文檔齊全、規(guī)范、充實并且與項目過程和工作產(chǎn)品相一致。
2.項目產(chǎn)品。項目產(chǎn)品,作為項目的工作成果,主要是項目開發(fā)出來的軟件系統(tǒng)。對項目的工作產(chǎn)品的收集包括工作產(chǎn)品的開發(fā)環(huán)境和工具、源代碼、可運行系統(tǒng)、還包括所用到的中間件和第三方組件產(chǎn)品以及用到的圖片、文檔和多媒體資源等。對項目工作產(chǎn)品的考核不但包括產(chǎn)品的實現(xiàn)功能和效果,還包括技術(shù)的運用程度、設(shè)計和實現(xiàn)方法,以及技術(shù)和方法的創(chuàng)新。
3.項目過程。項目的過程包括項目的計劃安排、人員組織、任務(wù)分配、進(jìn)度跟蹤、檢查和評審等項目中的一系列活動。教師課堂的提問、項目的匯報和交流以及項目的檢查評審來掌握和考核項目過程的情況,并通過項目度量表對項目過程進(jìn)行量化,利用量化的項目過程數(shù)據(jù)作為考核的指標(biāo)[6]。
(三)教學(xué)考核與項目驗收相結(jié)合
有一些軟件工程的課程考核仍采用傳統(tǒng)考試方式,這其實就是一種應(yīng)試教育方式,如果我們的教師仍舊采用這種應(yīng)試教育方式,就難以期望素質(zhì)教育能夠真正得以實施。項目型教學(xué)模式就是要改變這種應(yīng)試教育的考核方式,把教學(xué)考核與項目結(jié)合起來,重點考查學(xué)生在項目中所擔(dān)任任務(wù)的完成情況、工作量與工作質(zhì)量。為此,課程結(jié)束后,需要對學(xué)生所做項目進(jìn)行驗收。項目驗收主要從以下方面進(jìn)行:
1.項目的產(chǎn)品的驗收。要從產(chǎn)品實現(xiàn)的功能、完成質(zhì)量等方面進(jìn)行驗收。這是考查整個項目團(tuán)隊的工作成績。
2.項目的技術(shù)驗收。主要對項目中所采用的技術(shù)以及技術(shù)的應(yīng)用情況進(jìn)行考評,確定學(xué)生對所學(xué)知識的掌握程度和運用能力。這是團(tuán)隊和個人的考查。
3.項目的度量驗收。項目的度量包括項目的工作量、文檔量、代碼量討論交流次數(shù)、項目的社會調(diào)研和實踐時間等方面的數(shù)據(jù)。項目度量的數(shù)據(jù)用來對項目組成員的工作進(jìn)行考查。
為了保證項目真實可靠,項目組之間錯開驗收,首先,由組長綜合介紹項目的概況,實現(xiàn)過程,重點介紹目標(biāo)系統(tǒng)的特點及目前運行狀況,然后,組內(nèi)成員按照系統(tǒng)運行流程所需的各種數(shù)據(jù)的先后順序,人人上講臺演示自己所擔(dān)任的崗位所實現(xiàn)的功能,按需求分析說明書上規(guī)定的功能逐項驗證,其中包括容錯能力及出錯處理等重要環(huán)節(jié)。項目組成員可對別的項目組的產(chǎn)品、文檔和項目過程的度量進(jìn)行檢查和測試,找出其中的缺陷和不相符、不一致的地方和可以進(jìn)行改進(jìn)和提高之處。對別的項目的驗收結(jié)果也是一項考核依據(jù)。
(四)最終成績評定
通過項目對象的考核、項目的驗收來獲得項目的各種考核數(shù)據(jù),加上項目過程中的考查數(shù)據(jù),再配合課程考試成績,按照一定權(quán)值和比例可以計算出一個學(xué)生的課程成績。
1.項目成績的評定包括小組成績和個人成績兩部分,各占50%。小組成績?yōu)樾〗M中所有成員的第一次考核成績,個人成績?yōu)樾〗M成員的第二次考核成績。
2.小組成績由各個小組階段成績的平均值與完成的項目的最終驗收的情況(包括系統(tǒng)是否達(dá)到需求規(guī)格說明中的功能性、非功能性要求,文檔是否全面、合理、規(guī)范等)組成。小組的階段性成績由教師和該項目組之外的其他項目組共同評定。
3.個人成績由教師根據(jù)小組每個成員的答辯成績來評定,答辯的內(nèi)容為小組成員在項目開發(fā)中所完成的任務(wù),其中,評定項目負(fù)責(zé)人個人成績時,還應(yīng)考查其項目開發(fā)的組織、管理能力。
考核結(jié)果表明,我們采用的考核方法提高了學(xué)生按照軟件工程的原理、方法、技術(shù)、標(biāo)準(zhǔn)和規(guī)范進(jìn)行軟件開發(fā)的綜合能力和軟件項目的管理能力,特別在基礎(chǔ)技能、團(tuán)隊協(xié)作、人際交流、項目規(guī)劃幾個方面明顯具備較強(qiáng)的能力。
六、結(jié)束語
《軟件工程》課程的項目型教學(xué)模式改革主要體現(xiàn)在以下三個方面:在理論教學(xué)方面,以學(xué)生為主體的教學(xué)模式,表現(xiàn)為以分組形式的案例教學(xué)過程;在項目組織方面,通過小組內(nèi)成員分工協(xié)作的方式,完成小組所選定的項目;在課程考核方面,制定了符合教學(xué)特點的課程考核體系。在整個教學(xué)過程中,學(xué)生始終處于主導(dǎo)地位,是學(xué)習(xí)的主體,教師處于指導(dǎo)和評價學(xué)生階段性學(xué)習(xí)效果的地位。
通過該門課程的理論教學(xué)改革,學(xué)生普遍反映能夠較好地理解、掌握軟件工程項目的開發(fā)理論和方法,和單純的理論教學(xué)相比,改革后的教學(xué)方式更容易讓人接受,學(xué)習(xí)的主動性得到了提高。從學(xué)生反饋的結(jié)果來看,通過對該門課程的教學(xué)模式進(jìn)行改革,使學(xué)生經(jīng)歷了軟件開發(fā)的全過程,鍛煉和培養(yǎng)了學(xué)生的系統(tǒng) 分析能力、設(shè)計能力、編程能力、測試和維護(hù)能力、團(tuán)隊協(xié)作能力和文檔書寫能力,全面地提高了學(xué)生的綜合素質(zhì)。
軟件工程項目型教學(xué)模式已在我校計算機(jī)科學(xué)與技術(shù)專業(yè)教學(xué)中進(jìn)行了全面實施,涉及的學(xué)生總數(shù)達(dá)700余人,通過近幾年的努力,學(xué)生的綜合素質(zhì)明顯增強(qiáng),就業(yè)情況普遍較好。企業(yè)認(rèn)為,我校所采取的項目型實踐培養(yǎng)機(jī)制適合業(yè)界的需求,培養(yǎng)的學(xué)生在基礎(chǔ)技能、團(tuán)隊協(xié)作、資料收集、人際交流、項目規(guī)劃等幾個方面明顯具備較強(qiáng)的能力,更加適合在現(xiàn)代軟件企業(yè)中發(fā)展。學(xué)生認(rèn)為,學(xué)了四年的課程,是軟件工程課程將我們所學(xué)的基礎(chǔ)知識與專業(yè)課程有機(jī)地結(jié)合起來,教會了我們?nèi)绾卧O(shè)計、開發(fā)一個項目系統(tǒng),使之能夠很快地適應(yīng)新的教學(xué)體系和項目型教學(xué)模型的教學(xué)內(nèi)容,通過項目型實踐教學(xué),自己的理論應(yīng)用能力有很大提高,所學(xué)知識在企業(yè)實習(xí)及實際工作中能夠真正找到用武之地,在就業(yè)等方面具備更強(qiáng)的競爭力。
參考文獻(xiàn)
[1]王竹云,軟件工程與課程實踐,計算機(jī)時代,2006,12
[2]王竹云,軟件工程項目實驗指導(dǎo)書,浙江財經(jīng)學(xué)院,2003,09
[3]陽王東,祝青,鄧艷智,《軟件工程》項目型教學(xué)模式的探索,計算機(jī)時代,2008,04
[4]張海藩,軟件工程導(dǎo)論,清華大學(xué)出版社,2005,08
[5]計算機(jī)軟件工程規(guī)范國家標(biāo)準(zhǔn)匯編2000, 標(biāo)準(zhǔn)出版社,2002,03
[6]鄭人杰,實用軟件工程,清華大學(xué)出版社,2004,11