項目 | 內容 |
這個做業屬於哪一個課程 | 西北師範大學軟件工程 |
這個做業的要求在哪裏 | 實驗四 軟件工程結對項目 |
我在這個課程的目標是? | 熟悉軟件開發總體流程,提高自身能力 |
本次做業在哪一個具體方面幫助咱們實現目標 | 第一次體驗一個完整的工程 |
點我查看源碼html
- 實驗2要求的功能:點我查看實驗二
- 單詞頻數可視化柱狀圖
- 統計該文本行數及字符數
- 各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms)
- 可處理任意用戶導入的任意英文文本
- 人機交互界面要求GUI界面(WEB頁面、APP頁面均可)
- 附加分功能:統計文本中除冠詞、代詞、介詞以外的高頻詞
- 附加分功能:統計前10個兩個單詞組成的詞組頻率
//高頻詞的統計 整數k public ArrayList gaopin(TreeMap<String,Integer> tm,int k){ ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(tm.entrySet()); Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){ public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o2.getValue() - o1.getValue(); } }); //輸出前k個數 for(int i = 0; i<k; i++){ System.out.println(list.get(i).getKey()+ ": " +list.get(i).getValue()); } return list; } //統計文本行數與字符 public List statistics(String fileName) throws IOException{ String line = fileName; System.out.println(fileName); File file = new File(line); InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader br = new BufferedReader(isr); int charNum= 0 ;//字符數 int wordsNum= 0;//數字數 int lineNum = 0;//行數 //以流的形式讀入文件 while( br.read()!= -1){ String s = br.readLine(); charNum+=s.length(); wordsNum +=s.split(" ").length; lineNum ++; } isr.close();//關閉 List list=new ArrayList(); list.add(charNum); list.add(wordsNum); list.add(lineNum); // System.out.println("字符數:"+charNum+"\n單詞數:"+wordsNum+"\n行數:"+lineNum); return list; }}
在結對過程當中,從一開始對結對做業進行討論,而後分配任務,因爲咱們兩人並不屬於同一宿舍,咱們做業的完成儘可能在有空的時候兩人見面進行討論。
因爲是第一次進行結對編程,缺少經驗,開始的效率並非很高,咱們也常常會出現進度不一樣步進度滯後的狀況。
在經歷了坎坷和磨合的過程以後,咱們兩人的配合效率也獲得了提升,雙方互相反饋各自主要負責部分的問題,進行修改,最終也是順利完成告終對項目。
整體來講此次結對過程給了我很新鮮的體驗,第一次與比較陌生的人配合一塊兒完成一個項目,兩人經過不斷地磨合最終也算是磕磕絆絆地完成了此次做業,對我來講算是一次收穫頗豐的體驗。git
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
Planning | 計劃 | 15 | 18 |
Estimate | 估計這個任務須要多少時間,並規劃大體步驟 | 20 | 20 |
Development | 開發 | 200 | 250 |
Analysis | 需求分析(包括學習新技術) | 10 | 10 |
Design Spec | 生成設計文檔 | 30 | 25 |
Design Review | 設計複審(和同事審覈設計文檔) | 8 | 10 |
Coding Standard | 代碼規範(爲目前的開發制定合適的規範) | 15 | 20 |
Design | 具體設計 | 20 | 15 |
Coding | 具體編碼 | 180 | 200 |
Code Review | 代碼複審 | 20 | 15 |
Test | 測試(自我測試,修改代碼,提交修改) | 10 | 15 |
Reporting | 報告 | 30 | 25 |
Test Report | 測試報告 | 30 | 25 |
Size Measurement | 計算工做量 | 5 | 3 |
Postmortem & Process Improvement Plan | 過後總結,並提出過程改進計劃 | 10 | 8 |
結對編程反思github
- 兩我的合做真的能夠達到1+1>2的效果,收穫的不只是一個項目,一次做業,而是團體合做的寶貴的過程和經歷。
結對編程的優勢:- 在結對過程當中,經過兩人的討論配合,能夠更高效的肯定方案,尤爲是在肯定程序處理算法的過程當中兩人能夠共同收集可用的算法並討論肯定最終算法,結對的過程很大的提高了這一過程完成的效率。
- 兩人在結對過程當中能夠學習並養成更好地代碼規範,來確保本身的搭檔能夠順暢的閱讀並理解對方的代碼。
- 兩人能夠從對方能夠互補缺點,從對方身上學到本身所不具有的技能。
結對編程的缺點:- 結對過程當中兩人會對某一問題出現摩擦,沒法統一意見的狀況會下降效率,延長時間
- 結對過程因爲兩人所瞭解熟悉的方面不一樣可能會演變成各自完成各自的工做而難以顧及對方的工做。
隊友的優缺點- 優勢:很是刻苦努力,工做能力很強,完成工做的效率很高,很負責,常常提醒我完成進度。學習能力很強,不瞭解的內容可以在短期內完成學習。
- 缺點:由於對Java語言不夠了解和熟練,在編程及算法的能力上有不少欠缺。
本身的優缺點- 優勢:身爲計算機學院的學生,對算法和語言有積累,在對方給本身提出要求和提醒後及時的反饋並完成本身的任務。
- 缺點:能力薄弱,不少功能和相關知識不會,須要查大量資料。能動性較低,如不是隊友提醒,可能會使進度滯後不少。