汪振東 王娜
摘? ?要:課程設(shè)計(jì)在軟件教學(xué)中起著重要的作用。目前,高校的課程設(shè)計(jì)越來(lái)越注重培養(yǎng)學(xué)生的團(tuán)隊(duì)協(xié)作能力,所以對(duì)其管理與考核也應(yīng)考慮團(tuán)隊(duì)化。文章基于SVN技術(shù)設(shè)計(jì)一個(gè)課程設(shè)計(jì)教學(xué)平臺(tái),以Web為操作界面,利用PHP調(diào)用shell指令對(duì)SVN進(jìn)行有效控制。指導(dǎo)教師可利用該平臺(tái)對(duì)學(xué)生進(jìn)行分組、布置任務(wù)、查看源碼、生成考核報(bào)表。學(xué)生可利用該平臺(tái)實(shí)現(xiàn)任務(wù)分工、提交代碼。
關(guān)鍵詞:課程設(shè)計(jì);版本控制;軟件教學(xué)
作為一門(mén)應(yīng)用性強(qiáng)且注重實(shí)踐的學(xué)科,軟件工程專(zhuān)業(yè)的課程設(shè)計(jì)環(huán)節(jié)顯得尤為重要。文章通過(guò)長(zhǎng)期教學(xué)和調(diào)研,了解到目前軟件專(zhuān)業(yè)的課程設(shè)計(jì)存在如下困難。
(1)越來(lái)越多的課程設(shè)計(jì)以項(xiàng)目開(kāi)發(fā)為基礎(chǔ),跨度和難度也逐漸增加,因此,需要學(xué)生組隊(duì)合作方能完成,但若沒(méi)有一個(gè)有效的管理平臺(tái),則無(wú)法進(jìn)行有效分工,代碼管理不明確。(2)指導(dǎo)教師在批閱文檔和代碼時(shí),不能區(qū)分責(zé)任主體,也不能對(duì)學(xué)生作業(yè)進(jìn)行有效批改與考核。
鑒于此,文章提出一個(gè)基于版本控制(Subversion,SVN)系統(tǒng)的Web教學(xué)平臺(tái),指導(dǎo)教師通過(guò)Web服務(wù)管理任務(wù)分發(fā)、查看學(xué)生操作日志、查看源代碼進(jìn)而進(jìn)行成績(jī)考核[1-2]。學(xué)生可通過(guò)SVN客戶端進(jìn)行分工、協(xié)作完成任務(wù),如圖1所示。
1? ? 平臺(tái)配置
1.1? Web服務(wù)
采用CentOS系統(tǒng)、以Apache構(gòu)建PHP? Web服務(wù)器[3-4],并設(shè)置讓PHP以root權(quán)限調(diào)用shell。同時(shí),安裝PHP Excel組件,用于讀取課程設(shè)計(jì)任務(wù)表。
1.2? SVN服務(wù)
以SVN為版本控制軟件構(gòu)建多倉(cāng)庫(kù)平臺(tái),每個(gè)倉(cāng)庫(kù)即是一個(gè)分組項(xiàng)目,只有該項(xiàng)目組的成員才可以讀寫(xiě)[3]。同時(shí),為每個(gè)倉(cāng)庫(kù)設(shè)置一個(gè)指導(dǎo)教師賬號(hào)以下載最后版本的源碼,方便統(tǒng)計(jì)與考核。學(xué)生下載相關(guān)SVN客戶端軟件即可。
1.3? UI設(shè)計(jì)
用戶界面(User Interface,UI)采用jQuery和Bootstrap構(gòu)建。利用jQuery可以輕松編寫(xiě)簡(jiǎn)易的樹(shù)形目錄結(jié)構(gòu),也可以為代碼設(shè)置語(yǔ)法高亮。Bootstrap采用響應(yīng)式布局,能輕松編寫(xiě)優(yōu)美的UI界面[1]。
2? ? 功能實(shí)現(xiàn)
2.1? SVN項(xiàng)目配置
指導(dǎo)教師將課程設(shè)計(jì)相關(guān)信息(學(xué)生分組信息、項(xiàng)目信息等)寫(xiě)入Excel并上傳至Web服務(wù)器。服務(wù)器調(diào)用PHPExcel插件讀取信息,同時(shí),根據(jù)項(xiàng)目信息創(chuàng)建目錄,生成項(xiàng)目倉(cāng)庫(kù),然后根據(jù)學(xué)生分組信息設(shè)置該目錄下的用戶讀寫(xiě)屬性,再啟動(dòng)SVN服務(wù),如圖2所示。學(xué)生使用SVN客戶端訪問(wèn)任務(wù)所在的服務(wù)路徑并進(jìn)行讀寫(xiě)操作。
2.2? 成績(jī)考核
考核學(xué)生成績(jī)依賴(lài)于SVN強(qiáng)大的log與blame功能。使用log功能可以導(dǎo)出某個(gè)版本下每位用戶的代碼編寫(xiě)量;使用blame功能可以導(dǎo)出某個(gè)版本下指定文件的每一行的寫(xiě)入信息。這兩個(gè)功能均可產(chǎn)生指定的xml文件。
下載最后版本的項(xiàng)目源文件,執(zhí)行l(wèi)og指令,初步統(tǒng)計(jì)每位學(xué)生的工作量以及在整個(gè)項(xiàng)目中所占的比重,如圖3所示,即可初步對(duì)學(xué)生成績(jī)進(jìn)行考核。log功能將空白行也納入其中,且算法有難度和深度,因此,log統(tǒng)計(jì)的工作量只能作為初步衡量標(biāo)準(zhǔn)。
利用blame功能可以有效地在Web上瀏覽整個(gè)項(xiàng)目的源碼,進(jìn)而達(dá)到精準(zhǔn)考核的目的。首先利用Web服務(wù)器,借助jQuery將整個(gè)項(xiàng)目源文件路徑以樹(shù)狀形式顯示在Web頁(yè)面上,當(dāng)某一路徑被點(diǎn)擊時(shí),利用Ajax訪問(wèn)文件源碼,并根據(jù)blame指令產(chǎn)生的該文件的日志,將不同作者編寫(xiě)的代碼塊標(biāo)記不同的背景色,如圖4所示。
3? ? 結(jié)語(yǔ)
文章在分析軟件專(zhuān)業(yè)課程設(shè)計(jì)教學(xué)的需求上,提出基于SVN構(gòu)建以項(xiàng)目管理為單元的課程設(shè)計(jì)平臺(tái)。其核心點(diǎn)在于構(gòu)建Web和SVN兩大服務(wù)模塊,通過(guò)PHP強(qiáng)大的調(diào)用Shell能力,使得兩個(gè)服務(wù)模塊互通。該平臺(tái)的建立,有利于解決當(dāng)前課程設(shè)計(jì)上存在代碼混亂、成績(jī)考核難等問(wèn)題,在很大程度上彌補(bǔ)了現(xiàn)有的課程設(shè)計(jì)教學(xué)的不足,為提高軟件工程專(zhuān)業(yè)教學(xué)質(zhì)量提供參考。
[參考文獻(xiàn)]
[1]周偉,左右飛.基于Bootstrap的校園招聘網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2019(5):37-40.
[2]羅英.基于HTML5的在線學(xué)習(xí)平臺(tái)應(yīng)用研究[J].信息通信,2019(12):267-268.
[3]肖恒.基于SVN的Web文檔版本管理系統(tǒng)的研究與實(shí)現(xiàn)[D].武漢:武漢輕工大學(xué),2019.
[4]祁春霞.基于PHP的Web網(wǎng)站開(kāi)發(fā)教學(xué)改革與實(shí)踐[J].科技風(fēng),2020(4):57.
Research on curriculum design of software engineering platform based on SVN
Wang Zhendong, Wang Na
(School of Mathematics and Computer Science, Yuzhang Normal University, Nanchang 330103, China)
Abstract:Curriculum design is very important in software teaching. At present, the curriculum design of colleges and universities pays more and more attention to the cultivation of teamwork skills of students, so the management and assessment should also consider teamwork. This article designs a course design teaching platform based on SVN technology, takes Web as the operation interface, and uses PHP to call shell instructions to effectively control SVN. Instructors can use the platform to group students, arrange tasks, view source code, and generate assessment reports. Students can use this platform to achieve task division and submit code.
Key words:curriculum design; Subversion; software teaching