李亦飛,王文琴
(常州工學院計算機信息工程學院,江蘇 常州 213002)
“項目開發實訓”教學的探索
李亦飛,王文琴
(常州工學院計算機信息工程學院,江蘇 常州 213002)
“項目開發實訓”課程為軟件工程專業的學生提供一個軟件項目開發的實訓平臺,旨在提高軟件工程專業學生的就業競爭力和解決實際問題的能力,提高團隊合作精神和溝通能力。通過實訓,學生的各項能力得到了鍛煉和提高,并取得了顯著的效果。
項目開發實訓;軟件工程;教學模式
G642
B
近年來,軟件工程專業畢業生在就業過程中經常面臨自身能力無法滿足企業對軟件人才技能要求的問題。由于學校和企業目標、職責不同,難以建立相互信任、互利共享的長久機制。企業缺乏合作的內在動力,學校也難以對企業參與人才培養的過程和行為進行規范和考核,合作關系不穩定、不深入、不牢固、不持久。[1]如何幫助畢業生提高自身能力和就業競爭力,成為高校人才培養的新課題。“項目開發實訓”課程針對軟件工程專業學生,通過軟件工程項目實訓,掌握最新的開發工具及技術,提高學生解決實際問題的能力。
“項目開發實訓”課程是學生在本科最后學習階段的一次綜合實訓,它將已經學習的軟件設計、開發相關課程,如“面向對象程序設計”“數據庫系統概論”“系統分析與建模”“軟件工程”等在項目中進行整合,使學生體會到每門課程在軟件工程中的作用和地位,且可將所學的知識應用到項目開發中。課程引入企業實際項目或實際項目的子模塊,以項目驅動教學,學生是項目的參與者,教師是項目的質量管理者。[2]學生通過親自參與項目,承擔不同的角色,完成相應的任務,切身體會軟件工程開發流程,提高對軟件規范性的認識,師生之間是一種平等、合作、協商的教學關系。教學中,以項目為課程的主導,教師成為學生的指導者和引路人,學生成為學習的主體,積極主動地參與項目管理活動,師生之間形成良好互動的教學氛圍。[3]
1.1項目選擇
在“項目開發實訓”課程中,項目選擇面臨兩個問題。一是自擬項目多為一些在教材中或者網絡上能輕易找到的課題,如圖書館管理系統、學生成績管理系統等,學生很容易通過網絡下載相關資料來完成任務;或者因為項目都為教師在課堂中講授的例子,學生在實訓過程中原樣照搬,不能靈活運用。二是企業項目由于來自實際應用,項目背景復雜,系統龐大,學生掌握有一定的難度,導入比較困難。
針對以上問題,本課程在選擇項目時強調既要保持項目的真實性,又要具備實訓課程的可操作性。在任務選擇時并不要求學生完成一個獨立的項目,而是讓其完成項目中的某個功能模塊。學生為了完成此功能模塊,需要理解自己承擔的模塊在該系統中的地位和作用,了解需要使用其他哪些模塊的服務,以及需要為哪些模塊提供服務。由于課程選擇的項目為軟件企業或者科研單位的實際課題,具有較強的實用性,同時根據課程進行裁剪,使學生在真實感受實際開發氛圍的同時,也能體會到完成任務后的喜悅。[4]
1.2文檔管理和進度控制
在軟件企業中,由于項目管理的需要,項目開發除了完成編碼,還需要完成各種文檔和表格的編寫和填報,如需求分析報告、軟件設計說明書、項目進度管理表格、軟件測試報告、軟件使用說明書等。規范齊全的文檔便于項目管理者了解項目的開發進度、開發質量、資源分配,便于開發人員在編碼時正確地了解需求,規范地完成編碼。在項目開發中,能及時規避風險,及時糾正問題,避免重大錯誤的發生。
里程碑是完成階段性工作的標志,是項目中的重大事件。在實訓期間,為了控制項目進展,設置了需求設計、功能設計、功能預演、測試和交付五個里程碑。學生必須在每個里程碑的時間點,提交相關成果。①需求設計階段提交需求設計說明書;②功能設計階段提供畫面設計、數據庫設計文檔;③功能預演階段提供可演示代碼;④測試階段提供測試文檔和測試總結報告;⑤交付階段提供以上所有代碼和文檔以及產品使用說明書。
由于學生在平時的學習過程中,沒有系統地完成過文檔,對文檔的格式要求也不是很明確,因此文檔編寫的規范性尤為重要。本課程中,教師向學生介紹各種文檔的作用、填寫規范,并提供可參考的樣本,而不要求學生從零開始完成文檔。學生參考教師提供的樣本,填寫模板,最后達到規范化要求。
1.3項目管理
項目管理軟件在軟件開發、團隊管理中是必不可少的工具。在課程中搭建了以下平臺,為學生提供了更真實的模擬開發環境。
1)SVN集中式代碼管理服務器,進行代碼版本管理。學生使用SVN客戶端進行文檔代碼的更新和同步,服務器端保存文件創建修改的歷史記錄,教師可以通過服務器看到學生完成的代碼和文檔的進度,督促學生獨立完成各自的任務。
2)Collabtive 項目管理系統,進行里程碑、任務、文件、時間追蹤管理,實時掌握項目進展動態。學生在項目初期指定任務計劃,日常填報任務進度、上傳文件,實時掌握項目進度。項目組借助管理軟件能方便、有效地完成日常項目管理工作。
3)配置測試和運行服務器。學生在本地調試系統成功后,將系統發布到服務器,進行系統測試和運行。課程中為每個項目組設置了不同的數據庫、應用程序服務權限,項目組定期將數據庫和運行版系統發布到服務器上,教師可以實時查看和運行不同項目組的系統。
在“項目開發實訓”課程中,學生以4~6人為一組,設立項目經理、分析設計、編碼和測試等角色,學生在分組中承擔相應角色,并可以同時參與多個角色,完成軟件開發生命周期中各個階段的產出物。項目開發實訓環節分為以下階段[5]:
2.1課題準備階段
“項目開發實訓”課題由教師事先準備,主要來源于軟件企業和科研項目,課程初期教師向學生介紹項目的背景、完成內容、項目管理工具的使用,同時介紹軟件項目的相關知識以及業內規范。
2.2案例講授階段
萬事開頭難,學生在初期并不能立即適應規范的軟件開發,教學中通過案例介紹,讓學生從模仿開始,進入項目開發的角色。案例講授側重以下內容:①開發各個階段需要完成的文檔,并提供文檔的模板,這些文檔很多是設計文檔,是后續開發的藍本,通過講授使學生了解文檔的重要性,以及文檔之間的關聯性;②開發環境搭建,完成本地調試環境和遠程測試運行環境,并讓學生完成項目開發、發布的過程;③案例代碼的編寫和調試,側重編碼的規范性和常用調試方法教學。
2.3開發實訓階段
項目組根據各自課題完成相關工作。項目組成員各盡其責,完成需求分析、功能設計、數據庫設計、UI設計、編碼、測試和發布過程,并且每天進行工作小結,填寫進度。教師對各項目組進行總體監督,實時掌握各組項目開發進展情況。
2.4評審階段
評審階段安排在項目開發實訓中期,主要進行文檔評審和代碼評審,檢查文檔和代碼的書寫是否規范和正確,及時糾正在開發階段存在的問題,全面掌控項目開發進度。
2.5驗收答辯階段
項目結束時,各項目組對項目進行匯報演示,演示過程中教師提出問題或意見,針對學生的答辯情況和項目完成情況做出評價,并提出意見和建議。
3.1規范性認識
所謂規范是指在項目中對涉及的文檔、代碼和流程制訂規則,并且所有成員必須遵守這些規則。學生通過課程學習,認識到在軟件開發過程中需要遵循各項規范。
1)文檔規范。書寫的文檔要有規范的格式和形式,同一個項目的文檔要有統一性,每份文檔有完整的信息,包括文檔編碼、文檔標題、所屬項目、所屬部門、編制人、編制時間、版本等信息,格式有封面、目錄、頁眉、頁腳。
2)代碼規范。代碼文件結構整齊清晰、文件命名及變量命名規范,編碼中避免已知的一些陋習。
3)流程規范。每天工作有計劃,工作結束后善于總結經驗,發現不足。
3.2學習能力提高
IT行業技術更新快,開發工具更換頻繁。項目開發過程中經常會接觸到新技術、新工具,作為軟件相關專業的學生,必須具備較強的學習能力,才能夠快速學習和掌握這些技術和工具。
在項目開發實訓課程中,要求項目組根據自身課題特點,調查相關新技術、新工具,并在項目中使用新技術、新工具。學生在大學學習過程中,缺少鉆研精神,往往只是為考試而學習。而在實際開發現場,一般無教師輔導,需要有較強的學習能力和自主學習能力。教師在課程中積極引導,讓學生學會通過這些技術和工具提供的幫助文檔和示例,掌握這些技術和工具。
3.3加強團隊合作意識
平時的學習通常是一個人的個體行為,但是軟件工程是一個龐大的工程,需要團隊合作完成。每個成員在團隊中擔當著不同的角色,每個成員在完成自己工作的同時也在使用著他人的工作成果和為他人提供服務。在團隊合作中成員之間相互溝通,協助完成任務。
學生在項目開發實訓中,通過文檔進行項目設計和開發,在同一個工程進行代碼編寫和程序調試,遇到問題通過郵件溝通。通過實訓,學生學習了如何團隊開發項目,深刻認識到團隊合作必須相互配合,聽取建議,及時調整,才能使項目開發工作順利進行。
“項目開發實訓”是一門理論和實踐緊密集合的課程,學生參與軟件項目開發,熟悉規范化開發流程,團隊合作完成項目開發。通過課程學習,學生提高了自身的學習能力、團隊協作能力,提升了就業的自信心,體會到項目開發不是一個單兵作戰的過程,而是一個團隊相互溝通、相互合作的過程,并且這一過程是一個規范化過程,需要完成各種規范化的文檔、編寫規范化的代碼。同時借助于一些工具軟件,提高了整個過程的效率。
[1]胡智喜,莊燕濱.“校企一體化”軟件工程卓越人才培養模式的研究與實踐[J].常州工學院學報,2013(2):77-80.
[2]肖蕾,鐘瑛.軟件開發綜合實訓課程的教學改革與實踐[J].計算機教育,2012(10):104-106.
[3]康雁,李彤.基于SE-CDIO 培養學生項目管理能力的新途徑[J].計算機教育,2013(13):65-68.
[4]張志佳,張雪.基于項目驅動的計算機專業校內實訓模式的研究與實踐[J].中國輕工教育,2012(2):53-55.
[5]朱克敵.項目開發管理課程設計教學方法研究與實踐[J].計算機教育,2010(16):87-88.
責任編輯:唐海燕
ResearchandApplicationofProjectDevelopmentTrainingCourse
LIYifei,WANGWenqin
(School of Computer Information Engineering,Changzhou Institute of Technology,Changzhou 213002)
ProjectDevelopmentTrainingcourse provides a software project development training platform for students who major in software development.It can improve the students′ employment potential and ability to solve problems and skills of teamwork and communication.By the training,students have their abilities fully exercised and improved,and achieved remarkable results.
ProjectDevelopmentTraining;software engineering;teaching modes
2014- 01- 07
常州工學院2013年度教學改革研究課題(J120303)
李亦飛(1978— ),男,講師。
1671- 0436(2014)03- 0074- 04