第四周个人作业:WordCount优化
一、GitHub地址
|
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
|
Planning |
计划 |
20 | 20 |
|
· Estimate |
· 估计这个任务需要多少时间 |
20 | 20 |
|
Development |
开发 |
450 | 470 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
60 | 50 |
|
· Design Spec |
· 生成设计文档 |
40 | 30 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
60 | 40 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
40 | 30 |
|
· Design |
· 具体设计 |
40 | 40 |
|
· Coding |
· 具体编码 |
120 | 150 |
|
· Code Review |
· 代码复审 |
30 | 30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 | 100 |
|
Reporting |
报告 |
100 | 90 |
|
· Test Report |
· 测试报告 |
60 | 50 |
|
· Size Measurement |
· 计算工作量 |
20 | 10 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 | 30 |
|
合计 |
570 | 580 |
三、文件输出接口的实现
输出功能是将count and sort模块产生的计数结果输出到指定文件或默认文件,实现代码如下:
1 public void writeFile(String fileName) 2 { 3 try { 4 FileWriter w = new FileWriter(fileName); 5 int i=0; 6 for(;i < sList.size();i++) 7 { 8 w.write(sList.get(i)); 9 w.write("\r\n"); 10 } 11 w.close(); 12 } catch (IOException e) { 13 System.out.println("呵呵,在写文件过程中出现了错误!!!"); 14 e.printStackTrace(); 15 } 16 }
需求说明中对输出的要求:
(1)输出单词词频从高到低排序的前100个(从1到100),每行分别给出一个单词及其词频,单词按小写形式给出,单词和词频之间空一格;
(2)对于单词词频相同的情况,按照单词所包含的每个字母从a到z的次序依次排列;
(3)输出文件末尾多余的换行符应去除。
这些要求的实现均在main模块中得以实现。
四、测试用例设计

五、测试质量评价
输出模块的测试较为简单,主要是因为这部分的要求比较少,用到的测试思想也不复杂,基本的边界值、等价类、判定等方法就可以解决绝大部分要求。
另外,这部分的测试用例比较好覆盖,同时它的重复率也会比较高。
六、小组评价得分
0.20分
七、扩展任务
(1)代码规范说明
代码规范参考了参考了邹欣老师在讲义“现代软件工程讲义 3 代码规范与代码复审”中提到的规范其中对于类定义,变量名,注释等等部分的说明,同时也注重其中关于代码审查的部分。
(2)静态代码扫描
myEclipse开发环境的代码静态检查机制
(3)同组代码评审
我阅读了同组王志峰同学的代码,它的逻辑清晰,代码格式符合规范,文件分类和命名也让人一目了然,当然程序运行的也没有问题。
但我感觉还是存在一些问题:
他的注释不够详细,只在关键模块前加以说明注释,内部关键代码比如循环、条件判断,没有给出说明,不那么易懂。
八、小结
这一次的作业比上一次的更体现了测试的作用,还记得在上一次作业中,我注重的还是怎么去实现这些功能,从而忽视了代码可能存在的bug,可能它们很隐蔽,所以在调试的时候没有被发现。
这一次作业中,我更注重测试用例的选取,再阅读一遍遍代码时,想想关键部分会不会出现bug,比如循环条件判断时的边界值问题等。这样一连串的搜索后,发现测试真的是很重要,像以前一样埋头写代码很可能出现一些未知的bug,从而不久后又需要回头重构代码,这样就会严重影响开发效率。
九、参考文献
http://blog.csdn.net/tw19811220/article/details/41040937
http://blog.csdn.net/etjnety/article/details/7842618
http://www.cnblogs.com/math/p/se-tools-001.html
浙公网安备 33010602011771号