201671010440 王雨竹 詞頻統計軟件項目報告
阿新 • • 發佈:2019-03-20
pla 基本功 讀取 rem 流程 準備 ble 哈利波特 次數
實驗二 軟件工程個人項目
實驗目的與要求
- 掌握軟件項目個人開發流程。
- 掌握Github上發布軟件項目的操作方法。
實驗內容和步驟
任務1:
需求分析:
嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。軟件基本功能要求如下:
程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。
程序需要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。
指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。
高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。
統計該文本所有單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。
功能設計:
- 基本功能:能夠按照需求分析滿足對英文文本的查詢,基本實現文本中單詞查詢。
擴展功能:在單詞查詢的基礎上,實現對高頻詞的查詢,並具備順序輸出功能。
設計實現:
- 使用main()的主方法,利用java語言進行編譯來實踐詞頻統計;
- 利用map<String,Integer>存儲單詞計數信息,以便實現之後的單詞詞頻統計。
- 利用數組進行詞頻統計。
最後進行value大小的排序。
測試運行:
滿意代碼片段:
- 統計:
- 排序:
總結:
本次設計詞頻查找軟件,耗費時間很多,由於之前跨專業從未學習過相關知識,所以做起來尤為費勁。在學習了相應的java語言之後,首先做了本次作業的基本原理設計:針對單詞查找,首先將單詞文本整成一長串字符串,將其中單個字符串找出,並加以計數。基本原理思考完畢後,進行代碼編程,由於沒有基礎,編碼實在困難,只實現了基礎功能,能做到基本的單詞查找和字典排序。其他擴展功能尚未實現,準備在後面的時間裏虛心學習,爭取早日有所長進。
PSP:
PSP2.1 | 任務內容 | 計劃共完成需要的時間(min) | 實際完成需要的時間(min) |
---|---|---|---|
Planning | 計劃 | 10 | 12 |
Estimate | 估計這個任務需要多少時間,並規劃大致工作步驟 | 6 | 6 |
Development | 開發 | 200 | 180 |
Analysis | 需求分析 (包括學習新技術) | 15 | 10 |
Design Spec | 生成設計文檔 | 15 | 12 |
Design Review | 設計復審 (和同事審核設計文檔) | 8 | 10 |
Coding Standard | 代碼規範 (為目前的開發制定合適的規範) | 5 | 5 |
Design | 具體設計 | 50 | 48 |
Coding | 具體編碼 | 120 | 110 |
Code Review | 代碼復審 | 10 | 20 |
Test | 測試(自我測試,修改代碼,提交修改) | 20 | 20 |
Reporting | 報告 | 30 | 30 |
Test Report | 測試報告 | 4 | 3 |
Size Measurement | 計算工作量 | 3 | 1 |
Postmortem & Process Improvement Plan | 事後總結 ,並提出過程改進計劃 | 5 | 4 |
任務2:
- 將包含任務1源碼的完整工程文件提交到你註冊Github賬號下的項目倉庫中。
https://github.com/M-ars/wangyuzhu
201671010440 王雨竹 詞頻統計軟件項目報告