201671010456-張瓊 實驗四 軟件工程結對項目

博文簡要信息表

項目 內容
這個做業屬於哪一個課程 http://www.cnblogs.com/nwnu-daizh/
這個做業的要求在哪裏 http://www.javashuo.com/article/p-bjcswxqf-ma.html
課程學習目標 熟悉軟件開發總體流程,提高自身能力。
本次做業在哪一個具體方面幫助咱們實現目標 第一次體驗一個完整的工程

任務一

點評地址 http://www.javashuo.com/article/p-ktkavezo-kn.html
點評內容 博文結構清晰,井井有條。文檔編制頗有條理,從需求分析到最後的PSP環環緊扣。可是在內容上還有些欠缺,高頻詞統計沒有實現。可是實現了柱狀圖,柱狀圖大部分同窗都沒有實現,也包括我,因此要向你多多請教了。除了一個功能沒有實現外,博文內容總體上仍是很完整的。此外,在人機交互界面上,還須要完善,總體上並不美觀。在PSP中能夠很明顯的看到實際的編程開發過程所用的時間遠遠超出了預計的時間。究其緣由,主要仍是由於首次進行項目編程,而且好多技術都要從新學習,致使佔用了較多時間。這個在下一次PSP中能夠借鑑本次經驗,儘可能放寬開發編程的時間。
點評心得 她的博文總體結構清晰,內容充分。對比我倆的博文,我發現她的柱狀圖實現的較好,就是對於做業的完成度較高,而個人博文中有流程圖設計,在結構流程上看起來更加清晰。因此要多多借鑑他人的經驗,看到亮點。不斷完善,合做探究。

任務二

1.需求分析
  • 1.程序要可以讀入英文文本,而且要求此文本不能爲空。
  • 2.程序能容納的英文單詞要在10萬以上。
  • 3.程序要能輸入想查找的一個或者多個英文單詞,而且統計出它出現的次數,而且把它的統計結果以柱狀圖的形式顯示出來。
  • 4.程序運行結果自動顯示該文本的單詞總數和每一個單詞出現的頻率。把單詞數和詞頻數按照字典順序輸出到文件result.txt。
  • 5.當在鍵盤輸入高頻詞的個數k後,進行程序統計功能運行,以後要按照詞頻數降序排列顯示在k以前的每一個單詞的數量和單詞。
  • 6.實現java後臺與前端的交互。
2.軟件設計:使用類圖
3.核心功能代碼展現:展現核心功能代碼
//開始時間
            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";
    }
4. 程序運行:程序運行時每一個功能界面截圖








|html

5. 結對照片
個人搭檔是孫苗坤,在合做過程當中她主要負責的是前段頁面的設計。我負責修改完善代碼,而後畫出類圖的雛形,而後在這個基礎上我倆再進行討論完善彼此的成果。而後是接口的具體設計,查閱資料並篩選以後,最終使用一個特殊類做爲接口。
6.總結
在本次團隊項目合做中,咱們首先是互相評論了彼此的上一次做業,找到了優勢和不足,用於本次試驗完成時要借鑑的技術和改正的地方。先找到不足,而後改正。接着咱們規劃了要實施的步驟,首先完成任務一,由於相對來講簡單些,也只有在任務一完成的基礎上才能開始任務二的做業。接着是任務二的需求分析,相對來講較簡單,就是在實驗二的基礎上加上前端界面。而後是概要設計和詳細設計,咱們是打算放在一塊兒進行的,主要設計程序的類和各個模塊,以及各個模塊之間的交互,還有Java後臺和前端的交互。在後臺和前端交互的時候,由於不知道要用什麼接口合適,因此咱們查找了不少的資料,看到能夠用數據庫,也能夠用json,ajax等,最終選擇了一個特殊的類servlet做爲實現java後臺和前端的交互。在這個過程當中花費了大量時間。本次實驗中我和搭檔合做探究,過程很愉快,更體會到了團隊意識的重要性。

PSP

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
結對項目源碼在Github的倉庫主頁連接地址 https://github.com/ZhangQiong1/program
相關文章
相關標籤/搜索