项目 | 内容 |
软件工程 | 任课教师博客主页连接 |
做业的要求 | 做业连接地址 |
课程学习目标 | (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这一点。测试