### 一:实验名称:软件工程结对项目
### 二:实验目的与要求 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。 (2)掌握Github上增量发布软件的操作方法。
### 三:实验步骤 任务一:两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价。 任务二:采用两人合作方式,设计开发一个英文文本统计分析软件。 任务三:完成博文作业。
### 四:实验内容

|||||||||||
|:----|:----|
| 项目| 内容|
| 这个作业属于哪个课程 |http://www.cnblogs.com/nwnu-daizh/|
| 这个作业的要求在哪里 | https://www.cnblogs.com/nwnu-daizh/p/10569690.html|
| 课程学习目标 | 熟悉软件开发整体流程,提升自身能力。|
| 本次作业在哪个具体方面帮助我们实现目标 | 第一次体验一个完整的工程|

任务一:作业互评

    结对对象评论链接地址:https://www.cnblogs.com/wangxuegang/p/10558164.html
    结对对象github源代码链接地址:https://github.com/201671010436/wangxuegang
    点评内容:
    博文。。作为结对对象,认真阅读过你的博文之后,有让我学习的地方,也有在我看来一些不足之处。从博文结构来看,大体实现了题目要求的各个模块,只是其中对PSP表的总结有所欠缺,当然,这也是我的不足;从博文内容来看,你的需求分析很全面,代码编写简洁明了,只是其中些许功能未能实现比如柱状图,对程序模块化分析比较模糊,这可能也是比较遗憾的方面;从PSP中计划共完成需要的时间与实际完成需要的时间两列数据的差异化分析,我们在编码方面的确欠缺的很多,也许,几行代码几分钟的事情,我们确需要两倍三倍甚至更长的时间来完成,不过,知不足,知改进,一起成长进步,加油。
    程序。。 对于你的程序编写,书写格式基本规范,一些代码还做了相应的注释,让人一目了然,类wordcount的程序段实现了对单词的读取,存储以及记录这些基本功能,希望在此基础上还能   实现更多的功能。
    阅读心得:通过阅读结对对象的博文作业,发现了程序编写这块内容都是我们所欠缺的,从一定意义上说,代码编写功底比较差,从而在作业的完成,功能的实现上都需要花费大量的时间。对此,有则改之无则加勉,在今后的学习中还需努力。

任务二:采用两人合作方式,设计开发一个英文文本统计分析软件

  • 需求分析
    1、实验二的功能;
    2、单词频数可视化柱状图要求是以下样式:

      3、统计该文本行数及字符数;
      4、各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
      5、可处理任意用户导入的任意英文文本;
      6、人机交互界面要求GUI界面(WEB页面、APP页面都可);
    
  • 软件设计说明
    本次项目主要目的是实现可导入任意英文文本文件,统计该英文文件中单词数和各单词出现的频率(次数),并能将单词按字典顺序输出;将单词及频率写入文件;实现GUI界面;将单词及频率写入指定位置。
    算法设计
    1) 文章分割成单词
    简单概述下算法:把从文件提取的文章存放在String字符串中,然后进行逗号,句号,空格分割,基本上可以分割成单词。
    2)按字典排序算法
    这里字符串的排序和数字的排序一样。
    3)统计词频
    利用hashmap的compareTo()方法,map存在则put并count++(计数),不存在则put进去。

  • 核心功能代码展示










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

1、统计文本单词总数


2、统计单词出现的次数 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230306841-1555077264.jpg)
3、统计出现频率最高的前8个单词结果 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230548889-1819248009.jpg)
4、统计文本行数 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230625774-1560902471.jpg)
5、GUI界面 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230714085-1048553918.jpg)


6、单词频数可视化柱状图 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230828847-1092236344.jpg)
7、输出到文件result.txt中 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401230907879-809056348.jpg)
![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190401231530128-1211122989.jpg)
8、在GitHub中的仓库管理以及代码的共同合作及修改 1)代码克隆,检查及修改 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190402102802136-680789032.jpg)
2) issues交互 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190402103155781-1808344494.jpg)
![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190402103209837-1912849099.jpg)
3) pull request请求与项目同步 ![](https://img2018.cnblogs.com/blog/1614526/201904/1614526-20190402103305994-1375958601.jpg)
9、所用集成开发环境eclipse。 使用的JDK版本为 jdk8u161(jdk1.8)。 数据库SQL serve2016。
  • 结对过程、结对照片

  • 提供此次作业的psp

|||||||||||||
|:--|:--|:--|:--|
|psp2.1|任务内容|计划总共需要完成的时间(min)|实际完成需要的时间(min)|
|Planning|计划|10|20|
|Estimate|估计需要时间,并计划大致工作步骤|10|10|
|Development|开发|200|240|
|Analysis|需求分析|10|15|
|Design Spec|生成设计文档|30|25|
|Design Review|设计复审|10|8|
|Coding Standard|代码规范|20|25|
|Design|具体设计|20|30|
|Coding|具体编码|360|420|
|Code Review|代码复审|30|40|
|Test|测试|15|20|
|Reporting|报告|8|10|
|Text Report|测试报告|5|8|
|Size Measurement|计算报告量|5|5|
|Postmortem&Process Improvement plan|总结,并提出改进计划|15|20|

  • 小结感受
    此次博文作业我个人认为达到了1+1>2的效果,结对项目无论从难度、功能、任务量上都比个人项目更加有挑战性。我的结对对象在这次的结对过程中起到了主导作用,从他的身上学到了很多,比如对待作业的态度、编写代码比我熟练的程度、知道的知识范围的广度都是我自身没有达到的,俗话说,三人行必有我师,每个人都有优点,结对伙伴对我的影响我将有则改之无则加勉。

结对项目源码在Github的仓库主页链接地址:https://github.com/201671010436/jieduibiancheng

posted on 2019-04-02 20:47  陈倩倩  阅读(201)  评论(1)    收藏  举报