github項目傳送門:https://github.com/liangjingdev/wcjava
wc.exe 是一個常見的工具,它能統計文本文件的字符數、單詞數和行數。這個項目要求寫一個命令行程序,模仿已有wc.exe 的功能,並加以擴充,給出某程序設計語言源文件的字符數、單詞數和行數。git
如今須要實現一個源程序文件的代碼統計程序,它能正確統計源程序文件中的字符數、單詞數、行數,以及還具有其餘擴展功能,並可以快速地處理多個文件。github
具體功能要求:編程
一、程序處理用戶需求的模式爲:工具
直接經過用戶在圖形界面上的相關操做來讀取用戶的需求。佈局
二、基本功能列表:單元測試
三、擴展功能:學習
# 實現圖形界面的困難:測試
因爲並無很常常接觸到Java的GUI編程,因此不太熟悉相關的控件編寫以及窗口布局。ui
# 作過的嘗試:
藉助MyEclipse編譯器中的WindowBuilder Editor插件完成了該程序的圖形界面。
# 解決:
最後,實現了基礎功能以及拓展功能。
# 有所收穫:
冰凍三尺,非一日之寒,路漫漫其修遠兮,吾將上下而求索。
PSP2.1
PSP2.1 |
Personal Software Process Stages |
預估耗時(分鐘) |
實際耗時(分鐘) |
Planning |
計劃 |
30 | 40 |
· Estimate |
· 估計這個任務須要多少時間 |
50 | 60 |
Development |
開發 |
800 | 600 |
· Analysis |
· 需求分析 (包括學習新技術) |
100 | 120 |
· Design Spec |
· 生成設計文檔 |
40 | 30 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
30 | 30 |
· Coding Standard |
· 代碼規範 (爲目前的開發制定合適的規範) |
30 | 30 |
· Design |
· 具體設計 |
80 | 60 |
· Coding |
· 具體編碼 |
200 | 180 |
· Code Review |
· 代碼複審 |
40 | 30 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
60 | 40 |
Reporting |
報告 |
120 | 80 |
· Test Report |
· 測試報告 |
20 | 20 |
· Size Measurement |
· 計算工做量 |
10 | 10 |
· Postmortem & Process Improvement Plan |
· 過後總結, 並提出過程改進計劃 |
30 | 20 |
合計 |
1640 | 1350 |
一、entity包中的CodeFileInfo類是源程序文件的實體類。
二、filter包中的SourceFilenameFilter過濾器類的做用是篩選出文件夾內的源程序文件(目前實現了篩選以.c以及.java爲後綴的源程序文件)。
三、function包中的Function接口是基本功能及拓展功能的抽象接口,BaseFunction類和ExtendFunction類是具體的實現類,是功能實現的關鍵類。
四、handle包中的CalculateHandler類是一個控制類,主要是根據用戶的需求(計算單個源程序文件/多個源程序文件/文件夾中的全部源程序文件)去調用對應的計算邏輯進行計算。
五、WcMain類是程序功能的主入口(圖形界面)。
一、程序圖形界面
二、基本功能及拓展功能
經過本項目的實踐,熟悉了開發軟件的相關工做流程(分析項目需求、設計項目流程、實現項目功能、進行單元測試、程序功能運行測試、項目總結)。