201671030119 唐蓋強《英文文本統計分析》結對項目報告

項目 內容
這個做業屬於哪一個課程 2016級計算機科學與工程學院軟件工程(西北師範大學)
這個做業的要求在哪裏 實驗四 軟件工程結對項目
課程學習目標 1.體驗軟件項目開發中的兩人合做,練習結對編程。
2.掌握Github上增量發佈軟件的操做方法。
本次做業在哪一個具體方面幫助咱們實現目標 第一次體驗完整的工程

任務1:兩兩自由結對,對結對方的《實驗二 軟件工程我的項目》的項目成果進行評價:html

  • 點評:
    • 點評201671030106 詞頻統計軟件項目報告
    • 結對方Github
    • 博文編寫格式十分符合任務要求,這點值得咱們學習。在PSP中,任務預計完成時間和實際完成時間差距最大的是開發,這也是不少人開發項目會遇到的,開發是一個項目最重要的部分,須要咱們很縝密的去思考,明確需求,進行具體設計以及編碼測試。其中,具體編碼的時間差又是較大的,主要緣由應該就是博主在總結中提到的對java編程的不熟悉形成的。
      運行博主的程序後,程序以命令行方式執行,程序結構較清晰,但代碼的規範性還須要再改進,對任務要求的實現不是很完整,只完成了三個部分,但願博主有時間的話去完善下這個項目。
    • 閱讀心得:閱讀201671030106 詞頻統計軟件項目報告 後,我認真的反思了我博文的不足,其項目報告博文中的格式、信息量、排版等方面很完整,我須要向其學習。之後的博文編寫會更加用心的。

任務2:開發英文文本統計分析軟件:java

  • 項目源碼倉庫

  • 需求分析:
    (1)程序可輸出文本單詞及對應的詞頻數;
    (2)可查看並輸出指定單詞的單詞及詞頻數;
    (3)可將單詞及詞頻存入文件result.txt中
    (4)單詞頻數可視化柱狀圖要求是如下樣式:
    (5)統計該文本行數及字符數;
    (6)各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);
    (7)可處理任意用戶導入的任意英文文本;
    (8)人機交互界面要求GUI界面(WEB頁面、APP頁面均可);
    (9)附加分功能:統計文本中除冠詞、代詞、介詞以外的高頻詞;
    (10)附加分功能:統計前10個兩個單詞組成的詞組頻率。git

  • 軟件設計:
    類之間的關係:
    github

  • 核心功能代碼展現:
    • 例:統計文本中除介詞的高頻詞:
    for(Entry<String,Integer> entry : aMap2.entrySet()) 
               { 
                       F=0;
                       for(int s=0;s<Preposition.length;s++)    /* 數組Preposition中存放介詞*/
                       {
                           if(Preposition[s].equals(entry.getKey()))
                           { 
                               F=1;
                           } 
                       }
                       if(F==0)
                       {
                           text.append("單詞: " +entry.getKey() + "      次數   :" + entry.getValue()+"\r\n"); 
                           count=count+1; 
                       }
                       if(count==Integer.parseInt(num.getText()))
                           break;
                   }
    • 統計文本行數與字符數:
    StringBuffer sb1=  new  StringBuffer();
                  try {
                      String file1 =file_.getText();
                      BufferedReader in = new BufferedReader(new FileReader(file1));
                      while ((str = in.readLine())!= null) 
                      {
                          str = str.toLowerCase();
                          sb1.append(str);
                          line++;
                      }
                      text.append("文件行數  :  "+line  +"\n");
    
                      in.close();
                      String str2 = sb1.toString();
                      String[] wordsArr1 = str2.split("[^a-zA-Z]");  //過濾出只含有字母的  
                      for (String word : wordsArr1) 
                      {  
                          wordCount++;
                      } 
                      text.append("字符數  :"+ wordCount  + "\n");
                  } catch (IOException e1) 
                  {
                      e1.printStackTrace();//printStackTrace()方法是打印異常信息在程序中出錯的位置及緣由
                  }
  • 程序運行結果:
    • 登錄界面:
    • 菜單界面:
    • 統計該文本行數及字符數:
    • 將單詞及詞頻存入文件result.txt中
    • 查看並輸出指定單詞的單詞及詞頻數:
    • 附加任務1:統計文本中除冠詞、代詞、介詞以外的高頻詞:

  • 結對過程:
    編程

  • PSP:數組

PSP2.1 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 10 20
Estimate 估計這個任務須要多少時間,並規劃大體工做步驟 20 30
Development 開發 300 420
Analysis 需求分析(包括學習新技術) 120 100
Design Spec 生成設計文檔 120 120
Design Review 設計複審 30 20
Coding Standard 代碼規範(爲目前的開發制定合適的規範) 10 8
Design 具體設計 90 120
Coding 具體編碼 120 180
Code Review 代碼複審 30 35
Test 測試(自我測試,修改代碼,提交修改) 30 40
Reporting 報告 60 70
Test Report 測試報告 20 25
Size Measurement 計算工做量 20 20
Postmortem & Process Improvement Plan 過後總結,並提出過程改進計劃 20 30
  • 總結: 在此次項目設計中,我感覺到告終對編程的優秀,它極大的提升了咱們項目的進度。結對編程的優勢在於兩我的合做,一人編程,一人觀察程序的正誤,這樣使程序的錯誤率大幅度的下降。結對編程對於開發人員也是頗有幫助的,這一點我深有體會,在定義有歧義的變量或無用變量時,觀察者老是能夠發現,進而改變我編程的一些很差的習慣。完美詮釋了「當局者迷,旁觀者清」這句話。結對編程對個人編程頗有幫助,之後會常常使用。而這次項目設計中遺憾的是在項目的實現中,柱狀圖和計時功能因爲時間和技術緣由,沒能實現。
相關文章
相關標籤/搜索