(201421123002 翁珊;201421123006 黃月梅;201421123007 徐曉珊)
題目要求:
- 結對程式設計實作上述功能,同樣的,在程式正式開發之前,請先預估下PSP每個環節的消耗時間(分鐘),并在過程中統計實際耗時(分鐘),最後送出PSP表格。依然注意,這個主要是給你們自己看的,不必造假資料。
- 繼續兩人結對協作,把編碼規範、領航員和駕駛員角色互換做到位。
- 單元測試: 有單元測試保證,有代碼覆寫率。
需求分析:
1.把計算子產品提取出來,單獨建立一個類。
計算子產品單獨成類Calc:
package happy;
public class Calc{
static int getGCD(int i, int j) //求最大公約數
{
int temp;
while (i % j != 0) {
temp = i % j;
i = j;
j = temp;
}
return j;
}
static String Reduction(int i, int j)
{
String k;
if (j == 1) {
k = i + "";
} else {
k = (i) + "" + "/" + (j) + "";
}
return k;
}
static boolean compare(String a, String b) //比較輸入值與答案
{
if (a.equals(b))
{System.out.println("回答正确");
return true;}
else
{
System.out.println("回答錯誤,正确答案是" + b);
return false;
}
}
}
2.針對提取出來的計算類的接口函數做單元測試。
單元測試代碼如下:
package happy;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class CalcTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testGetGCD() {
assertEquals(Calc.getGCD(10, 5), 5);
}
@Test
public void testReduction() {
assertEquals(Calc.Reduction(9, 5), "9/5");
}
@Test
public void testMain() {
}
}
單元測試結果:

代碼覆寫率:
描述測試過程中遇到的問題以及解決的方案:
測試中的除零錯誤,由于我們一開始在程式設計的時候就設定了出書的值不為零,是以不會出現不能除的情況。對于兩個運算符的情況也是,在程式設計的一開始就設定隻能生成一個運算符,是以不會出現類似a++的情況。
小結與感受:通過測試,是否有效發現了程式計算子產品的問題,并給予改進?
因為子產品是根據助教發的寫的,是以将自己原先的程式給拆解開來,并删除了一些沒有必要的類,例如:GUI。再進行的單元測試。在拆解的過程中使得程式出現了很大的改變,程式在測試的時候出現了很多的問題。但是實在是由于我們組的程式設計能力有限,時間也是很有限,使得很多問題沒有的到有效的解決,希望自己的程式設計能力能夠有所提高。至少在目前,這種做作業還是有很大的難度,需要投入很大的精力,卻得不到理想的效果。
隔周看之前的代碼:
(1)良好的設計:在開始設計程式的時候就要進行合理地規劃。對程式的功能進行合理地劃分,這樣後期對程式功能的完善跟擴充更加具有彈性。
(2)編碼規範:在定義的時候盡量避免使用a,b,c等無意義的變量,會影響在後序實驗過程中的代碼閱讀和了解。
(3)必要的注釋:在寫程式時需要進行必要的注釋的填寫,會幫助後期對程式總體架構的了解。而且程式不僅僅是給自己看的,也要讓别人能夠了解,從這點上說,注釋還是很有必要的
git克隆助教的架構:
git上交截圖:
coding連結:
https://coding.net/u/watermelon123/p/homework3/git
結對照片:
PSP表格:
PSP2.1 | Personal Software Process Stages | Estimated Time(hour) | Actual Time (hour) |
Planning | 計劃 | 0.5 | |
· Estimate | 估計這個任務需要多少時間 | 10 | 12 |
Development | 開發 | 5 | 6 |
· Analysis | 需求分析 (包括學習新技術) | 1 | 1.5 |
· Design Spec | 生成設計文檔 | ||
· Design Review | 設計複審 | 2 | |
· Coding Standard | 代碼規範 | ||
· Design | 具體設計 | ||
· Coding | 具體編碼 | 4 | 4.5 |
· Code Review | 代碼複審 | ||
· Test | 測試(自我測試,修改代碼,送出修改) | ||
Reporting | 報告 | ||
· | 測試報告 | 1/6 | |
計算工作量 | |||
并提出過程改進計劃 | 0.25 |