汪振東 王娜


摘? ?要:課程設計在軟件教學中起著重要的作用。目前,高校的課程設計越來越注重培養(yǎng)學生的團隊協(xié)作能力,所以對其管理與考核也應考慮團隊化。文章基于SVN技術設計一個課程設計教學平臺,以Web為操作界面,利用PHP調用shell指令對SVN進行有效控制。指導教師可利用該平臺對學生進行分組、布置任務、查看源碼、生成考核報表。學生可利用該平臺實現(xiàn)任務分工、提交代碼。
關鍵詞:課程設計;版本控制;軟件教學
作為一門應用性強且注重實踐的學科,軟件工程專業(yè)的課程設計環(huán)節(jié)顯得尤為重要。文章通過長期教學和調研,了解到目前軟件專業(yè)的課程設計存在如下困難。
(1)越來越多的課程設計以項目開發(fā)為基礎,跨度和難度也逐漸增加,因此,需要學生組隊合作方能完成,但若沒有一個有效的管理平臺,則無法進行有效分工,代碼管理不明確。(2)指導教師在批閱文檔和代碼時,不能區(qū)分責任主體,也不能對學生作業(yè)進行有效批改與考核。
鑒于此,文章提出一個基于版本控制(Subversion,SVN)系統(tǒng)的Web教學平臺,指導教師通過Web服務管理任務分發(fā)、查看學生操作日志、查看源代碼進而進行成績考核[1-2]。學生可通過SVN客戶端進行分工、協(xié)作完成任務,如圖1所示。
1? ? 平臺配置
1.1? Web服務
采用CentOS系統(tǒng)、以Apache構建PHP? Web服務器[3-4],并設置讓PHP以root權限調用shell。同時,安裝PHP Excel組件,用于讀取課程設計任務表。
1.2? SVN服務
以SVN為版本控制軟件構建多倉庫平臺,每個倉庫即是一個分組項目,只有該項目組的成員才可以讀寫[3]。同時,為每個倉庫設置一個指導教師賬號以下載最后版本的源碼,方便統(tǒng)計與考核。學生下載相關SVN客戶端軟件即可。
1.3? UI設計
用戶界面(User Interface,UI)采用jQuery和Bootstrap構建。利用jQuery可以輕松編寫簡易的樹形目錄結構,也可以為代碼設置語法高亮。Bootstrap采用響應式布局,能輕松編寫優(yōu)美的UI界面[1]。
2? ? 功能實現(xiàn)
2.1? SVN項目配置
指導教師將課程設計相關信息(學生分組信息、項目信息等)寫入Excel并上傳至Web服務器。服務器調用PHPExcel插件讀取信息,同時,根據(jù)項目信息創(chuàng)建目錄,生成項目倉庫,然后根據(jù)學生分組信息設置該目錄下的用戶讀寫屬性,再啟動SVN服務,如圖2所示。學生使用SVN客戶端訪問任務所在的服務路徑并進行讀寫操作。
2.2? 成績考核
考核學生成績依賴于SVN強大的log與blame功能。使用log功能可以導出某個版本下每位用戶的代碼編寫量;使用blame功能可以導出某個版本下指定文件的每一行的寫入信息。這兩個功能均可產生指定的xml文件。
下載最后版本的項目源文件,執(zhí)行l(wèi)og指令,初步統(tǒng)計每位學生的工作量以及在整個項目中所占的比重,如圖3所示,即可初步對學生成績進行考核。log功能將空白行也納入其中,且算法有難度和深度,因此,log統(tǒng)計的工作量只能作為初步衡量標準。
利用blame功能可以有效地在Web上瀏覽整個項目的源碼,進而達到精準考核的目的。首先利用Web服務器,借助jQuery將整個項目源文件路徑以樹狀形式顯示在Web頁面上,當某一路徑被點擊時,利用Ajax訪問文件源碼,并根據(jù)blame指令產生的該文件的日志,將不同作者編寫的代碼塊標記不同的背景色,如圖4所示。
3? ? 結語
文章在分析軟件專業(yè)課程設計教學的需求上,提出基于SVN構建以項目管理為單元的課程設計平臺。其核心點在于構建Web和SVN兩大服務模塊,通過PHP強大的調用Shell能力,使得兩個服務模塊互通。該平臺的建立,有利于解決當前課程設計上存在代碼混亂、成績考核難等問題,在很大程度上彌補了現(xiàn)有的課程設計教學的不足,為提高軟件工程專業(yè)教學質量提供參考。
[參考文獻]
[1]周偉,左右飛.基于Bootstrap的校園招聘網站的設計與實現(xiàn)[J].信息技術,2019(5):37-40.
[2]羅英.基于HTML5的在線學習平臺應用研究[J].信息通信,2019(12):267-268.
[3]肖恒.基于SVN的Web文檔版本管理系統(tǒng)的研究與實現(xiàn)[D].武漢:武漢輕工大學,2019.
[4]祁春霞.基于PHP的Web網站開發(fā)教學改革與實踐[J].科技風,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