(1)掌握軟件項目我的開發流程。html
(2)掌握Github上發佈軟件項目的操做方法。
java
任務一:嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。
任務二:將包含任務1源碼的完整工程文件提交到你註冊Github帳號下的項目倉庫中。
任務三:完成我的項目報告博文做業。
git
1.程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。 2.程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。 3.指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。 4.高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。 5.統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。
該程序主要實現的功能是進行單詞的詞頻統計,且可以容納10萬單詞,如對《Harrypotter》進行單詞的詞頻統計,還要繪製柱狀圖,並實現指定單詞詞頻統計、高頻詞彙的統計、以及該文本全部單詞的數量和對應的詞頻數等功能。
該程序共有四個類,包括一個主函數和三個功能類。 Test.java:主函數Test用來控制整個程序的流程,讀入文本、單詞詞頻統計、柱狀圖的顯示 WordCount.java:指定單詞詞頻統計,可顯示對應單詞在文本中出現的次數和柱狀圖。 HighWordCount.java:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。 SortWord.java:統計文本全部單詞數量及詞頻數,並將單詞及詞頻數按字典順序輸出到文件result.txt。
(1)控制檯功能展現:
github
(2)查詢單詞詞頻
編程
(3)查詢單詞詞頻柱狀圖
編程語言
(4)查詢高頻單詞
函數
(5)將文本按字典順序輸出到result.txt中
學習
--對單詞進行排序,並將對應的詞頻放到指定文件中--
測試
--遍歷輸出排序的單詞--
編碼
在該程序實現過程當中,因爲很長時間沒有用java代碼來寫項目,因此十分生疏,形成大量時間花費在編寫代碼上,課後會鞏固以前學過的知識,提升代碼編寫的能力。從程序上,將程序按照功能,劃分紅多個模塊來實現,基於軟件設計的模塊原則,各功能之間創建了必要的聯繫,共同實現了該程序的主要功能。
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 40 | 80 |
· Esitimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 200 | 400 |
· Development | 開發 | 200 | 400 |
· Analysis | 需求分析(包括學習新技術) | 60 | 60 |
· Design Spec | 生成設計文檔 | 20 | 15 |
· Design Review | 設計複審(和同事審覈設計文檔) | 15 | 15 |
· Coing Standard | 代碼規範(爲目前開發制定合適的規範) | 20 | 20 |
· Design | 具體設計 | 20 | 30 |
· Coding | 具體編碼 | 300 | 400 |
· Code Review | 代碼複審 | 10 | 10 |
· Test | 測試(自我測試,修改代碼,提交修改) | 20 | 25 |
· Reporting | 報告 | 10 | 15 |
· Test Report | 測試報告 | 15 | 25 |
· Size Measurement | 計算工做量 | 5 | 3 |
· Postmortem&Process Improvement Plan | 過後總結,並提出過程改進計劃 | 5 | 10 |