201671010429苏生玲《英文文本统计分析》结对项目报告

博文简要信息表:

项目 内容
这个作业属于哪个课程 软件工程
这个作业的要求在哪里 实验四 软件工程结对项目
我在这个课程的目标是? 熟悉软件开发整体流程,提升自身能力
本次作业在哪个具体方面帮助我们实现目标 第一次体验一个完整的工程

任务一:给出所点评作业的博客、github链接地址,点评内容和点评心得

我的结对小伙伴的作业博客

TA的github地址

点评内容和点评心得:

  • 点评内容

  • 点评心得:通过互相阅读博客,发现自己的不足,有助于提高自己的能力。

    任务二:

    我们的源码

    一.需求分析.

  • 实验2要求的功能实验二功能

  • 单词频数可视化柱状图:

  • 统计该文本行数及字符数;

  • 各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);

  • 可处理任意用户导入的任意英文文本;

  • 人机交互界面要求GUI界面(WEB页面、APP页面都可);

  • 附加分功能:统计文本中除冠词、代词、介词之外的高频词;

  • 附加分功能:统计前10个两个单词组成的词组频率。

    二.软件设计:使用类图.

三.核心功能代码展示:展示核心功能代码.

  • 代码片段:


//高频词的统计 整数k
         public ArrayList gaopin(TreeMap<String,Integer> tm,int k){
            
             ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(tm.entrySet());
             
             Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){  
              public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {  
               return o2.getValue() - o1.getValue(); 
                }  
               }); 
                 //输出前k个数
                for(int i = 0; i<k; i++){  
                 System.out.println(list.get(i).getKey()+ ": " +list.get(i).getValue());  
                    }     
               return list;
         }
         
         //统计文本行数与字符
         public List  statistics(String fileName) throws IOException{
         
            String line = fileName;
            System.out.println(fileName);
            File file = new File(line);
            InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
            BufferedReader br = new BufferedReader(isr);
          int charNum= 0 ;//字符数
          int wordsNum= 0;//数字数
          int lineNum = 0;//行数
          //以流的形式读入文件
          
          while( br.read()!= -1){
          String s = br.readLine();
          charNum+=s.length();
          wordsNum +=s.split(" ").length;
          lineNum ++;
          }
          isr.close();//关闭
          List list=new ArrayList();
          list.add(charNum);
          list.add(wordsNum);
          list.add(lineNum);
          
         // System.out.println("字符数:"+charNum+"\n单词数:"+wordsNum+"\n行数:"+lineNum);
          return list;
         }}
     



四.程序运行:程序运行时每个功能界面截图.

1.JSP主页面

2.浏览文件

3.统计完成


4.柱状图显示

5.relust.txt中存放显示

五. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍).

在结对过程中,我们两人本身并不熟悉彼此,从一开始对结对作业进行讨论,然后分配任务,由于我们两人并不属于同一宿舍,我们作业的完成尽量在有空的时候两人见面进行讨论。由于是第一次进行结对编程,缺乏经验,开始的效率并不是很高,我们也经常会出现进度不同步进度滞后的情况。在经历了坎坷和磨合的过程之后,我们两人的配合效率也得到了提高,双方互相反馈各自主要负责部分的问题,进行修改,最终也是顺利完成了结对项目。总体来说这次结对过程给了我很新鲜的体验,第一次与比较陌生的人配合一起完成一个项目,两人通过不断地磨合最终也算是磕磕绊绊地完成了这次作业,对我来说算是一次丰富的体验。


六. 提供此次结对作业的PSP.

PSP表格

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 18
Estimate 估计这个任务需要多少时间 20 20
Development 开发 200 250
Analysis 需求分析(包括学习新技术) 10 10
Design Spec 生成设计文档 30 25
Design Review 设计复审(和同事审核设计文档) 8 10
Coding Standard 代码规范(为目前的开发制定合适的规范) 15 20
Design 具体设计 20 15
Coding 具体编码 180 200
Code Review 代码复审 20 15
Test 测试(自我测试,修改代码,提交修改) 10 15
Reporting 报告 30 25
Test Report 测试报告 30 25
Size Measurement 计算工作量 5 3
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10 8

七.小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。.

在结对过程中,通过两人的讨论配合,可以更高效的确定方案,尤其是在确定程序处理算法的过程中两人可以共同收集可用的算法并讨论确定最终算法,结对的过程很大的提升了这一过程完成的效率。两人在结对过程中可以学习并养成更好地代码规范,来确保自己的搭档可以顺畅的阅读并理解对方的代码。两人可以从对方可以互补缺点,从对方身上学到自己所不具备的技能。可以算是达到了1+1>2的效果,但是仍然存在缺点,结对过程中我们对某一问题出现争议的时候,会降低效率。

猜你喜欢

转载自www.cnblogs.com/scottoo123/p/10642980.html