Deadline:2018-4-4 10:00,以博客發表日期爲準html
評分標準:git
- 未提交項目源碼到Github上,代碼部分不得分;未提交博客到班級博客上,博客部分不得分;github
- 根據項目完成質量累計加分,完成基本功能原則上不超過滿分15分,完成軟件的附加功能,給予加分;編程
- 代碼提交(代碼規範,不然倒扣分);小程序
- 這次做業爲結對項目,單幹戶不得分;app
- 結對編程兩位同窗代碼部分分數一致,博客部分分別評分。編程語言
- 博文規範(行文清晰流暢,若是行文中涉及代碼,請使用博客園自帶的代碼控件,或使用MarkDown的語法塊)ide
一、實驗目的與要求工具
(1)練習結對編程(Pair programming),體驗軟件項目開發中的兩人合做。學習
(2)掌握Github上增量發佈軟件的操做方法。
題目來源參考:
http://www.cnblogs.com/happyzm/p/6509116.html(集美大學)
http://www.cnblogs.com/xinz/p/7417960.html(鄒欣老師)
http://www.cnblogs.com/vertextao/p/6896953.html(張棟老師)
二、實驗環境要求
編程語言使用Java
開發工具:Elipse或Myelipse
三、實驗相關知識
關於結對編程(閱讀教材第4章內容):
如下圖片是一個結對編程場景:兩位學習夥伴坐在一塊兒,面對着同一臺顯示器,使用着同一鍵盤,同一個鼠標,他們一塊兒思考問題,一塊兒分析問題,一塊兒編寫程序。
同窗們是否嘗試過結對編程的軟件開發模式:本次實驗就讓咱們來體驗一下結對編程的魅力。
關於結對編程的闡述可參見如下連接:
http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html
http://en.wikipedia.org/wiki/Pair_programming
關於工具:
在軟件開發中,要善於學習和使用工具來輔助軟件設計。本次實驗請開始嘗試使用類圖設計程序中模塊之間的關係。關於類圖,參見:http://blog.csdn.net/xx326664162/article/details/50475352
類圖的經常使用繪製工具備:Visio 、Rational Rose、PowerDesign,建議同窗們採用輕量級的Visio。
四、實驗內容和步驟採用
任務1:
在《實驗二 軟件工程我的項目》中,同窗們實現了一個命令行四則運算出題小程序,本次實驗採用結對編程方式,設計開發一個小學生四則運算練習軟件,使之具備如下功能:
(1)由計算機從題庫文件中隨機選擇20道加減乘除混合算式,用戶輸入算式答案,程序檢查答案是否正確,每道題正確計5分,錯誤不計分,20道題測試結束後給出測試總分;
(2)題庫文件可採用實驗二的方式自動生成,也能夠手工編輯生成,文本格式以下:
(3)程序爲用戶提供三種進階四則運算練習功能選擇:百之內整數算式(必作)、帶括號算式、真分數算式練習;
(4)程序容許用戶進行多輪測試,提供用戶多輪測試分數柱狀圖,示例以下:
(5)程序記錄用戶答題結果,當程序退出再啓動的時候,可爲用戶顯示最後一次測試的結果,並詢問用戶能否進行新一輪的測試;
(6)測試有計時功能,測試時動態顯示用戶開始答題後的消耗時間。
(7)程序人機交互界面是GUI界面(WEB頁面、APP頁面均可),界面支持中文簡體(必作)/中文繁體/英語,用戶能夠進行語種選擇。
任務一結對編程實施要求:
對於結對編程進度計劃的要求:在程序正式開發以前,請先預估本次結對編程任務的PSP環節的消耗時間,並在PSP過程當中統計實際耗時,填寫PSP表格。
對於結對編程中代碼設計規範的要求參見:http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
編撰任務一結對編程時兩我的遵照共同承認的編碼規範,並提交到github項目倉庫中。
對於結對編程兩我的溝通的技巧:
嘗試採用製做漢堡包法實施項目結對中兩我的的溝通。
關於漢堡包法的闡述參見:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
理解領航員和駕駛員兩種角色關係:兩人都必須參與程序的編碼工做,在結對編程中兩我的輪流作對方的角色。要在github代碼提交日誌上體現兩人合做過程。
任務2:
Github如何託管項目?
參考文章:http://www.cnblogs.com/edisonchou/p/5990875.html
學習視頻:https://www.bilibili.com/video/av10475153/
任務3:完成結對項目報告博文做業
博文名稱要求:學號1/學號2《小學四則運算練習軟件》結對項目報告;
博文中要有任務1源碼在Github的倉庫主頁連接地址;
博文(兩個同窗都要寫)做爲結對項目實施過程的文字資料,請完整包含下面8個部分:
a. 需求分析:
b. 軟件設計:使用類圖。
c. 核心功能代碼展現:展現核心功能代碼。
d. 程序運行:程序運行時每一個功能界面截圖。
e.描述結對的過程,提供兩人在討論、細化和編程時的結對照片(非擺拍)。
f.提供這次結對做業的PSP。
PSP2.1 |
任務內容 |
計劃共完成須要的時間(min) |
實際完成須要的時間(min) |
Planning |
計劃 |
8 |
6 |
· Estimate |
· 估計這個任務須要多少時間,並規劃大體工做步驟 |
8 |
6 |
Development |
開發 |
82 |
88 |
·· Analysis |
需求分析 (包括學習新技術) |
6 |
10 |
· Design Spec |
· 生成設計文檔 |
5 |
6 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
4 |
6 |
· Coding Standard |
代碼規範 (爲目前的開發制定合適的規範) |
3 |
3 |
· Design |
具體設計 |
10 |
12 |
· Coding |
具體編碼 |
36 |
21 |
· Code Review |
· 代碼複審 |
7 |
9 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
13 |
21 |
Reporting |
報告 |
9 |
6 |
·· Test Report |
· 測試報告 |
3 |
2 |
· Size Measurement |
計算工做量 |
2 |
1 |
· Postmortem & Process Improvement Plan |
· 過後總結 ,並提出過程改進計劃 |
3 |
3 |
g. 請使用漢堡評價法給你的小夥伴一些點評。漢堡評價法:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
h. 結對編程真的可以帶來1+1>2的效果嗎?經過此次結對編程,請談談你的感覺和體會。