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