軟工網絡16個人作業2
阿新 • • 發佈:2018-09-17
覆蓋率測試 Coding 換行符 report https 鍵值 單詞 align sta
1:碼雲項目地址
https://gitee.com/Lunter-zst/PersonalProject-Java
2:PSP表格
PSP2.1 | 個人開發流程 | 預估耗費時間(分鐘) | 實際耗費時間(分鐘) |
---|---|---|---|
Planning | 計劃 | 10 | 6 |
· Estimate | 明確需求和其他相關因素,估計每個階段的時間成本 | 3 | 0 |
Development | 開發 | 180 | 150 |
· Analysis | 需求分析 (包括學習新技術) | 10 | 10 |
· Design Spec | 生成設計文檔 | 10 | 5 |
· Design Review | 設計復審 | 10 | 10 |
· Coding Standard | 代碼規範 | 0 | 0 |
· Design | 具體設計 | 30 | 10 |
· Coding | 具體編碼 | 90 | 80 |
· Code Review | 代碼復審 | 10 | 3 |
· Test | 測試(自我測試,修改代碼,提交修改) | 20 | 50 |
Reporting | 報告 | 10 | 10 |
· | 測試報告 | 5 | 2 |
· | 計算工作量 | 5 | 2 |
· | 並提出過程改進計劃 | 3 | 1 |
3:解題思路描述
- 看到題目是統計單詞個數,於是想到學Java時寫過一個類似的程序(依次輸入若幹單詞然後給出出現次數最多的幾個單詞)。那個程序使用了map,於是想到用map來寫。
- 從文件讀取即用到文件的輸入輸出流。使用readLine()函數依次按行讀取,以行作為基本單位進行操作。
- 在每行中按空格、符號等進行分割出單詞,然後對每個單詞進行相應的判斷再將他們入map。
- 最後將map中的鍵值對按要求進行輸出即可。
- 要求中的字符數可以通過讀取每行的長度相加獲得,單詞數則可以通過對分割後的單詞進行計數獲得,行數則在進行readLine時加一即可。
4:代碼說明
進行字符數、單詞數及行數的統計
對map進行輸出
5:單元測試
- 對大量數據文件進行測試
對存在空白行的文件進行測試
對空文件進行測試
6:代碼覆蓋率
7:心路歷程與收獲
- 剛開始看見題目我發現好像寫過於是準備偷懶翻出以前的代碼進行改造,改著改著發現以前的代碼完全不能滿足這次的需求,最終推翻全部的代碼重新來寫。
- 在進行單詞數統計代碼編寫時,判斷是否存在下一行時使用了read()函數,結果進行測試時發現每次字符數都會比正確的少,我以為是換行符等問題造成的,查了半天才發現是因為read()在進行判斷時會"吃掉"首字符,於是改用readLine()結果就正確了。
- 通過這次實驗的單元測試及代碼覆蓋率測試讓我知道了一個好的程序不單單要能夠運行,還要考慮他的各種性能。還學會了從計劃到開發再到測試等各項工程來完成一個項目,使得項目的開發更完整化,也更貼近現代企業裏的開發流程。
軟工網絡16個人作業2