201671010418 劉佳 《英文文本統計分析》結對項目報告

《英文文本統計分析》結對項目報告:

項目 內容
這個做業屬於哪一個課程 西北師範大學軟件工程
這個做業的要求在哪裏 實驗四 軟件工程結對項目
我在這個課程的目標是? 熟悉軟件開發總體流程,提高自身能力
本次做業在哪一個具體方面幫助咱們實現目標 第一次體驗一個完整的工程

一:給出所點評做業的博客、github連接地址,點評內容和點評心得

二:結對項目源碼在Github的倉庫主頁連接地址

點我查看源碼html

1.需求分析

  • 實驗2要求的功能:點我查看實驗二
  • 單詞頻數可視化柱狀圖
  • 統計該文本行數及字符數
  • 各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms)
  • 可處理任意用戶導入的任意英文文本
  • 人機交互界面要求GUI界面(WEB頁面、APP頁面均可)
  • 附加分功能:統計文本中除冠詞、代詞、介詞以外的高頻詞
  • 附加分功能:統計前10個兩個單詞組成的詞組頻率

2.軟件設計:使用類圖

3.核心功能代碼展現:展現核心功能代碼

  • 代碼片斷:

//高頻詞的統計 整數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;
         }}

4.程序運行時每一個功能界面截圖

JSP主頁面

瀏覽文件

統計完成


柱狀圖顯示

relust.txt中存放顯示

5. 描述結對的過程,提供兩人在討論、細化和編程時的結對照片(非擺拍)

在結對過程當中,從一開始對結對做業進行討論,而後分配任務,因爲咱們兩人並不屬於同一宿舍,咱們做業的完成儘可能在有空的時候兩人見面進行討論。
因爲是第一次進行結對編程,缺少經驗,開始的效率並非很高,咱們也常常會出現進度不一樣步進度滯後的狀況。
在經歷了坎坷和磨合的過程以後,咱們兩人的配合效率也獲得了提升,雙方互相反饋各自主要負責部分的問題,進行修改,最終也是順利完成告終對項目。
整體來講此次結對過程給了我很新鮮的體驗,第一次與比較陌生的人配合一塊兒完成一個項目,兩人經過不斷地磨合最終也算是磕磕絆絆地完成了此次做業,對我來講算是一次收穫頗豐的體驗。git


6. 這次結對做業的PSP表格

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

7.小結感覺:兩人合做真的可以帶來1+1>2的效果嗎?經過此次結對合做,請談談你的感覺和體會。

結對編程反思github

  • 兩我的合做真的能夠達到1+1>2的效果,收穫的不只是一個項目,一次做業,而是團體合做的寶貴的過程和經歷。
    結對編程的優勢:
  • 在結對過程當中,經過兩人的討論配合,能夠更高效的肯定方案,尤爲是在肯定程序處理算法的過程當中兩人能夠共同收集可用的算法並討論肯定最終算法,結對的過程很大的提高了這一過程完成的效率。
  • 兩人在結對過程當中能夠學習並養成更好地代碼規範,來確保本身的搭檔能夠順暢的閱讀並理解對方的代碼。
  • 兩人能夠從對方能夠互補缺點,從對方身上學到本身所不具有的技能。
    結對編程的缺點:
  • 結對過程當中兩人會對某一問題出現摩擦,沒法統一意見的狀況會下降效率,延長時間
  • 結對過程因爲兩人所瞭解熟悉的方面不一樣可能會演變成各自完成各自的工做而難以顧及對方的工做。
    隊友的優缺點
  • 優勢:很是刻苦努力,工做能力很強,完成工做的效率很高,很負責,常常提醒我完成進度。學習能力很強,不瞭解的內容可以在短期內完成學習。
  • 缺點:由於對Java語言不夠了解和熟練,在編程及算法的能力上有不少欠缺。
    本身的優缺點
  • 優勢:身爲計算機學院的學生,對算法和語言有積累,在對方給本身提出要求和提醒後及時的反饋並完成本身的任務。
  • 缺點:能力薄弱,不少功能和相關知識不會,須要查大量資料。能動性較低,如不是隊友提醒,可能會使進度滯後不少。
相關文章
相關標籤/搜索