• 201671010437+王小倩+《英文文本统计分析》结对项目报告



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

    ###二:实验目的与要求##

    (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。

    (2)掌握Github上增量发布软件的操作方法。


    ###三:实验步骤##

    任务1: 两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

         (1)对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究。
         (2)克隆结对方项目源码到本地机器,阅读并测试运行代码,结合运行结果评论程序代码,评论要点包括:软件结构、代码规范、功能实现、人机交互等。
         (3)尝试利用github中的Fork、Clone、Push、Pull request、Merge pull request对结对方仓库中的源码进行合作修改。
    
    结对同伴的博客:杜娣-实验二
    点评内容:

    读完你的博文,发现你写的博文结构清晰,内容标题醒目,使人一目了然。从博文内容上来看,需求分析很全面,写出了该系统的基本功能,也使后续的工作过程清晰,功能明确。
      但也有一些不足之处,比如:
    引用
    功能实现
    1、主要实现的功能:从磁盘中读取英文文本,对文本进行处理,统计单词的个数,最后按个数排序

    引用

    设计实现

    1、在本地磁盘创建一个文本文件

    2、通过map集合,以键值对的方式去存储单词和出现的词数

    3、定义一个文件字节,去读取磁盘中的文件

    4、创建一个spilt数组,用来分割字符串,通过调用map的key值获取value,进行单词统计

    5、利用treemap实现comparator接口,对map集合进行排序

    这两部分内容写的不是很具体,在功能实现方面,只表述了统计单词个数以及排序,但没有写出指定单词和高频单词的统计,以及最后将文本的所有单词输出到文件等功能,功能设计应该按照需求分析来展开写。在设计实现方面,应该写出创建了几个类,这些类分别负责什么功能和类之间的关系等,详细内容可以参考老师的作业要求。对比PSP中的时间比例发现,有些时间规划不是很合理,所以希望你能下次改进,加油!

    点评心得: 读完同伴的博文,发现了有很多亮点值得自己去学习,比如博文结构顺序清晰,内容标题醒目,使人一目了然。从博文内容上来看,项目需求分析很全面,写出了该系统的基本功能,也使后续的工作过程清晰,功能明确。
    ####任务2:采用两人合作方式,设计开发一个英文文本统计分析软件。
    ###四:实验内容
    1. 需求分析

    (1)实验2要求的功能;

    (2)单词频数可视化柱状图要求是以下样式:

    (3)统计该文本行数及字符数;

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

    (5)可处理任意用户导入的任意英文文本;

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

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

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

    2. 功能设计
    该程序主要实现的功能是进行英文文本的统计,基于实验二进行,实现统计该文本行数及字符数;各种统计功能均提供计时功能,显示程序统计所消耗时间,可处理任意用户导入的任意英文文本。
    
    3. 设计实现(展示核心功能代码)

    (1)统计单词数量并输出

    ![](https://img2018.cnblogs.com/blog/1614552/201904/1614552-20190403000950367-1361581754.jpg)

    (2)绘制柱状图

    ![](https://img2018.cnblogs.com/blog/1614552/201904/1614552-20190403001317346-680930289.jpg)

    (3)显示用户需要查询的单词词频数

    ![](https://img2018.cnblogs.com/blog/1614552/201904/1614552-20190403001344251-1740215207.jpg)

    4. 测试运行(各个功能实现界面截图)






    ![](https://img2018.cnblogs.com/blog/1614552/201904/1614552-20190403001916828-1367103490.jpg)

    5. 结对过程(两人在讨论、细化和编程时的结对照片)

    6. 小结感受:两人合作真的能够带来1+1>2的效果吗?

    通过实验二的个人项目和此次的结对项目,我们不难发现,耗时最多的就是编程过程和修改bug。如果是个人项目,难免会因为个人的疏忽,输入的错误,以及设计思路的偏差,往往会让我们的程序无法顺利进行下去,而结对编程的好处就在于,在编写代码时,一旦出现输入错误,就会有人及时的提醒。还有在设计代码时,有个同伴可以一起讨论,融合两个人不同的见解和观点,我们往往可以得出更加准确且更加高效的设计思路,这大大提高了我们编程的效率,而且我们二人一起讨论出来的编程思路,也使得我们的代码功能更全面,效率更高,所以我认为1+1肯定>2。

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

    项目源代码请点击这里查看...

  • 相关阅读:
    Spring cloud实现服务注册及发现
    使用spring cloud实现分布式配置管理
    spring cloud教程之使用spring boot创建一个应用
    7天学会spring cloud教程
    微服务开发的12项要素
    一句话概括下spring框架及spring cloud框架主要组件
    翻译-服务注册与发现
    翻译-微服务API Gateway
    微服务分布式事务的一些思考
    解决不能正常访问workerman的问题
  • 原文地址:https://www.cnblogs.com/Pretend/p/10612703.html
Copyright © 2020-2023  润新知