201671010408-达星斗-《英文文本统计分析》结对项目报告
实验四 英文文本统计分析
一、博文简要信息表:
项目 | 内容 |
---|---|
软件工程 | 任课教师博客主页链接:https://home.cnblogs.com/u/nwnu-daizh/ |
作业要求: (1)体验软件项目开发中的两人合作,练习结对编程。 (2)掌握Github上增量发布软件的操作方法。 |
作业链接地址:https://www.cnblogs.com/nwnu-daizh/p/10569690.html |
课程学习目标: 掌握Github上增量发布软件的操作方法。 |
熟悉软件开发整体流程,提升自身能力 |
往Github上上传代码,让我们学习到了Github的基本操作方法。 | 第一次体验一个完整的工程 |
二、任务1:
要给出所点评作业的博客:https://www.cnblogs.com/liuzhenhua1996/p/10540940.html
github链接地址:https://github.com/lzh2540330731/-/blob/master/新建文本文档.java
点评内容:你的博文上有流程图和测试运行截图,而且流程图做的很好,使博文看起来很完整,这一点很值得我学习。
点评心得:看了同伴的博文,让我学习到了很多东西,同伴的博文写的很完整,代码也很规范。在以后的学习中,我应该多向他请教,好好提升自己的编程能力。
三、任务2:
需要给出结对项目源码在Github的仓库主页链接地址:https://github.com/daxd123/mygit/blob/master/main.java
博文作为结对项目实施过程的文字资料,请完整包含下面7个部分:
a.需求分析:
①在实验二的基础上实现以下功能;
②统计该文本行数及字符数;
③各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
④可处理任意用户导入的任意英文文本;
⑤人机交互界面要求GUI界面(WEB页面、APP页面都可);
⑥附加分功能:统计文本中除冠词、代词、介词之外的高频词;
⑦附加分功能:统计前10个两个单词组成的词组频率。
b.软件设计:
c.核心功能代码展示:
while ((thechar = isr.read()) != -1) {
char letter = (char) thechar;
if ((letter >= 'a' && letter <= 'z')
|| (letter >= 'A' && letter <= 'Z')) {
sb.append(letter);
} else if (sb.length() != 0) {
String theword = new String(sb);
if (wordList.containsKey(theword)) {
wordList.put(theword, wordList.get(theword) + 1);
} else {
wordList.put(theword, 1);
}
sb.delete(0, sb.length());
}
}
d. 程序运行:
e. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍):
f. 提供此次结对作业的PSP:
任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|
计划 | 20 | 25 |
估计这个任务需要多少时间,并规划大致工作步骤 | 15 | 28 |
开发 | 240 | 310 |
需求分析 (包括学习新技术) | 20 | 25 |
生成设计文档 | 20 | 25 |
设计复审 (和同事审核设计文档) | 6 | 9 |
代码规范 (为目前的开发制定合适的规范) | 10 | 12 |
具体设计 | 25 | 26 |
具体编码 | 130 | 160 |
代码复审 | 20 | 40 |
测试(自我测试,修改代码,提交修改) | 40 | 80 |
报告 | 90 | 110 |
测试报告 | 20 | 20 |
计算工作量 | 30 | 40 |
事后总结 ,并提出过程改进计划 | 40 | 60 |
四、小结感受:
①结对中刘振华充当领航员角色,达星斗充当驾驶员角色。先是一起讨论做了大体类的设计和算法流程设计,接着我们就开始一起编程。两个人编程还是比一个人来的效率高些,有问题一起讨论,错误也第一时间被指出,特别是一开始的讨论,就先定义和封装了几个要用到的函数,避免了后期推翻修改,提高了开发效率。不过缺点也是有的,就是一个人在编程的时候,另一个人不好打扰,默默滴看,后面发现没有完全按照领航员的设计来实现。函数没有完全按照预期抽象出来,导致效能分析处有问题!设计当中的接口和新增功能未实现,但类图当中的设计将其抽象出来方便了后续的代码优化。
②这次的体会真的很深,实打实的结对,两人分工合作完成一个看似不难的任务,实际执行过程中还是遇到不少困难,结对的最大好处就在此处体现:在遇到困难的时候总是可以通过提醒和讨论解决之!
③两个人的合作总是胜过一个人埋头苦写代码的,通过两个人结对的交流和探讨,会比平常一个人设计节约了不少的时间。由于我们编程能力还是很生疏,在编程期间也在网上找了很多资料,也找了其他能力强一点的同学给我们进行了指导。