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这一点。测试

相关文章
相关标签/搜索