201671010419 李敏 词频统计软件项目报告
实验二 软件工程个人项目
实验目的与要求
(1)掌握软件项目个人开发流程。
(2)掌握Github上发布软件项目的操作方法。
源码在Github的仓库主页链接地址:https://github.com/1996muzili/-
一.需求分析:
1.程序需要读入至少一个词,可读入任意英文文本。
2.至少可以统计10万词及以上的文本。
3.用户可以同时查询多个单词的统计,并显示出其个数和柱状图。
4.用户可以筛选单词频数大于n的单词,进行降序显示其单词及其频数。
5.统计文本所以单词及其词频,并在文本文件中按字典序进行显示。
二.功能设计:
1.基本功能:对输入的大于等于一个单词的英文,
实现其一个或多个单词的单词和词频统计并以柱状图的形式显示出来,
可以对多个单词进行条件查询并对其按降序或字典序进行显示。
2.扩展功能:对输入的英文文本,筛选出包含某个单词的句子。
(在英语单词的学习过程中,最好是结合真题去学习。那么就可以把历年真题进行扫描录入,然后筛选包含某个单词的句子。)
三.设计实现:
1.包含主函数main的主类:Driver.java:该类用于菜单栏的显示,读入要统计单词的文本文件和对单词进行排序;
2.定义功能的抽象类Functions.java: 该类用于定义功能,具体的实现在Function类,体现面向对象中的多态思想;
3.功能的实现类Function.java:该类用于柱状图的显示,前k个高频单词词频的显示,将单词及词频数按字典顺序输出到result.txt文件中。
四.程序设计流程图
五.测试运行:
六.代码片段精选:
七.总结
这个项目对于我来说真的是花了很大的力气,因为之前不是本专业的,也让我认识到软件开发的艰辛。从项目布置的那天起,我就开始查阅各种资料,向室友不断的请教,从需求分析,到功能设计,再到代码实现真的是困难重重,通过这次项目,锻炼了我的实践能力,同时也牢记了做一件事一定不能粗心,不然就会出现很多bug!也认识到自己很多的不足,自己一定要在课余时间去好好“恶补”java语言。
八.展示PSP:
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning | 计划 | 30 | 35 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 30 | 20 |
Development | 开发 | 160 | 270 |
Analysis | 需求分析(包括学习新技术) | 120 | 180 |
Design Spec | 生成设计文档 | 30 | 30 |
Design Review | 设计复审(和同事审核设计文档) | 20 | 15 |
Coing Standard | 代码规范(为目前开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 30 | 30 |
Coding | 具体编码 | 720 | 900 |
Code Review | 代码复审 |
30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 15 | 30 |
Test Report | 测试报告 | 30 | 35 |
Size Measurement | 计算工作量 |
10 | 15 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程改进计划 | 30 | 30 |