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