項目 | 內容 |
這個做業屬於哪一個課程 | http://www.cnblogs.com/nwnu-daizh/ |
這個做業的要求在哪裏 | http://www.javashuo.com/article/p-bjcswxqf-ma.html |
課程學習目標 | 熟悉軟件開發總體流程,提高自身能力。 |
本次做業在哪一個具體方面幫助咱們實現目標 | 第一次體驗一個完整的工程 |
博文結構比較規範,博文內容比較緊湊,博文結構與PSP中「任務內容」列的關係比較一致,經過PSP中「計劃共完成須要的時間」與「實際完成須要的時間」兩列數據的比較能夠看出在開發和編碼的過程當中所需的時間差別較大。代碼中軟件結構不是很嚴謹、代碼規範作的不是很好、柱狀圖和高頻詞功能沒有實現、人機交互功能不是很完善。但在總結中也看出了本身的不足,平時要多提升本身的編程能力。html
經過看張瓊同窗的博客,我發現她對博客的總體結構作的很清晰,同時也意識到編程能力的重要性,若編程能力不足,博文寫的再好也沒用,因此後期要努力提升本身的編程能力。前端
a.需求分析java
(1)實驗2要求的功能;git
(2)單詞頻數可視化柱狀圖github
(3)統計該文本行數及字符數;web
(4)各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);編程
(5)可處理任意用戶導入的任意英文文本;jsp
(6)人機交互界面要求GUI界面(WEB頁面、APP頁面均可);函數
(7)附加分功能:統計文本中除冠詞、代詞、介詞以外的高頻詞;學習
(8)附加分功能:統計前10個兩個單詞組成的詞組頻率。
b.軟件設計:
//開始時間 long startTime=System.currentTimeMillis(); TreeMap<String,Integer> map1 = new TreeMap<String, Integer>(); WordCount wordCount = new WordCount(); map1= wordCount.bijiao(map, words); //結束時間 long endTime=System.currentTimeMillis(); float excTime=(float)((endTime-startTime)/1000)*1000; //向jsp頁面傳參數 request.setAttribute("map1", map1); request.setAttribute("excTime", excTime); System.out.println("執行時間:"+excTime+"ms"); request.getRequestDispatcher("index.jsp").forward(request, response);//重定向 }else if(id.equals("2")){ //高頻詞的統計 //開始時間 long startTime=System.currentTimeMillis(); WordCount wordCount = new WordCount(); int k=Integer.parseInt(wordnum); ArrayList gaopin=wordCount.gaopin(map, k); //結束時間 long endTime=System.currentTimeMillis(); float excTime2=(float)((endTime-startTime)/1000)*1000; request.setAttribute("gaopin", gaopin); request.setAttribute("excTime2", excTime2); request.getRequestDispatcher("html/WordCount.jsp").forward(request, response); }else if(id.equals("3")){ //行數統計 //開始時間 long startTime=System.currentTimeMillis(); WordCount wordCount = new WordCount(); List list=wordCount.statistics(fileName); //結束時間 long endTime=System.currentTimeMillis(); float excTime3=(float)((endTime-startTime)/1000)*1000; request.setAttribute("excTime3", excTime3); request.setAttribute("list", list); request.getRequestDispatcher("html/index.jsp").forward(request, response); } }
/* 獲取文件名的函數 */ function one() { var fileName = document.getElementById("file").value; location.href = "../WordCountServlet?fileName=" + fileName + "&id=0"; } function two() { var word = document.getElementById("word").value; location.href = "../WordCountServlet?word=" + word + "&id=1"; } function three() { var wordnum = document.getElementById("wordnum").value; location.href = "../WordCountServlet?wordnum=" + wordnum + "&id=2"; } function four() { var wordlines = document.getElementById("wordlines").value; location.href = "../WordCountServlet?wordlines=" + wordlines + "&id=3"; } function five() { var result = document.getElementById("result").value; location.href = "../WordCountServlet?result=" + result + "&id=4"; }
張瓊 | 對實驗二的java代碼進行適當的修改 |
孫苗坤 | 進行前端頁面設計 |
合做完成 | 一塊兒完成先後臺的交互 |
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
Planning | 計劃 | 15 | 15 |
· Estimate | · 估計這個任務須要多少時間,並規劃大體工做步驟 | 15 | 15 |
Development | 開發 | 146 | 218 |
·· Analysis | 需求分析 (包括學習新技術) | 160 | 200 |
· Design Spec | · 生成設計文檔 | 25 | 35 |
· Design Review | · 設計複審 | 10 | 15 |
· Coding Standard | 代碼規範 | 20 | 20 |
· Design | 具體設計 | 30 | 50 |
· Coding | 具體編碼 | 200 | 300 |
· Code Review | · 代碼複審 | 15 | 20 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 30 | 50 |
Reporting | 報告 | 25 | 30 |
·· Test Report | · 測試報告 | 30 | 40 |
· Size Measurement | 計算工做量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 過後總結 ,並提出過程改進計劃 | 30 | 35 |