課程名稱: | 2016級計算機科學與工程學院軟件工程(西北師範大學) |
---|---|
所屬課程: | 軟件工程 |
課程要求: | 實驗四 軟件工程結對項目 |
實驗目標: | (1)體驗軟件項目開發中的兩人合做,練習結對編程(Pair programming)熟悉軟件開發總體流程。 |
(一)任務一:互評java
軟件結構清晰,代碼規範,每一個模塊實現一個肯定的功能(雖然功能要求並未徹底實現),可是人機交互界面對於用戶來說不夠直觀,還需繼續完善。git
項目開發過程當中,需求分析和功能設計階段對於項目經驗少的人來講須要花費更多的時間,同時代碼規範和文檔編寫 規範一樣也很重要。github
(二)任務二:結對項目源碼:GitHub編程
本段代碼爲統計文本行數以及字符數的代碼,在以前的項目中未實現,因此展現出來。
session
public Map<String, Integer> allCount(String fileName) throws IOException { Map<String, Integer> Map2 = new TreeMap<String, Integer>(); String line = fileName; File file = new File(line); InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader br = new BufferedReader(isr); int charNum = 0;// 字符數 int wordsNum = 0;// 單詞數 int lineNum = 0;// 行數 // 以流的形式讀入文件 while (br.read() != -1) { String s = br.readLine(); charNum += s.length(); wordsNum += s.split(" ").length; lineNum++; } isr.close();// 關閉 Map2.put("字符數", charNum); Map2.put("單詞數", wordsNum); Map2.put("行數", lineNum); return Map2; }
這段代碼實現了計時功能。
jsp
founction f = new founction(); long st = System.currentTimeMillis(); Map<String, Integer> wordsCount = f.allCount(fileName); long end = System.currentTimeMillis(); Long time = end-st; HttpSession session = request.getSession(); session.setAttribute("wordsCount", wordsCount); session.setAttribute("time", time);
高頻單詞數統計單元測試
指定單詞詞頻統計學習
按字典順序輸出到result.txt測試
統計文本行數字符數
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
Planning | 計劃 | 10 | 10 |
Estimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 10 | 10 |
Development | 開發 | 250 | 300 |
Analysis | 需求分析 (包括學習新技術) | 15 | 15 |
Design Spec | 生成設計文檔 | 15 | 17 |
Design Review | 設計複審 (和同事審覈設計文檔) | 2 | 4 |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 8 | 8 |
Design | 具體設計 | 20 | 23 |
Coding | 具體編碼 | 200 | 260 |
Code Review | 代碼複審 | 10 | 10 |
Test | 測試(自我測試,修改代碼,提交修改) | 15 | 15 |
Reporting | 報告 | 20 | 20 |
Test Report | 測試報告 | 5 | 5 |
Size Measurement | 計算工做量 | 5 | 5 |
Postmortem & Process Improvement Plan | 過後總結 ,並提出過程改進計劃 | 5 | 8 |
閱讀關於結對編程的闡述http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html 結對編程對我來講是一次新的體驗,在結對過程當中,能夠充分發揮本身的編程優點,進一步提升本身的編程能力。結對編程是由兩我的進行,因此功能的 實現也是彙集了兩我的的能力,實現了「1+1>2」。此次結對項目的實現爲我之後進行團隊協做奠基了良好的基礎,學會了如何作到最大限度的發揮彼此的能 力,使得程序更加完善。