結對做業——WordCount進階版

Deadline:

2018-10-7 22:00PM,以博客提交至班級博客時間爲準
要求參考來自:https://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
https://edu.cnblogs.com/campus/buaa/BUAASummerSETraining/homework/2013html

  1. 實現一個可以對文本文件中的單詞詞頻進行統計的GUI程序。
  2. 進行單元測試、迴歸測試、效能測試,在實現上述程序的過程當中使用相關的工具。
  3. 進行我的軟件過程(PSP)的實踐,逐步記錄本身在每一個軟件工程環節花費的時間。
  4. 使用源代碼管理系統 (碼雲)。

Task1:編碼要求

  1. Fork 碼雲項目 https://gitee.com/SE-net16/PairProject-C
    https://gitee.com/SE-net16/PairProject-Java 到本身的倉庫,在本身的碼雲倉庫中新建一個學號命名(兩人學號的末尾3位)的文件夾。
  2. 在開始實現程序以前,在PSP表格[附錄1]記錄下你估計在程序開發各個步驟上耗費的時間,在你實現程序以後,在PSP表格記錄下你在程序的各個模塊上實際花費的時間。
  3. 使用C++或者Java語言實現,C++請使用Visual Studio Community 2017進行開發,Java請使用,運行環境爲64-bit Windows 10。
  4. 編寫的代碼遵照代碼規範
  5. 使用碼雲來管理源代碼和測試用例,代碼有進展即簽入碼雲,能夠看到兩人的提交信息。簽入記錄不合理的項目會被助教抽查詢問項目細節。
  6. 使用單元測試對項目進行測試,並使用插件查看測試分支覆蓋率等指標;並寫出至少10個測試用例確保你的程序可以正確處理各類狀況。
  7. 在完成結對項目後,請正確發起一個Pull Request,並確保本身的代碼最終成功簽入到 https://gitee.com/SE-net16/PairProject-C
    https://gitee.com/SE-net16/PairProject-Java 中。(若是成功簽入會在原始項目主頁看到本身學號爲名的文件夾)

Task2:博客要求

  1. 在文章開頭給出博客做業要求地址
  2. 給出結對小夥伴的學號、博客地址,結對項目的碼雲地址。
  3. 給出結對的PSP表格。
  4. 解題思路描述。即剛開始拿到題目後,如何思考,如何找資料的過程。
  5. 設計實現過程。設計包括代碼如何組織,好比會有幾個類,幾個函數,他們之間關係如何,關鍵函數是否須要畫出流程圖?單元測試是怎麼設計的?
  6. 代碼說明。展現出項目關鍵代碼,並解釋思路與註釋說明。
  7. 結合在構建之法中學習到的相關內容與結對項目的實踐經歷,描述結對的感覺,是否1+1>2?
    注:結對共同部分,可在其中一我的的博客給出(另外一我的給出連接),不一樣部分分別寫在本身的博客。

Task3:WordCount 結對項目要求

在我的項目的基礎上,增長新的功能。java

第一步,增長新功能

咱們但願各位在我的項目的基礎上,添加一些新的功能:git

  • 詞組統計:能統計文件夾中指定長度的詞組的詞頻
  • 自定義輸出:能輸出用戶指定的前n多的單詞與其數量
    爲了實現上述軟件,咱們首先要在我的項目基礎上增量改進,實現一個Core模塊,並基於Core模塊實如今命令行測試程序中支持下述命令行參數(原有命令行參數不變)

1. -i 參數設定讀入的文件路徑
格式以下
wordCount.exe -i [file]github

一個例子如:web

wordCount.exe -i input.txt編程

2.-m 參數設定統計的詞組長度
格式以下app

wordCount.exe -m [number]
詞組定義:m個由分隔符隔開的單詞組成一個詞組
-m參數與數字配套使用,用於設置詞組長度
命令行中使用-m參數,例:ide

wordCount.exe -m 3 -i input.txt
/*
 *要求程序統計input.txt中長度爲3的詞組,最終輸出
 *例:input文件中內容爲"Monday Tuesday Wednesday Thursday"
 *則輸出以下
 */
characters: 33
words: 4
lines: 1
Monday Tuesday Wednesday: 1
Tuesday Wednesday Thursday: 1

3. -n參數設定輸出的單詞數量
格式以下函數

wordCount.exe -n [number]
-n參數與數字搭配使用,用於限制最終輸出的單詞的個數
表示輸出最多的前[number]個單詞
命令行中使用-n參數,例:工具

wordCount.exe -n 1 -i input.txt
/*
 *程序會輸出文件中出現次數最多的那個單詞
 */

4. -o 參數設定生成文件的存儲路徑
格式以下

wordCount.exe -o output.txt
則將統計信息輸出到文件 output.txt中。

第二步,設計單元測試

請使用單元測試對項目進行測試,並使用插件查看測試分支覆蓋率等指標;另外,請準備至少10個測試用例確保程序可以正確處理各類狀況,而且不會崩潰。

第三步,迴歸測試

請使用我的做業2中設計的測試用例對該程序進行迴歸測試。

第四步,GUI程序設計

將基於控制檯的程序設計成具備圖形界面的程序(能夠是Windows PC 上的,也能夠是Mac、Linux,web,手機上的)


評分基準

博客評分

本次博客做業總分 20分,由如下部分組成:

  1. 在文章開頭給出結對的小夥伴博客地址,碼雲項目地址。(2')
  2. 在開始實現程序以前,在下述PSP表格記錄下估計將在程序的各個模塊的開發上耗費的時間。(1')
  3. 功能改進的設計與實現過程。 改進包括代碼是否重構,如何組織,好比會有幾個類,幾個函數,他們之間關係如何,關鍵函數是否須要畫出流程圖?說明你的改進思路(沒必要列出源代碼),以及獨到之處。(8')
  4. 功能改進模塊部分單元測試展現。 展現出項目部分單元測試代碼,並說明測試的函數,構造測試數據的思路。並將單元測試獲得的測試覆蓋率截圖,發表在博客中。(4')
  5. 迴歸測試部分展現。 (3')
  6. 描述結對的過程,提供非擺拍的兩人在討論的結對照片。(1')
  7. 在你實現完程序以後,在附錄提供的PSP表格記錄下你在程序的各個模塊上實際花費的時間。(1')

程序評分

本次程序做業總分40分,由如下部分組成:

  1. 正確性(30')
  2. GUI(10‘)

注:

  • 如能積極響應助教和老師的反饋並在評論2天內作出相應修改,會在已有評分上有必定加分,但原則上得到分數不超過本次做業總分。
  • 如對分數有意見,只給一次向助教申訴的機會
  • 遲交一週扣實際分數的一半
  • 遲交兩週或以上,不給分
  • 抄襲倒扣分

參考資料

相關文章
相關標籤/搜索