版本號:V1.0git
1、項目背景
「構建之法」於2007年在清華大學首次實踐,隨後通過在北航、東北師範大學、福州大學、集美大學等三十餘所學校的不斷迭代與改進,現已造成了一套成熟的軟件工程課程教學體系,覆蓋了軟件工程和編程語言的教學。該教學體系有下面的特色:
· 練習量大, 內容多:除了大量的代碼練習,還有大量的博客寫做練習。
· 理論和實踐相結合:講現代理論,同時結合體現理論的工具,例如:要求全部代碼使用Git和Github進行管理。
· 真實的團隊開發:要求使用原型設計工具設計項目,使用團隊開發工具管理任務分配,使用燃盡圖進行進度管控等等包羅萬象。
· 學生助教熟悉課程,可以協助老師,與學生充分互動。github
在基於「構建之法」思想的軟工課程教學中,在團隊項目階段,主要採用博客和Github方式發佈團隊做業並對源代碼進行管理。教師和助教須要對項目團隊管理質量進行度量並給予學生及時反饋和有效指導。當前這些工做都是人工進行,效率較低,步驟和流程較爲繁瑣,缺少必要的數據統計與彙總。所以須要一款軟件系統支持這項工做的開展。
項目名稱:團隊項目度量反饋平臺
面向用戶:高校軟工教學團隊與學習軟工的學生
項目開發者:北航軟工暑期培訓班團隊項目1組
2、用戶需求分析
一、待解決的問題
(1)源代碼管理質量評估與反饋效率須要提升
當前教師和助教對源代碼管理質量評價的方法是獲取學生代碼倉庫後,對代碼倉庫中的commit,源代碼的風格一致性,簽入描述的完備性進行人工審查,並根據審查結果評分。人工審查效率較低,須要手動下載代碼倉庫,分析commit,運行源代碼風格檢查工具。
教師和助教須要經過觀察分析以及簡單計算後才能得到項目隨着時間推移的代碼提交狀況,而隨着時間推移的代碼提交狀況能夠由程序對代碼倉庫進行分析後自動得到。
教師和助教須要經過對代碼倉庫中不一樣成員的貢獻狀況對全部成員的實際代碼修改量進行統計後才能得到全部成員的實際代碼修改量,這項工做能夠由程序自動分析完成,並用可視化方式展現。
反饋效率低且不及時:反饋給學生的方式採用的是課堂上公佈、博客公佈或者將結果經過郵件的形式發送給學生,這些反饋方式都較爲繁瑣,也沒法對每一次反饋進行管理,作到可追溯。
(2)項目進度管理質量評估與反饋效率須要提升
當前學生的每日例會彙報經常淪爲形式主義,彙報中沒有實際內容且不具有實際價值,助教和教師但願能夠經過代碼倉庫中的ISSUE ID,代碼提交ID,博客地址等信息自動生成團隊每日例會報告。
二、解決方案
針對上述存在的問題,咱們將從教師和學生兩個角度來進行方案的設計。
對於教師和助教的角色而言,平臺提供的主要功能以下:
(1)項目列表及概覽
提供整個教學班級的全部參與的項目清單;
提供每一個Project的概覽信息,包括:代碼行數、複雜度、代碼重複率、註釋率。
而針對每個項目,則能夠詳細從源代碼管理質量與項目進度管理質量兩個方面進行詳細查看。編程
(2)源代碼管理質量評估與反饋
其主要目標是要對質量進行評分,評分項以下:
簽入功能的獨立性(確保每次簽入一個功能,一次簽入包含多個功能的方式不利於代碼的回滾、總體打包) 分值(20分)
簽入風格一致性(從代碼規範檢查的角度,確保簽入時風格與上次一致)分值(20分)
簽入代碼是否能夠成功編譯運行(確保每次簽入的代碼通過初步的測試)分值(20分)
簽入描述完備性分值(20分)
代碼實際修改量分值(20分)
除了對評分項進行展現外,還能夠看到每一項本身提交代碼對應存在的問題。架構
(3)項目進度管理質量評估與反饋
其主要目標是要對每一個項目團隊的進度進行管理,項目進度管理相關的統計結果自動化產生,其數據來源來自學生在軟件開發過程當中提交的代碼和相關文檔。具體包括:
每日例會報告產生
項目管理質量評價
對於學生的角色而言,除了能夠看到教師角色能夠看到的全部功能以外,額外增長的功能以下:
(1)查看教師反饋
(2)提供課程相關資料的專欄與查看功能
三、競品分析
(1)教育軟件市場同類競爭產品概況編程語言
a. Sonar-代碼質量管理平臺
產品展現連接: https://blog.csdn.net/caozhangyingfei0109/article/details/43938383 工具
圖片: https://images-cdn.shimo.im/VieoTIJSPW02dQyR/圖片.png單元測試
Sonar是一款與本項目代碼質量管理核心需求有部分疊加的開源軟產品,是目前最強大的代碼質量管理工具之一。根據產品簡介,Sonar提供如下七個方面代碼評測功能:
文件、類、方法等,若是複雜度太高將難以改變,這會使得開發人員難以理解,且若是沒有自動化的單元測試,對於程序中的任何組件的改變都將可能致使須要全面的迴歸測試
圖片: https://images-cdn.shimo.im/uJReq0qrrRQYhi4G/image.blob
程序中包含大量複製粘貼的代碼是質量低下的,Sonar可檢測源碼中重複嚴重的地方:
圖片: https://images-cdn.shimo.im/9g9Lh7F0MAAC0GPV/image.blob
展現單元測試覆蓋率
圖片: https://images-cdn.shimo.im/rXw0wAydH1Q23Kty/image.blob
經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫
註釋不足或過多的檢測
經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢測出潛在的bug
圖片: https://images-cdn.shimo.im/dXNXGvWFtdI60Lat/image.blob
找出循環,展現包與包、類與類之間的相互依賴關係,檢測自定義的架構規則;管理第三方的jar包,能夠利用LCOM4檢測單個任務規則的應用狀況;檢測耦合。學習
b. 其餘源代碼管理工具
Visual Source Safe(VSS)、Concurrent Version System(CVS)、Subversion(SVN)、GitHub、ClearCase等平臺也提供相應代碼管理功能。開發工具
c. 學生做業管理系統
較爲知名的系統有Moodle、BlackBoard。這些系統有較爲完善的做業採集和評分管理功能,可是不能採集以博客方式發佈的做業,也不能有效存儲軟件源代碼,並不適用於軟件工程做業管理。
以上與項目中代碼質量管理相關的同類產品,多用於支持軟件企業項目管理須要,因爲產品缺乏檢測結果的反饋建議,並不徹底適用於軟工教學團隊代碼管理須要。其次,就目前的調研狀況來看,做業發佈採用博客方式的教學改革尚在探索中,目前尚無支持博客做業採集與做業質量分析的管理系統。
綜上所述,就國內應用市場競品來說,本項目同類應用較少,市場競爭壓力較小,具備研發和市場應用價值。
四、項目優點與收益
本項目的核心功能:
(1)面向教師用戶:
可以根據學生用戶輸入的Issue ID,任務內容描述,代碼簽入ID,博客地址等內容,自動生成團隊項目的每日例會報告,幫助教師實現對項目進度管理的度量,從而指導干預和反饋;
可以自動分析學生源代碼項目,並對項目的源代碼管理質量做出評分;同時可視化展現不一樣時間節點提交代碼量的多少,並展現出每一個同窗的實際修改量;使教師能夠掌握學生的源代碼管理質量,並提出具體意見,而且要具體,有效指導學生源代碼管理技能提高。
(2)面向學生用戶:
可以可視化展現我的所屬團隊不一樣時間節點提交代碼量的多少,並展現出我的的實際修改量,使學生了解工做進度;
給出我的所屬團隊源代碼管理質量和項目進度管理的評分與教師反饋,有效獲取管理方法的指導。測試
在「互聯網+」爲基礎的信息技術證改變甚至顛覆教學方式和理念,在此背景下,基於構建之法的軟件工程實踐教學體系以github源代碼管理平臺、博客園等互聯網平臺工具做爲教學工具,倡導「作中學」,促使學生在實踐中真正得到軟件工程能力的提高,在國內軟件工程教學領域產生了巨大的反響。目前該教學體系在其關鍵的項目質量評價與項目進度管理方面主要採用助教助完成,存在教學工做量巨大、做業反饋不及時的問題。本項目主要針對此問題開發與設計該教學管理平臺, 如該平臺可以推廣應用,將可以使採用該教學體系的教師和學生受益,而且直接爲國家培養可以開發與團隊協做複雜軟件系統的軟件工程專業人才。 3、交付方案 一、在構建之法論壇與交流羣向採用「構建之法」開展教學的軟工教學團隊分享演示。 二、向其餘未採用構建之法進行軟工教學的高校進行推廣構建之法的同時推廣此軟件。 三、創建產品官網,介紹產品基本功能,並提供產品試用連接。 四、參加計算機教育相關學術會議,分享產品在教學實踐中的使用。 4、參考文獻 一、現代軟件工程講義:如何提出靠譜的項目建議(NABCD) 二、第二屆構建之法論壇——新一代編程+軟工+AI 三、【軟劍攻城隊】用戶需求文檔發佈 四、Sonar——代碼質量管理平臺