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
相关文章
相关标签/搜索