201671010455 邹立源 实验四 英文文本统计结对项目报告
博文简要信息表
| 项目| 内容
| ------ | ------ | ------ |
| 这个作业属于哪个课程 |http://www.cnblogs.com/nwnu-daizh/
| 这个作业的要求在哪里|https://www.cnblogs.com/nwnu-daizh/p/10569690.html
|课程学习目标 |熟悉软件开发整体流程,提升自身能力。
| 本次作业在哪个具体方面帮助我们实现目标|第一次体验一个完整的工程
一、任务一
要给出所点评作业的博客:https://www.cnblogs.com/zlyhoney/p/10561197.html
github链接地址:https://github.com/mcuntao/Hello-world/blob/master/WordCount.java
点评内容:他的博文上有流程图和测试运行截图,但是功能设计的描述不够完整,没有实现柱状图,流程图做的很好,使博文看起来很完整,从博客中看出来前期还是深入学习的,就psp而言,规划较为完美,值得我学习。
点评心得:看了同伴的博文,让我学习到了很多东西,需要后期一起加深学习,互相学习对方的优点,弥补自身缺点,争取这次结队项目完成顺利。同伴的博文写的很完整,代码也很规范。在以后的学习中,我应该多向他请教,好好提升自己的能力。
二、任务二
项目相关要求
(1)结对合作开发进度计划的要求:在项目正式开发之前,预估本次合作开发任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
(2)尝试采用汉堡包法实施项目结对中两个人的沟通。
(3)理解领航员和驾驶员两种角色关系:两人都必须参与程序的编码工作,在结对编程中两个人轮流做对方的角色。
(4)github仓库中的代码提交要体现两人合作过程,不能只看到最终的代码,至少有三次以上的代码签入记录, 能显示代码从最初的基本框架, 基本功能,到全部功能实现的构建过程 。
(5)编撰两人合作开发遵守共同认可的编码规范,并提交编码规范文档到github项目仓库根目录下。
(6)将包含任务2的源码以增量方式提交到指定同学注册Github账号下的项目仓库中,要求项目仓库中要能看到项目多次commit的记录,同时必须有两个人各自的commit记录。
实现过程
一.需求分析
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
2.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
3.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
4.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
二、功能设计
基本功能
1.用户输入任意英文文本,显示对应单词在文本中出现的次数和对应的单词。
2.用户从键盘输入高频词输出的个数n,按文本中词频数降序显示前n个单词的词频及单词,用户也可输入文本查询其出现次数。
3.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
扩展功能
读入读出文件功能(将文件进行读取,存放),输入一个文件的文件路径及文件名可以找到该文件并对该文件中的文本进行单词分解和单词词频统计。
三、设计过程
流程图

主要代码

四、测试结果


五、PSP展示
| PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) | 
|---|---|---|---|
| Planning | 计划 | 10 | 15 | 
| Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 8 | 
| Development | 开发 | 150 | 140 | 
| Analysis | 需求分析 (包括学习新技术) | 30 | 50 | 
| Design Spec | 生成设计文档 | 10 | 15 | 
| Design Review | 设计复审 (和同事审核设计文档) | 6 | 5 | 
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 5 | 5 | 
| Design | 具体设计 | 15 | 13 | 
| Coding | 具体编码 | 120 | 100 | 
| Code Review | 代码复审 | 15 | 12 | 
| Test | 测试(自我测试,修改代码,提交修改) | 20 | 15 | 
| Reporting | 报告 | 9 | 7 | 
| Test Report | 测试报告 | 5 | 5 | 
| Size Measurement | 计算工作量 | 1 | 2 | 
| Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 4 | 
六、总结及合作照片

在这次的词频统计软件开发过程中,主要将该软件分成三大模块:
1.文本的单词提取和词频统计、单词匹配后输出
2.根据单词词频排序后输出用户需要查看
3.根据单词字母表顺序排序后保存在文件中。
第一个模块在主函数中实现,而后面三个模块分别通过三个子函数来实现,之后在主函数中被调用,以此来达到软件设计的“模块化”设计。
通过本次试验让我深刻认识到软件开发的不易,单人操作非常不易,需要团队一起去合作,软件开发过程中计划往往赶不上变化,过程中浪费了很多的时间。我也认识到专业知识的不足,需要更加努力。
                
            
        
浙公网安备 33010602011771号