结对第二次—文献摘要热词统计及进阶需求
作业格式
- 作业博客链接: 结对第二次—文献摘要热词统计及进阶需求
- 结对学号: 221600136 | 221600137
- Fork同名仓库的GitHub项目地址: GitHub地址
1.PSP表格
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
• Estimate | • 估计这个任务需要多少时间 | 300 | 450 |
Development | 开发 | 150 | 300 |
• Analysis | • 需求分析 (包括学习新技术) | 20 | 35 |
• Design Spec | • 生成设计文档 | ||
• Design Review | • 设计复审 | ||
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 35 | 20 |
• Design | • 具体设计 | 30 | 50 |
• Coding | • 具体编码 | 100 | 300 |
• Code Review | • 代码复审 | 20 | 105 |
• Test | • 测试(自我测试,修改代码,提交修改) | 20 | 55 |
Reporting | 报告 | 100 | 120 |
• Test Report | • 测试报告 | ||
• Size Measurement | • 计算工作量 | ||
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | ||
合计 | 795 | 1465 | |
2.解题思路 |
- 需求分析
- 拿到题目的时候大概阅读了一遍,和队友对进行了功能的分类 :
①wordCount的基本需求是对文件文本的热词统计,即对文件中的key进行类似字符串的统计和输出。
②对于接口封装的设计,不同的人有不同的设计风格,我和队友两个人讨论并根据代码的设计给出框架。
③基于两个人的水准对进阶需求找不到解决的方法,主要基于基础的代码的修改过于繁琐和新功能的难以实现所以止步不前。
- 拿到题目的时候大概阅读了一遍,和队友对进行了功能的分类 :
- 代码的编写与需求的实现
- 根据基本需求,代码部分主要分成了两大部分,Main和Count方法。Main中含有主题要实现的部分,Count则是含有多种实现统计的函数来满足需求。
- 对于一些不熟悉的函数通过网上阅读学习,两个人对Main共同提议,一个人编写,函数方法方面则是两人编写不同的方法。
- 最后对于实现的代码在进行测试和修改。
3.设计实现过程
- 基本需求
项目结构
221600136&221600137
|- src
|- Main.java(主程序,可以从命令行接收参数)
|- Count.java(包含其它自定义函数,可以有多个)
函数之间的关联:
主要有两个类 Main.java 和 Count.java - 单元测试
- 测试内容包括词的类型不同、长度的不同等情况,以保证程序满足基本需求,并检查代码的可靠性
- 单元测试代码图(含input、result和测试结果)
- 代码内容展示及其内容简介
- 主函数:读取文件,输出结果及写入文件
- 写入文件
- 主函数:读取文件,输出结果及写入文件
- 读取文件
- 获取单词
- 获取单词数
- 获取词组
-
将词组频率前10排列
-
统计字符数
-
统计有效行数
-
本次作业总结心得
- 根据这次作业的分类,基础和进阶,在基础设计的时候就出现了许多问题,所以在进阶上做不出相应的代码,还有就是Github,个人不习惯也不会用,私底下询问同学才解决,所以就放弃了进阶需求阶段。
- 对于221600136的评价:虽然在基本的框架和大体思路上有些许的偏差,但是在理解之后的动手能力很强,比如整体的设计思路和关键代码段的编写有着很好的出发点。
- 对于221600137的评价:我觉的我队友在问题的分析和整体需求的分析有着很好的理解,即使在入手编写方面不够,但是清楚的设计思路是值的学习的。