201671010435-王瀟-軟件工程結對項目

  • 博客任務
任務1 要給出所點評做業的博客、github連接地址,點評內容和點評心得
任務2 須要給出結對項目源碼在Github的倉庫主頁連接地址;
任務3 博文做爲結對項目實施過程的文字資料,請完整包含下面7個部分:



  • 做業互評
點評的博客地址 http://www.javashuo.com/article/p-ecoqavme-ma.html
github連接地址 https://github.com/jessiyx/jessiyx
評論與心得 這位同窗很是清楚的將實驗的內容清楚的展示出來,而且該實現的功能基本上都實現了出來,思路清晰明瞭,結構清晰易懂,感受是下足了功夫的,該同窗的學習態度值得學習,可是就是柱狀圖的功能尚未徹底的實現,整體很是不錯,值得學習和借鑑。



  • 實驗目的與要求
項目 內容
軟件工程 任課教師博客主頁連接
做業要求 做業連接地址
課程學習目標 熟悉軟件開發總體流程,提高自身能力
本次做業在哪一個具體方面幫助咱們實現目標 第一次體驗一個完整的工程





  • 需求分析
    • 實驗2要求的功能;
    • 單詞頻數可視化柱狀圖要求是如下樣式:


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



  • 核心功能代碼展現
    • 統計每一個功能運行的時間:
    while (num != 0) {
              switch (num) {
              case 1:
                  long startTime1=System.currentTimeMillis();
                  Find rs = new Find();
                  rs.find(wordsCount);
                  long endTime1=System.currentTimeMillis();
                  double time1=(endTime1-startTime1)/1000;
                  //long time1=endTime1-startTime1;
                  System.out.println("功能1實現的運行的時間爲:"+time1+"秒");
                  break;
              case 2: 
                  long startTime2=System.currentTimeMillis();
                  Valuesort vs = new Valuesort();
                  vs.valuesort(wordsCount);
                  long endTime2=System.currentTimeMillis();
                  long time2=endTime2-startTime2;
                  System.out.println("功能2實現的運行的時間爲:"+time2+"毫秒");
                  break;
              case 3: 
                  //實現統計每一行的單詞數量
                  long startTime3=System.currentTimeMillis();
                  SortWords sortword=new SortWords();
                  sortword.SortWords();
                  long endTime3=System.currentTimeMillis();
                  long time3=endTime3-startTime3;
                  System.out.println("功能3實現的運行的時間爲:"+time3+"毫秒");
                  break;
              case 4: 
                  //實現統計文本文檔的行數
                  long startTime4=System.currentTimeMillis();
                  //EnterCount ec=new EnterCount();
                  //ec.
                  EnterCount entercount=new EnterCount();
                  entercount.enterCount();
                  long endTime4=System.currentTimeMillis();
                  long time4=endTime4-startTime4;
                  System.out.println("功能4實現的運行的時間爲:"+time4+"毫秒");
                  break;
              }
              System.out.println("再次選擇想要了解的:");
              num = in.nextInt();
              if (num > 2) {
                  System.out.println("請輸入正確問題序號");
              }
          }
    
      }
    • 統計文檔的行數和字符數:
try{
            if(file.exists()){
                FileReader fr = new FileReader(file);
                LineNumberReader lnr = new LineNumberReader(fr);
                int lineNum = 0;
                    while (lnr.readLine() != null){
                    lineNum++;
                    }
                    System.out.println("該文本文檔的總行數爲 : " + lineNum);
                    lnr.close();
            }else{
                 System.out.println("File does not exists!");
            }
        }catch(IOException e){
            e.printStackTrace();
        }


while((line = reader.readLine()) != null)
        {
            if(line.equals(""))
            {
                paragraphCount++;
            }
            if(!(line.equals("")))
            {
                
                characterCount += line.length();
                
                // \s+ is the space delimiter in java
                String[] wordList = line.split("/s+");
                
                countWord += wordList.length;
                whitespaceCount += countWord -1;
                
                // [!?.:]+ is the sentence delimiter in java
                String[] sentenceList = line.split("[!?.:]+");
                
                sentenceCount += sentenceList.length;
            }
            
        }



  • 程序運行(功能界面截圖)

人機交互界面首頁.
html

細節功能.
java

頁面設計.
git

實現的功能.
github

功能實現結果.
編程



  • 描述結對的過程,提供兩人在討論、細化和編程時的結對照片

1)結對編程
結對編程場景:兩位學習夥伴坐在一塊兒,面對着同一臺顯示器,使用着同一鍵盤,同一個鼠標,他們一塊兒思考問題,一塊兒分析問題,一塊兒編寫程序。學習



  • PSP描述



PSP2.1 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 30 60
· Esitimate 估計這個任務須要多少時間,並規劃大體工做步驟 200 400
· Development 開發 200 300
· Analysis 需求分析(包括學習新技術) 60 50
· Design Spec 生成設計文檔 20 15
· Design Review 設計複審(和同事審覈設計文檔) 15 15
· Coing Standard 代碼規範(爲目前開發制定合適的規範) 20 20
· Design 具體設計 20 30
· Coding 具體編碼 200 300
· Code Review 代碼複審 7 9
· Test 測試(自我測試,修改代碼,提交修改) 17 25
· Reporting 報告 10 15
· Test Report 測試報告 15 22
· Size Measurement 計算工做量 2 1
· Postmortem&Process Improvement Plan 過後總結,並提出過程改進計劃 3 2



  • 小結感覺
    感覺和體會:
    (1)兩人合做真的能夠大於每一個人所付出的工做量和思考問題的能力,兩人結對編程,不只能夠分配巨大的工做量,並且還能夠將兩我的人互當作需求人員,也就是用戶,使得項目的需求分析可以更加的完整,需求更加詳細。
    (2)另外對於兩人結對編程不只使得每一個人鍛鍊了思考問題的能力並且能夠鍛鍊團隊如何合做的能力。對於此次結對合做,我以爲我學會了如何進行小團隊之間進行合做,以及汲取隊員的優秀之處,彌補本身的不足。因此兩人合做我以爲是能夠起到1+1大於2的做用。



相關文章
相關標籤/搜索