課程名稱: | 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」。結對是一個互相促進、互相監督、互相完善的過程,這種形式的編程不但能夠提升代碼質量減小程序錯誤,並且 在必定程度上也提升了本身的團隊協做能力,在結對過程當中也能從對方身上學到好的編程思想和行爲。