1. 程式人生 > >軟件工程網絡15結對編程作業(201521123062)

軟件工程網絡15結對編程作業(201521123062)

同學 oid button 開發流程 測試報告 mat des number 評分

0、結對編程成員:

吳劍通博客地址:https://www.cnblogs.com/wjt960310/
楊鈞宇博客地址:http://www.cnblogs.com/GOB8023/
碼雲地址:https://gitee.com/jmu201521123056/four_operations
源代碼:https://coding.net/u/Belong033/p/java-third/git
原題目要求
http://www.cnblogs.com/happyzm/p/6472120.html
http://www.cnblogs.com/happyzm/p/6509116.html
http://www.cnblogs.com/happyzm/p/6558307.html
1.改進現有代碼

瀏覽所有代碼考慮代碼質量和測試覆蓋率
技術分享圖片

技術分享圖片

技術分享圖片

2、博客要求:
提交的博客(兩個同學都要寫)必須完整包含下面內容:

  • 需求分析:
    1)計時器:顯示用戶完成全部答題的所用時間。
    2)計算正確個數:顯示用戶所答對題目的個數
    3)式子個數:用戶總共答題個數
    4) 語言選擇功能:更換顯示的語言。
    程序設計:技術分享圖片

  • 代碼展示:
    1)、計時器:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
over=System.currentTimeMillis();
now1=((over-now) / (1000 * 60 * 60) % 60)+":"+((over-now)/ (1000 * 60)% 60)+":"+((over-now)/ 1000 % 60);
String a=now1+"";
jTextField7.setText(a);
// TODO add your handling code here:
}

2)、語言選擇

 private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("arithmetic"); 
 jLabel2.setText("Please input number :");
 jButton1.setText("Start");
 jLabel3.setText("The topic purpose :");
 jButton2.setText("answer");
 jLabel5.setText("Your answer:");
 jLabel10.setText("correct answer:");
 jButton4.setText("Next question");
 jLabel9.setText("The time used for:");
 jLabel7.setText("Wrongc number :   ");
 jLabel6.setText("All number :      ");
 jLabel8.setText("correct :         ");
 jButton3.setText("End of the answer");// TODO add your handling code here:
}                                          
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
    // TODO add your handling code here:
}                                      
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("四則運算"); 
 jLabel2.setText("請輸入題數:");
 jButton1.setText("開始做題");
 jLabel3.setText("題 目:");
 jButton2.setText("查看答案");
 jLabel5.setText("你的答案:     ");
 jLabel10.setText("正確答案:");
 jButton4.setText("下一題");
 jLabel9.setText("所用時間為:");
 jLabel7.setText("錯  題  數:");
 jLabel6.setText("答  題  數:");
 jLabel8.setText("正  確  率:");
 jButton3.setText("結束答題");
 // TODO add your handling code here:
}                                          
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("四則運算"); 
 jLabel2.setText("請輸入題數:");
 jButton1.setText("開始做題");
 jLabel3.setText("題      目:");
 jButton2.setText("查看答案");
 jLabel5.setText(" 你的答案是:");
 jLabel10.setText("正確答案是:");
 jButton4.setText("下一題");
 jLabel9.setText("所用時間為 :");
 jLabel7.setText("錯  題  數:");
 jLabel6.setText("答  題  數:");
 jLabel8.setText("正  確  率:");
 jButton3.setText("結束答題");

程序運行:程序運行及每個功能的使用截圖。
技術分享圖片

PSP2.1 個人開發流程 預估耗費時間(分鐘) 實際耗費時間(分鐘)
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
· 測試報告 3 2
· 計算工作量 2 1
· 並提出過程改進計劃 3 3
代碼要求
要求必須增量式開發-提交到碼雲地址,碼雲上要能看到多次commit的記錄,同時必須有兩個人各自的commit記錄。

評分基準
按時交 - 有分(詳細評分準則見下表)
晚交 - 0分
遲交兩周以上 - 倒扣本次作業分數
抄襲 - 倒扣本次作業分數
如對分數有意見,只給一次向助教申訴的機會
評分項 評分細則 分數 備註
現有代碼改進部分 clone 所選項目,並在博客中給出結對項目碼雲鏈接 1
檢查所選項目的類之間的關系,博客中給出類圖 1 在博客中給出
找出原項目中的邏輯泥球 1 需要解釋為何這部分是邏輯泥球
給出原項目中測試用例覆蓋不到位的地方,然後補充相應的測試用例 1 如果覆蓋都到位請指出測試用例所測的功能或邏輯
保證所選項目支持多操作符的運算 2 如果原項目沒有的話需要自行添加此功能
完整給出該項目的測試用例 1 重點給出添加功能的測試用例,如多運算符的運算實例
功能改進與拓展 需求分析 1 針對現有代碼的改進分析,新開發功能的分析
設計分析 1 博客中給出針對新功能的思維導圖
支持括號優先級運算 2
程序生成的算式不重復 4
給出回歸測試的用例 1 原項目測試用例+新功能測試用例都保證能過
給出效能分析工具的分析結果 2 博客上給出截圖
找出關鍵模塊消耗最大的函數,是否存在改進 2 根據分析結果給出消耗最大的函數,並給出改進建議,各1分
附加題 支持乘方運算 3
其他要求 博客開頭給出兩人的學號 0.5
展示每個功能的核心代碼 1 給出代碼截圖
程序運行及每個功能的使用截圖 1
結對編程兩個人的感受和體會 2
非擺拍的兩人在討論、細化和編程時的結對照片 1
完成PSP表格 2
碼雲上的代碼遷入記錄中有兩個人的遷入記錄 1
碼雲上的代碼遷入記錄中有多次遷入的記錄 1
碼雲上有兩個人的編碼規範文檔 1 需要以文檔的形式上傳到碼雲上
說明
上述表格中的所有的評分項都要在博客或者是碼雲上有體現

PSP2.1 個人開發流程 預估耗費時間(分鐘) 實際耗費時間(分鐘)
Planning 計劃 10 6
· Estimate 明確需求和其他相關因素,估計每個階段的時間成本 8 6
Development 開發 120 180
· Analysis 需求分析 (包括學習新技術) 15 20
· Design Spec 生成設計文檔 15 10
· Design Review 設計復審 5 8
· Coding Standard 代碼規範 10 15
· Design 具體設計 15 10
· Coding 具體編碼 40 60
· Code Review 代碼復審 10 8
· Test 測試(自我測試,修改代碼,提交修改) 20 30
Reporting 報告 15 30
· 測試報告 5 5
· 計算工作量 6 5
· 並提出過程改進計劃 10 2

小結感受:

結對編程主要是要兩人分別體會並理解領航員和駕駛員兩種角色對於項目來說的意義,所謂1+1>2就是要看在編程過程中我們兩個人合作的效率大於一個人,兩個人有不同的想法,通過協商和改變,從而達成達成題目的要求。

軟件工程網絡15結對編程作業(201521123062)