https://github.com/SkateCloud/wc
PSP表格
PSP2.1 | PSP阶段 | 预估耗时 (分钟) | 实际耗时 (分钟) |
Planning | 计划 | 30 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 2小时 | 2小时 |
Development | 开发 | 2小时 | 2.5小时 |
· Analysis | · 需求分析 (包括学习新技术) | 30 | 30 |
· Design Spec | · 生成设计文档 | - | - |
· Design Review | · 设计复审 (和同事审核设计文档) | - | - |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
· Design | · 具体设计 | 10 | 10 |
· Coding | · 具体编码 | 1h | 1h |
· Code Review | · 代码复审 | 10 | 10 |
· Test | · 测试(自我测试,修改代码,提交修改) | 1h | 1h |
Reporting | 报告 | 1h | 1h |
· Test Report | · 测试报告 | ||
· Size Measurement | · 计算工作量 | ||
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 6.8h | 7.3h |
解题思路
* 基本功能
1. 先实现基本功能,最开始应该是进行 args 参数的解析,拿到操作函数的列表,以及带操作的文件
2. 把文件读成String,然后对String进行操作,拿到字符,行数,以及单词数
3. 如果指定写出文件,即有-o函数,则将结果写入指定文件
* 扩展功能
1.对于-s,先列出目录下所有文件,如果存在文件夹就递归处理,否则再进行判断
2.对读入的String进行分析,完成-a
3.将stop.txt内包含单词存入哈希表,对string识别出的单词进行剔除,再统计。
* 测试
测试时应该达到尽可能覆盖各种路径的目的,测试结果应该便于观察
* 打包
程序设计实现过程
共有三个类:WordCount:处理主类; Arg: args参数处理类; UnitTest:单元测试类
函数:start:主函数,包含args的初步解析以及其他函数的调用;findArg: 搜素参数;findFiles: 查询给定路径/模糊路径的文件;readFile:读入文件并转为String;parseArgs:将args参数解析为Arg的列表;
代码说明:
测试设计过程
对于基本操作产生2个测试用例,复杂操作1个测试用例,多操作1个测试用例,共产生11个测试用例
参考文件链接:
https://stackoverflow.com/questions/4330936/how-can-i-convert-a-jar-to-an-exe