任維 李偉 袁海娣
摘要:目前傳統(tǒng)的軟件類課程基本都是采用項目教學(xué)法,教師提出項目需求,學(xué)生分組完成項目,該模式下學(xué)生團隊之間的協(xié)同工作很難開展,本文提出一種基于GitHub平臺的軟件類課程教學(xué)方法,可以有效地提高高校軟件設(shè)計類課程的教學(xué)效果,并很好地解決了分組教學(xué)中的團隊協(xié)作問題。
關(guān)鍵詞:GitHub;協(xié)同工作;教學(xué)方法
中圖分類號:TP311? ? ? ? 文獻標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2019)02-0081-02
1 引言
目前高校軟件設(shè)計類課程基本都采用分組+項目教學(xué)的方法,引入實際的項目案例來推動教學(xué)過程,然而分組教學(xué)中組員內(nèi)部的分工協(xié)作一直困擾很多教師,根據(jù)以往的經(jīng)驗基本都是由一個同學(xué)完成整個小組的任務(wù),教師很難了解小組內(nèi)部的分工情況,最終只能通過項目本身來驗證小組的工作情況[1]。其次就是溝通問題如何解決,教師如何與學(xué)生溝通,學(xué)生之間如何溝通,這個問題不解決分組協(xié)同工作也不能做好,所以說目前傳統(tǒng)的教學(xué)方法還是存在一定的問題,如何解決分組內(nèi)部成員之間的協(xié)同工作,甚至是分組之間的相互溝通,就擺在的很多高校教師的面前,本文結(jié)合企業(yè)開發(fā)流程,提出一種基于GitHub平臺的軟件類課程教學(xué)方法,能夠很好地解決上面提出的問題。通過幾個學(xué)期的實際教學(xué),發(fā)現(xiàn)該教學(xué)方法能夠很好地解決分組+項目教學(xué)方法中的協(xié)同工作問題。
2 GitHub簡介
Git是目前非常流行的分布式版本控制系統(tǒng),基于Linux內(nèi)核設(shè)計和開發(fā)。與傳統(tǒng)的版本控制系統(tǒng)如VSS,CVS,SVN等相比較,Git采用分布式的管理方式,不依賴于集中式服務(wù)器,具有更好的靈活性,同時Git支持代碼合并與跟蹤,對于大型項目來說管理和維護代碼更加方便,目前很多企業(yè)和個人都在使用Git進行源代碼管理[2]。
GitHub是基于Git系統(tǒng)的項目托管平臺,由于主要基于Git技術(shù)所以取名GitHub。2008年GitHub正式投入使用,除了基本的項目托管、源代碼管理外還提供在線編輯、項目訂閱、項目討論、代碼分享、數(shù)據(jù)報表等功能。國內(nèi)外很多企業(yè)和個人都將項目托管在GitHub上,其中包括了很多知名項目如jQuery、Python等[3]。
3 基于GitHub平臺的教學(xué)方法
通過上面介紹可以了解到GitHub平臺的基本功能,也可以看出GitHub平臺能夠有效地解決多人協(xié)作開發(fā)的問題,但是如何與實際教學(xué)相結(jié)合還是需要根據(jù)學(xué)生的實際情況來制定教學(xué)方案。結(jié)合引言中的介紹,引入GitHub平臺重點是需要解決三個問題,一解決分組成員之間的溝通問題,二解決協(xié)作開發(fā)的問題,三解決項目開發(fā)進度控制的問題。下面我們就這三個問題具體分析一下。
3.1如何解決成員溝通問題
傳統(tǒng)方式下小組成員一般都是通過QQ來進行溝通,而QQ僅僅是一款聊天軟件,根本無法滿足專業(yè)軟件開發(fā)過程中的溝通要求,GitHub平臺作為一款專門面向軟件開發(fā)企業(yè)和個人的平臺,不僅僅適應(yīng)基本的開發(fā)要求,還是一款社交溝通平臺[4]。目前軟件設(shè)計類課程基本都采用項目教學(xué),教師首先提出項目需求,學(xué)生開展分組討論,開發(fā)過程中學(xué)生也需要相互交流。GitHub平臺提供Issues功能,教師和學(xué)生可以非常方便地在Issues實現(xiàn)溝通和交流,同時教師也可以了解學(xué)生交流的情況,教師在學(xué)生項目開發(fā)過程中的控制和管理更加的方便,測評也有了合理的依據(jù)。教師通過Issues功能向每個項目小組分發(fā)項目需求,學(xué)生通過Issues討論項目需求中的問題,教師再通過Issues了解學(xué)生討論情況,實時反饋給學(xué)生相關(guān)需求。既充分調(diào)動了學(xué)生學(xué)習(xí)的積極性、也方便教師在整個教學(xué)過程中的管理。GitHub平臺中Issues功能如圖1所示:
3.2如何解決協(xié)同開發(fā)問題
協(xié)同開發(fā)是GitHub平臺的基本功能,傳統(tǒng)方式下協(xié)同開發(fā)基本都是代碼的拷貝,很多學(xué)生相互之間拷貝代碼,等到提交項目時才發(fā)現(xiàn)很多代碼都是舊的,或者根本搞不清哪個版本的代碼是最新的。GitHub提供一套完善的協(xié)同開發(fā)流程,當(dāng)然教師也需要根據(jù)具體的情況來制定合適的流程,如下圖所示:
首先教師在GitHub上創(chuàng)建實驗項目,本項目作為整個小組的主代碼庫,保存小組最新代碼,同時也是最終提交給教師的代碼。為確保主代碼庫的正確性,主代碼庫由教師和小組組長負責(zé)維護,同時也可以將項目相關(guān)文檔傳送到主代碼庫,方便小組成員之間共享資料,如下圖所示:
其次小組成員通過Fork方式獲取主代碼庫信息,并建立本地代碼庫,小組成員維護個人的本地代碼庫,當(dāng)某個小組成員完成本人任務(wù)后,通過合并方式將本地代碼庫中的代碼合并到主代碼庫,當(dāng)然教師或小組組長負責(zé)審核合并代碼是否符合要求[5]。
最后組長將組員所有代碼合并到主代碼庫,開展功能測試和集成測試,并對產(chǎn)生的BUG進行修改,最終按照需求內(nèi)容將主代碼庫中的代碼提交給教師。教師可以通過需求核對學(xué)生完成的情況,并作為最后評價的指標(biāo)[6]。
3.3如何解決進度控制問題
進度控制不僅僅是教學(xué)過程中存在的問題,也是企業(yè)開發(fā)面臨的一個重要問題。傳統(tǒng)方式下,教師需要定時與學(xué)生溝通,雖然也能解決一些問題,但是對于學(xué)生進度無法達到實時控制的目的。如何才能確保學(xué)生按時按量完成任務(wù),需要依賴GitHub代碼審查與質(zhì)量管理功能,教師即使不見面也可以通過代碼審查了解到學(xué)生開發(fā)中進度情況,并根據(jù)學(xué)生進度情況即使提醒學(xué)生,并對有疑問的學(xué)生即使進行回復(fù),提高學(xué)生項目開發(fā)的進度。
4 基于GitHub平臺的教學(xué)評價
由于之前很多的工作已經(jīng)在GitHub上完成,教學(xué)評價也變得非常容易,大量的數(shù)據(jù)作為支持,教師可以非常方便地完成教學(xué)評價。當(dāng)然不同的高校具體的評價標(biāo)準(zhǔn)可以不同,可以通過學(xué)生代碼提交量、討論情況、BUG修改、代碼質(zhì)量等確定評價分值。同時,教師也可以通過GitHub提供的圖表功能,直觀地了解到學(xué)生的具體情況以及存在的問題。
5 結(jié)束語
基于GitHub平臺高校軟件類課程教學(xué)方法不僅可以滿足教師對學(xué)生管理的需求,也鞥能讓學(xué)生進一步了解企業(yè)軟件開發(fā)流程,為學(xué)生更好地適應(yīng)企業(yè)開發(fā)提供平臺。通過幾個學(xué)期的教學(xué),也可以看出該教學(xué)方法適合高校軟件開發(fā)類課程,具有一定的教學(xué)意義。
參考文獻
[1] 曾少寧,李慧,袁秀蓮.基于GitHub平臺的問題驅(qū)動式編程實驗教學(xué)方法[J].計算機教育,2017(09):158-163.
[2] 曾少寧. 基于GitHub平臺的協(xié)同式實驗教學(xué)方法[J]. 計算機教育, 2016(12): 144-148.
[3] 楊紅.基于GitHub的開發(fā)人員提交評論情感分析[J].現(xiàn)代計算機(專業(yè)版),2018(08):39-43.
[4] 柯其壽. 基于改進DEA模型的GitHub開發(fā)者效率評估[D].武漢工程大學(xué),2017.
[5] 字鳳芹. 基于Git的協(xié)作小組學(xué)習(xí)資源庫的建設(shè)與研究[D].云南大學(xué),2016.
[6] 張智,鄭卉,蔣依伶,袁歡歡,等.使用Github實現(xiàn)高效的團隊協(xié)作開發(fā)[J].電腦知識與技術(shù),2015,11(07):206-208.