201671010423馬麗莎 《英文文本統計分析》結對項目報告

1.博文簡要信息表:

項目 內容
軟件工程 任課教師博客主頁連接
做業的要求 做業連接地址
課程學習目標 (1)體驗軟件項目開發中的兩人合做,練習結對編程(Pair programming)
(2)掌握Github上增量發佈軟件的操做方法。

2.個人隊友:

                                                           姚玉婷同窗的園子                                                           
github連接地址

3.對結對方的實驗二的項目成果進行評價

  • 點評內容
    • 首先,項目的src文件夾未提交到Github上, 代碼規範、行文清晰流暢,還有註釋,其次行文中涉及代碼的也使用了博客園代碼控件。可是軟件的基本功能中要求的柱狀圖未實現,程序設計實現中寫了你有哪些類,這些類分別負責什麼功能,實現過程也畫出了流程圖, 可是缺乏result.txt的運行截圖,再接再礪。加油。
  • 點評心得
    • 本身對文件的上傳不太瞭解,提交到Github上的項目沒有包含src文件夾,功能也暫時未實現全,好比柱狀圖的實現。截圖欠缺了result.txt的截圖,代碼部分還有待提升,努力。可是個人類只有一個,能夠分幾個類,分別實現對應功能,而後一個測試類或者主函數類。這樣代碼結構就比較清晰完美。程序是在控制檯輸出運行結果,但願在下次結對做業中,可以實現人機交互。加油!

4.結對項目源碼在Github倉庫主頁地址:

                                                           Github倉庫主頁地址                                                           

5.結對項目實施過程

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

  • 核心功能代碼展現:
    • 上傳數據及保存文件
protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 檢測是否爲多媒體上傳
        if (!ServletFileUpload.isMultipartContent(request)) {
            // 若是不是則中止
            PrintWriter writer = response.getWriter();
            writer.println("文件類型有誤: 表單必須包含 enctype=multipart/form-data");
            writer.flush();
            return;
        }

        // 配置上傳參數
        DiskFileItemFactory factory = new DiskFileItemFactory();
        // 設置內存臨界值 - 超事後將產生臨時文件並存儲於臨時目錄中
        factory.setSizeThreshold(MEMORY_THRESHOLD);
        // 設置臨時存儲目錄
        factory.setRepository(new File(System.getProperty("java.io.tmpdir")));

        ServletFileUpload upload = new ServletFileUpload(factory);

        // 設置最大文件上傳值
        upload.setFileSizeMax(MAX_FILE_SIZE);

        // 設置最大請求值 (包含文件和表單數據)
        upload.setSizeMax(MAX_REQUEST_SIZE);


        String uploadPath = "D:\\Project\\workspace" + File.separator + UPLOAD_DIRECTORY;

        // 若是目錄不存在則建立
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdir();
        }
  • 程序運行:程序運行時每一個功能界面截圖java

    • 人機交互界面要求GUI界面(WEB頁面、APP頁面均可);
      git

    • 單詞頻數用可視化柱狀圖
      程序員

    • 統計該文本行數;
      github

    • 統計該文本字符數;
      算法

    • 統計結果輸出;
      編程

    • 各類統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);
      函數

    • 可處理任意用戶導入的任意英文文本;
      學習

    • 結對的過程
      • 很是感謝姚玉婷同窗在本次合做中很是耐心、竭盡全力的幫助我這個編程水平和他相差甚遠的學渣,合做很愉快,對我來講合做的過程就是一個學習的過程,正所謂「三人行必有我師」。結對編程能夠促進參與項目雙方自身的提升,結對工做的時候,水平較低的一方會潛移默化地受水平略高的程序員影響,這種學習比起從網站上找教學視頻和本身抱着各類參考書啃是不同的,更容易理解而且接受,並且更容易上手。

6.展現PSP

任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
計劃 10 8
估計這個任務須要多少時間,並規劃大體工做步驟 15 18
開發 500 550
需求分析 (包括學習新技術) 100 120
生成設計文檔 10 15
設計複審 (和同事審覈設計文檔) 10 12
代碼規範 (爲目前的開發制定合適的規範) 20 25
具體設計 100 90
具體編碼 300 330
代碼複審 20 15
測試(自我測試,修改代碼,提交修改) 50 60
報告 15 15
測試報告 5 6
計算工做量 5 3
過後總結 ,並提出過程改進計劃 6 4

7.小結

結對編程,在每一時刻都是一個程序員在編程,說效率如何高,也只是1+1>1,可是否大於2呢?答案是確定的。首先,一我的的編程,平均很難實現1>80%×1的工做效力。可是在和同伴一塊兒工做時,必須保持思惟一直高度集中,因此平均均可以達到1>80%×1的我的效力,同時有了一遍代碼評審,使得出錯概率就下降,減小了bug的產生。也因爲兩我的的思想聚集,能創造了不少新編程算法或結構重用等。因此着眼於整個項目來看,這個實踐確實大大提升了效率。本次結對編程,就很好的證實了1+1>2這一點。測試

相關文章
相關標籤/搜索