項目 | 內容 |
---|---|
這個做業屬於哪一個課程 | 2016級計算機科學與工程學院軟件工程(西北師範大學) |
這個做業的要求在哪裏 | 實驗四 軟件工程結對項目 |
課程學習目標 | 1.體驗軟件項目開發中的兩人合做,練習結對編程。 2.掌握Github上增量發佈軟件的操做方法。 |
本次做業在哪一個具體方面幫助咱們實現目標 | 第一次體驗完整的工程 |
任務1:兩兩自由結對,對結對方的《實驗二 軟件工程我的項目》的項目成果進行評價:html
任務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()方法是打印異常信息在程序中出錯的位置及緣由 }
結對過程:
編程
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 |