結對編程

1.改進現有代碼

姓名:郭雅芳 學號:201521123013 博客地址
姓名:李香榮 學號:201521123012 博客地址
參考博客2:http://www.cnblogs.com/belong033 源代碼:https://coding.net/u/Belong033/p/java-third/githtml

  • 重構
    • clone項目,在開發環境中運行該應用程序,修改完畢最後上傳至碼雲,並在博客中給出連接
      碼雲地址java

    • 檢查大部分主要類之間的關係,畫出類圖

      git

    • 瀏覽全部代碼考慮代碼質量和測試覆蓋率
      編程

    • 肯定當前設計的一個弱點,經過重構,確保在這個地方已有測試覆蓋並保證重構沒有改變已有的功能 ◦好的測試是重構的根本。檢查已有代碼的測試,看測試用例是否足夠覆蓋原代碼,若是不足,請添加測試用例
      測試用例裏只有整型之間以及分數之間的測試,沒有整型和分數的測試
      app

    • 下降代碼重複量,找出代碼邏輯泥球
      對分數和整型的四則運算代碼有不少是同樣的
      模塊化

    • 修改代碼後,檢查代碼覆蓋,看單元測試是否須要修改?測試用例是否須要增長?
      post

2.功能改進與擴展

增長一個運算符,程序應該有怎樣的改變?不得不扔掉所有重寫麼,仍是能夠只改部分模塊?基於模塊化設計的思想,考慮在現有程序中作什麼樣的修改,才能讓程序更好地實現新的需求單元測試

  • 增長括號操做符
  • 減小重複題目 ◦程序一次運行生成的題目不能重複,即任何兩道題目不能經過有限次交換+和×左右的算術表達式變換爲同一道題目。例如,23 + 45 = 和45 + 23 = 是重複的題目,6 × 8 = 和8 × 6 = 也是重複的題目。3+(2+1)和1+2+3這兩個題目是重複的,因爲+是左結合的,1+2+3等價於(1+2)+3,也就是3+(1+2),也就是3+(2+1)。可是1+2+3和3+2+1是不重複的兩道題,由於1+2+3等價於(1+2)+3,而3+2+1等價於(3+2)+1,它們之間不能經過有限次交換變成同一個題目。

    對於優先級的處理(僞代碼)
private static String  infixToPostfix(String exp){
                  //定義優先級規則priority
                     priority.put("*", 2);
                    priority.put("/", 2);
                    priority.put("+", 1);
                    priority.put("-", 1);
                    priority.put("", -1); 

                     ...
                                     
               if (isNum(num_op)) { // 是數字則輸出  
                     
                } else if (")".equals(num_op)) { // 右括號則將左括號以前的內容全彈出  
                        
                       while (!"(".equals(tmp)) {  
                           tmp = stack.pop();  
                        }  
                   } else if ("(".equals(num_op) || priority.get(num_op) >= priority.get(getTopOperator())) {  
                        
                    } else { // 優先級小於棧頂運算符,則彈出  
                                     
                          }   
             }  
                // 彈出剩餘運算符
               while (stack.size() > 0) {  
                    postfix.append(stack.pop()).append(" ");  
                }    
                return suffix.toString();  
}

程序截圖




碼雲提交記錄


結對照片

小結感覺:結對編程真的可以帶來1+1>2的效果嗎?經過此次結對編程,請談談你的感覺和體會。

對於此次實驗的感覺,簡直是糟心。沒有體會到1+1>2的感受,兩人編程水平都不高,編程過程當中思路很雜亂,致使浪費太多時間。沒有合理的安排時間,以及分配好每一個人的工做。測試

PSP2.1 我的開發流程 估計耗時 實際耗時
Planning 計劃 15 20
· Estimate 明確需求和其餘相關因素,估計每一個階段的時間成本 5 5
Development 開發 240 320
· Analysis 需求分析 25 50
· Design Spec 生成設計文檔 15 13
· Design Review 設計複審 20 45
· Coding Standard 代碼規範 10 10
· Design 具體設計 50 55
· Coding 具體編碼 80 100
· Coding Reivew 代碼複審 20 20
· Test 測試(自我測試、修改代碼、提交修改) 15 25
Reporting 報告 20 20
· 測試報告 5 4
· 計算工做量 5 7
· 並提出過程改進計劃 8 10
相關文章
相關標籤/搜索