項目 | 內容 |
軟件工程 | 任課教師博客主頁連接 |
做業的要求 | 做業連接地址 |
課程學習目標 | (1)體驗軟件項目開發中的兩人合做,練習結對編程(Pair programming) (2)掌握Github上增量發佈軟件的操做方法。 |
姚玉婷同窗的園子 |
github連接地址 |
Github倉庫主頁地址 |
軟件設計:使用類圖
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);
函數
可處理任意用戶導入的任意英文文本;
學習
任務內容 | 計劃共完成須要的時間(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 |
結對編程,在每一時刻都是一個程序員在編程,說效率如何高,也只是1+1>1,可是否大於2呢?答案是確定的。首先,一我的的編程,平均很難實現1>80%×1的工做效力。可是在和同伴一塊兒工做時,必須保持思惟一直高度集中,因此平均均可以達到1>80%×1的我的效力,同時有了一遍代碼評審,使得出錯概率就下降,減小了bug的產生。也因爲兩我的的思想聚集,能創造了不少新編程算法或結構重用等。因此着眼於整個項目來看,這個實踐確實大大提升了效率。本次結對編程,就很好的證實了1+1>2這一點。測試