WordCount優化

github地址:java

https://github.com/Hoyifei/SQ-T-Homework-WordCount-Advancedgit

psp表格:github

PSP2.1正則表達式

PSP階段編程

預估耗時(分鐘)數組

實際耗時(分鐘)函數

Planning工具

計劃性能

20學習

30

· Estimate

· 估計這個任務須要多少時間

10

20

Development

開發

400

480

· Analysis

· 需求分析 (包括學習新技術)

60

80

· Design Spec

· 生成設計文檔

20

40

· Design Review

· 設計複審 (和同事審覈設計文檔)

30

40

· Coding Standard

· 代碼規範 (爲目前的開發制定合適的規範)

10

10

· Design

· 具體設計

60

60

· Coding

· 具體編碼

500

480

· Code Review

· 代碼複審

60

90

· Test

· 測試(自我測試,修改代碼,提交修改)

200

220

Reporting

報告

100

120

· Test Report

· 測試報告

50

60

· Size Measurement

· 計算工做量

20

20

· Postmortem & Process Improvement Plan

· 過後總結, 並提出過程改進計劃

30

30

 

合計

1570

1780

 

本次我負責的代碼在src/com/wordcount/Main.java和WordCounter.java

在Main函數中 我主要對參數進行了判斷處理:

若是少於一個,報錯退出

當多餘一個時,給出警告並提示將忽略其餘參數

當處理的文件擴展名並不是txt時,給出警告,但仍然執行

 

以後經過調用Splitter對文件進行分詞統計並實現回調函數將結果輸入統計模塊

從統計模塊獲取結果並輸入到result.txt,若發生錯誤,則給出警告並將結果輸出到控制檯

 

 

使用接口:

WordSplitterCallback

WordSplitter:constructor split()

Trie:curWordAppendChar() curWordEnd()

sortWords()   getWord()

TrieNode: getCount()

 

接口具體實現:

使用正則表達式判斷輸入的文件是否以.txt 結尾

WordSplitterCallback:在構造函數中創建一個Trie,以後在回調函數中調用相應的操做

從Trie的排序結果中獲取最多前100,轉換成string的形式,組織成word-Count pair數組

代碼以下:

 

 

 測試用例:

本模塊依賴於Trie和WordSplitter模塊,所以沒有進行單獨測試

對於運行參數的處理進行了手工運行的測試 ,對程序總體的測試包含5個手工編寫文件(case1-case5)以及15個·隨機生成的較大的文件(case6-case20)

其中五個手工編寫的文件以下:

case1:普通的英語文章,用於測試基本功能

 

 

case2:有大量詞頻相同的詞語,用於測試詞頻相同時的排序結果

case3:有詞頻相同的單詞和含有數字的單詞

 

case4:這是一個空文件。。。

 

case5:有非法字符出現,單詞末的鏈接符和連續的鏈接符等狀況

 其他15個隨機生成的較大文件在此不一一列舉

最終測試結果以下:

 

 測試評價:
全部的測試案例都經過了測試,被測模塊質量水平較高。

 

開發規範說明:

我選取的是谷歌java編程風格指南中的規則

 

經過對我代碼的評審,我發現大部分的代碼符合規範,主要不符合的有:

在類內連續的成員之間(字段,構造函數,方法,嵌套類,靜態初始化塊,實例初始化塊)需使用空格

大括號與if, else, for, do, while語句一塊兒使用,即便只有一條語句(或是空),也應該把大括號寫上

 

參考文獻:https://blog.csdn.net/zen99t/article/details/50763231

 

靜態代碼掃描:

掃描工具:Checkstyle

掃描截圖:

 

安裝靜態檢查插件後,編碼過程當中IDE實時給出了提示,所以最終沒有統計數據,可是代碼基本符合代碼規範

 

 

性能測試:

咱們進行了性能測試,具體結果參見組員高陽的博客,這裏再也不贅述。

高陽博客連接:http://www.cnblogs.com/dilidiligy/

 

 

小組小結:

本次軟件測試結果還算讓人滿意,軟件測試也是軟件質量的重要保證。

相關文章
相關標籤/搜索