| 軟件工程 | 19網工34班 |
|---|---|
| 作業要求: 1.在Github倉庫中新建一個學號為名的文件夾 2.在開始實現程序之前,在PSP表格記錄下在程序開發各個步驟耗費時間,實現程序后,在PSP表格記錄各個模塊上實際花費時間 3.語言不限,實現程序后將代碼發布到Github倉庫的realease中 4.提交的代碼要求經過Code Quality Analysis工具分析並消除所有警告 5.完成項目首個版本之后,使用性能分析工具StudioProfiling Tools找出代碼性能瓶頸 6.使用Github來管理源代碼和測試用例,代碼有進展即簽入Github 7.使用單元測試對項目進行測試,並使用插件查看測試分支覆蓋率等指標 |
作業要求鏈接 |
| 作業目標:完成論文查重項目的實現后進行測試並按以上要求使用Github進行版本發布及源碼和測試用例管理 |
Github鏈接
https://github.com/change247/change.github.io
一、PSP表格
| PSP2.1 | Personal Software Process Stages | 預估耗時(分鍾) | 實際耗時(分鍾) |
|---|---|---|---|
| Planning | 計划 | ||
| Estimate | 估計這個任務需要多少時間 | 930 | 1330 |
| Development | 開發 | ||
| Analysis | 需求分析(包括學習新技術) | 120 | 100 |
| Design Spec | 生成設計文檔 | 90 | 145 |
| Design Review | 設計復審 | 150 | 205 |
| Coding Standard | 代碼規范(為目前的開發制定合適的規范) | 20 | 20 |
| Design | 具體設計 | 250 | 300 |
| Coding | 具體代碼 | 250 | 300 |
| Code Review | 代碼復審 | 115 | 110 |
| Test | 測試(自我測試,修改代碼,提交修改) | 15 | 100 |
| Reporting | 報告 | 10 | 20 |
| Test Repor | 測試報告 | 10 | 10 |
| Size Measurement | 計算工作量 | 10 | 10 |
| Postmortem & Process Improvement Plan | 事后總結, 並提出過程改進計划 | 10 | 10 |
| 合計 | 930 | 1330 |
二、計算模塊接口的設計與實現過程
整體流程
1、通過命令行接收原文文件輸入路徑、抄襲版論文的文件輸入路徑、答案文件輸出路徑。
2、對文本內容進行處理。
3、通過核心算法得出相似度。
4、輸出答案
流程圖

核心算法


運行結果截圖

命令窗口運行

代碼覆蓋率
由於我使用的Eclipse無法看到覆蓋率,所以我將代碼復制到同學的Idea上運行並查看代碼覆蓋率

三、計算模塊接口部分的性能改進
CPU負載

內存消耗

改進思路
如果對核心算法的時間復雜度進行優化,准確率也會有所下降,而優化空間復雜度不會有這種影響。
四、總結
在程序運行過程中出現了亂碼,但仍然能得出重復率和運行時間。和同學討論之后我認為可能是編譯器的原因。這個程序在讀入文本時將原文本和測試文本中的漢字轉換為內部的一種代碼,再通過比對兩種代碼得出重復率。在運行結果中出現的兩行亂碼一行是原文本的一行是測試文本的。可能我使用的Eclipse還不夠智能,我將我的代碼復制粘貼到同學的編譯器Idea后原本輸出的兩行亂碼變成了文本里的漢字。所以說進行編程時編譯器也要盡量選些智能的,這樣能大大提高編程的效率。
