2016級計算機科學與工程學院軟件工程(西北師範大學)html
實驗二 軟件工程我的項目java
(1)掌握軟件項目我的開發流程。
(2)掌握Github上發佈軟件項目的操做方法。git
嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。軟件基本功能要求以下:github
該詞頻統計軟件項目共有一個主類,包含主函數和三個功能函數。
主函數Main.java用來控制整個流程:讀入文本、單詞詞頻統計、柱狀圖展現。
三個基本函數:
函數WordNum():統計指定單詞的詞頻,可用柱狀圖顯示。
函數Before():可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。
函數WriteTxt():將文本中的單詞及其詞頻按照字典順序輸出到文件result.txt文件中。編程
一、指定單詞詞頻統計以及統計前8個單詞的詞頻及單詞
二、將sourse.txt文本中的單詞及其詞頻按照字典順序輸出到文件result.txt文件中。
result.txt文件:
編程語言
一、篩選出文章中的英文單詞函數
BufferedReader br = new BufferedReader(new FileReader(fileName)); List<String> lists = new ArrayList<String>(); //存儲過濾後單詞的列表 String readLine = null; while((readLine = br.readLine()) != null){ String[] wordsArr1 = readLine.split("[^a-zA-Z]"); //過濾出只含有字母的 for (String word : wordsArr1) { if(word.length() != 0){ //去除長度爲0的行 lists.add(word); } }
二、存儲單詞計數信息,並進行降序排列學習
Map<String, Integer> wordsCount = new TreeMap<String,Integer>(); //存儲單詞計數信息,key值爲單詞,value爲單詞數 for (String li : lists) { if(wordsCount.get(li) != null){ wordsCount.put(li,wordsCount.get(li) + 1); }else{ wordsCount.put(li,1); } } ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(wordsCount.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue() - o1.getValue(); // 降序排列 } });
我在作這個項目以前,本來打算着手寫代碼,但是寫着寫着感受沒有一點思緒,最後實在寫不出來,就對此進行分析,結果發現此次程序設計包含的模塊其實很清楚。我先進行需求分析,而後對功能模塊進行具體分析,將該程序設計的文本輸入輸出、單詞儲存排序以及統計詞頻都串聯起來,各功能獨立實現,最終完成了本次項目設計。測試
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 20 | 20 |
Estimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 20 | 15 |
Development | 開發 | 300 | 300 |
Analysis | 需求分析 (包括學習新技術) | 15 | 15 |
Design Spec | 生成設計文檔 | 10 | 12 |
Design Review | 設計複審 (和同事審覈設計文檔) | 5 | 8 |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 10 | 10 |
Design | 具體設計 | 15 | 15 |
Coding | 具體編碼 | 200 | 300 |
Code Review | 代碼複審 | 10 | 10 |
Test | 測試(自我測試,修改代碼,提交修改) | 30 | 30 |
Reporting | 報告 | 30 | 20 |
Test Report | 測試報告 | 5 | 5 |
Size Measurement | 計算工做量 | 10 | 5 |
Postmortem & Process Improvement Plan | 過後總結 ,並提出過程改進計劃 | 20 | 20 |
在設計項目的過程當中,必定要進行需求分析,而且劃分模塊。
點擊查看源代碼
編碼