201671010418 刘佳 《英文文本统计分析》结对项目报告

《英文文本统计分析》结对项目报告:

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

一:给出所点评做业的博客、github连接地址,点评内容和点评心得

二:结对项目源码在Github的仓库主页连接地址

点我查看源码html

1.需求分析

  • 实验2要求的功能:点我查看实验二
  • 单词频数可视化柱状图
  • 统计该文本行数及字符数
  • 各类统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms)
  • 可处理任意用户导入的任意英文文本
  • 人机交互界面要求GUI界面(WEB页面、APP页面均可)
  • 附加分功能:统计文本中除冠词、代词、介词以外的高频词
  • 附加分功能:统计前10个两个单词组成的词组频率

2.软件设计:使用类图

3.核心功能代码展现:展现核心功能代码

  • 代码片断:

//高频词的统计 整数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;
         }}

4.程序运行时每一个功能界面截图

JSP主页面

浏览文件

统计完成


柱状图显示

relust.txt中存放显示

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

在结对过程当中,从一开始对结对做业进行讨论,而后分配任务,因为咱们两人并不属于同一宿舍,咱们做业的完成尽可能在有空的时候两人见面进行讨论。
因为是第一次进行结对编程,缺少经验,开始的效率并非很高,咱们也常常会出现进度不一样步进度滞后的状况。
在经历了坎坷和磨合的过程以后,咱们两人的配合效率也获得了提升,双方互相反馈各自主要负责部分的问题,进行修改,最终也是顺利完成告终对项目。
整体来讲此次结对过程给了我很新鲜的体验,第一次与比较陌生的人配合一块儿完成一个项目,两人经过不断地磨合最终也算是磕磕绊绊地完成了此次做业,对我来讲算是一次收获颇丰的体验。git


6. 这次结对做业的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

7.小结感觉:两人合做真的可以带来1+1>2的效果吗?经过此次结对合做,请谈谈你的感觉和体会。

结对编程反思github

  • 两我的合做真的能够达到1+1>2的效果,收获的不只是一个项目,一次做业,而是团体合做的宝贵的过程和经历。
    结对编程的优势:
  • 在结对过程当中,经过两人的讨论配合,能够更高效的肯定方案,尤为是在肯定程序处理算法的过程当中两人能够共同收集可用的算法并讨论肯定最终算法,结对的过程很大的提高了这一过程完成的效率。
  • 两人在结对过程当中能够学习并养成更好地代码规范,来确保本身的搭档能够顺畅的阅读并理解对方的代码。
  • 两人能够从对方能够互补缺点,从对方身上学到本身所不具有的技能。
    结对编程的缺点:
  • 结对过程当中两人会对某一问题出现摩擦,没法统一意见的状况会下降效率,延长时间
  • 结对过程因为两人所了解熟悉的方面不一样可能会演变成各自完成各自的工做而难以顾及对方的工做。
    队友的优缺点
  • 优势:很是刻苦努力,工做能力很强,完成工做的效率很高,很负责,常常提醒我完成进度。学习能力很强,不了解的内容可以在短期内完成学习。
  • 缺点:由于对Java语言不够了解和熟练,在编程及算法的能力上有不少欠缺。
    本身的优缺点
  • 优势:身为计算机学院的学生,对算法和语言有积累,在对方给本身提出要求和提醒后及时的反馈并完成本身的任务。
  • 缺点:能力薄弱,不少功能和相关知识不会,须要查大量资料。能动性较低,如不是队友提醒,可能会使进度滞后不少。
相关文章
相关标签/搜索