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