201671010431唐璐+《英文文本统计分析》

一、实验目的与要求

  • 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming)。
  • 2.掌握Github上增量发布软件的操作方法。

博文简要信息表

二、实验内容和步骤

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

(一)具体要求如下:

1.对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究。

2.克隆结对方项目源码到本地机器,阅读并测试运行代码,结合运行结果评论程序代码,评论要点包括:软件结构、代码规范、功能实现、人机交互等。

3.尝试利用github中的Fork、Clone、Push、Pull request、Merge pull request对结对方仓库中的源码进行合作修改。

(二)过程如下:

  • 点评博客:https://www.cnblogs.com/chenjing1/p/10557467.html-
  • 结对方的Github地址: https://github.com/chenjingjinglove/Chenjing
  • 点评内容:
    读完博文后:
    1.博文结构相对完整,排版规范,但最后未对PSP做总结;
    2.项目实现上功能描述简单,没有实现柱状图功能;
    3.源码上传GitHub出现zip格式问题;
    最后java编程能力需加强,学习态度认真,继续加油!
  • 点评心得:
    通过阅读博文和学习对方项目内容,让我深深体会到陈靖认真的学习态度,尽管编程能力欠缺,但是细心请教学长学姐,这一点是值得学习的,博文规范清晰,再反思我的项欠缺了很多,还要学习的地方太多,点评对方的项目,使我们共同学习,共同进步。

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

(一)需求分析:

1.实验2要求的功能;

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

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

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

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

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

(二)核心功能代码展示:

  • 高频词的统计

  • 柱状图的实现

  • 行数与字符数的统计

(三)程序运行结果:

  • 词频统计

  • 柱状图实现

  • 行数与字符数实现

  • 将统计结果返回到result.txt文档中

(四)描述结对的过程,提供两人在讨论、细化和编程时的结对照片。

    1.结对过程:首先在看到老师发布的实验任务书时,我先是找到我的结对方,接下来就开始了我们的计划。因为结对编程在开发过程中,需要有两个角色,分别是“驾驶员”和“领航员”,且驾驶员的作用是控制鼠标和键盘的使用,即负责编码工作,而领航员得作用是坐在驾驶员一旁观察和思考,即负责检查错误、考虑解决方案。但鉴于我们两个的Java编程能力都比较薄弱,一人完成不了编码的任务,所以在整个开发过程中,我们都是采用两人互相合作的方式,这两个角色的任务没有那么分工明确,但在开发过程中,两个人均付出了自己的努力。
    下面就是我们此次结对编程的步骤:首先我们在拿到题目后,根据老师的需求,我们通过坐在一起讨论的方式,明确了设计思路,并编写了需求分析(由于老师在实验任务书中的需求分析写的比较明确,所以这个阶段用时不是很多);紧接着就是具体编码这一步骤了,这一阶段对我们来说是最困难的,在这一阶段中,我们互相吸取结对方比较好的意见并采用,在遇到技术盲区时,我们也是各自先查找资料,各自先学习,在两个人都查找完成后,再坐在一起发表各自的想法,最后再用于项目中;然后就是代码复审和测试阶段,在这一阶段中我是负责代码复审的工作,而结对方负责项目的测试阶段,在双方的工作都完成后,再坐在一起说出自己的意见,即我们发表一下我们觉得这个项目有什么不足的地方,且有哪些地方是可以改进的;最后就是撰写设计报告了,即写博文,这一阶段我们先是自己写自己的,在双方都写完后,再坐在一起互相看对方的博文,并指出结对方的博文的不足之处,再总结一下这一项目的开发对我们的学习作用。通过以上结对编程步骤,我们这一组的结对编程任务就完成了,当然在这一过程中,我们遇到了很多不懂的问题,最后的任务完成的也不是很完美,但我们会继续努力。

下面是我们两人在讨论、细化和编程时的结对照片:

(五)此次结对作业的PSP展示:

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

(六)小结感受:

    通过此次实验,我们发现在整个项目开发过程中遇到的问题还是很多。从我们的PSP展示可以看出来,在开发和具体编码阶段,我们计划所需要的时间和实际完成需要的时间相差太大,也用时最多,原因是我们两人的Java编程能力都比较薄弱,需要学习新的知识,所以导致我们用时最多。在开发过程中,我们相互讨论,互相帮助,互相吸取对方好的建议和意见,这也锻炼了我们的责任心,包容心,因为在这个过程中,难免两人会有不同的想法,这就需要两人相互沟通,交流,统一意见。
    整个实验下来,我也深刻感受到结对编程的好处:首先可以增强我们的沟通能力和团队凝聚力;其次可以增加代码的质量,在开发过程中减少代码的错误率;最重要的一点是可以学习自己以前没接触过的新的知识。所以此次实验对我们的帮助很大,希望以后还可以一起进步!

源码地址:

posted @ 2019-04-03 02:07  唐璐  阅读(250)  评论(2编辑  收藏  举报