第三次作业 结对编程

结对编程完成WordCount

合作者:201731062301 201731062304(学号)

本次作业链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2882

一.Github项目地址及作业地址

   1.结对使用的Github项目地址:https://github.com/qili12/WordCount.git

   2.结对伙伴的作业地址:https://www.cnblogs.com/qi-li/p/10656808.html

二.结对过程及填写PSP表格

   1.结对过程

   先找好结对的小伙伴,阅读作业内容及要求,再进行商讨、做好分工以及填写 PSP表格中的预估耗时部分。本人负责实现基础功能,结对伙伴在本人的基础上负责实现新功能。完成后进行代码复审、单元测试、效能分析。

下图为两人结对编程照片:

 

   2.填写PSP表格

 PSP2.1

 Personal Software Process Stages

 预估耗时(分钟)

 实际耗时(分钟)

 Planning

 计划

 45

 45

 · Estimate  · 估计这个任务需要多少时间  45  45

 Development

 开发

 910

 1295

 · Analysis  · 需求分析 (包括学习新技术)  45  60
 · Design Spec  · 生成设计文档  30  45
 · Design Review  · 设计复审 (和同事审核设计文档)  20  60
 · Coding Standard  · 代码规范 (为目前的开发制定合适的规范)  30  30
 · Design  · 具体设计  45  60
 · Coding  · 具体编码  600  800
 · Code Review  · 代码复审  60  90
 · Test  · 测试(自我测试,修改代码,提交修改)  80  150

Reporting

 报告

 90

 115

· Test Report  · 测试报告  30  45
 · Size Measuremen  · 计算工作量  25  25 
 · Postmortem & Process Improvement Plan  · 事后总结, 并提出过程改进计划  35  45
   合计

 1045

 1455


    总结分析:在本次项目完成后,发现预估时间和实际时间相差很大,主要表现在开发阶段,其中又主要集中在具体编码和测试、修改中。在具体编码过程中困难重重,比如统计单词总数和‘!’、‘?’等字符需要用到正则表达式。于是上网查资料并对正则表达式的使用进行了学习,又如,统计词频并按频率由高到低、字母表顺序输出,需要用到Dictionary。在后期的代码复审以及修改也花了较多时间。

三.解题思路

  1.基础功能

    项目要求:统计文件字符数、单词总数、有效行数以及统计词频并按照频率由高到低、字母表顺序输出。

   (1)统计字符:即统计整个字符串的长度;

   (2)统计行数:将文件字符一行行传入来统计行数;

   (3)统计单词总数:采用正则表达式进行判断单词是否符合要求,若符合,则用列表存储;

   (4)统计词频并按照频率由高到低、字母表顺序输出:用Dictionary。

  2.新功能:结对伙伴博客

四.设计实现过程(见结对伙伴博客

五.制定的代码规范(见结对伙伴博客

六.改进(见结对伙伴博客

七.代码说明(见结对伙伴博客

八.单元测试(见结对伙伴博客

九.收获

  在本次结对编程过程,发现1+1>2,开发效率明显提高。在知识方面学习到很多,在结对伙伴的身上也学到很多。

    1.编程方面:比如,在统计单词总数时,一起查资料,学习正则表达式的使用;

    2.单元测试:本人学会了写单元测试;

    3.对GitHub的push操作更加的熟练;

    4.对自己的要求更高了。

posted @ 2019-04-05 11:08  3451  阅读(142)  评论(2编辑  收藏  举报