一。小组github地址
小组github地址:https://github.com/kawoyi/Advanced-WordCounter
PSP表格:
接口的实现:我负责的是输出模块,接收map,输出到指定目录下的文件夹,以及对输出项目的排序由compare()构成;
//降序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { int p1=o1.getValue(); int p2=o2.getValue(); int p=p1-p2; if(p>0) { return -1; } else if(p==0) { return 0; } else return 1; }
for (Map.Entry<String, Integer> mapping:list) { //向result.txt写结果 int temp=0; if(temp<100) { bw.write( mapping.getKey() + " " + mapping.getValue()); bw.newLine(); } temp++; } bw.close();
测试方法由白盒测试和黑盒测试组成,白盒测试采用语句覆盖,流程是比较线性的,很容易就覆盖所有分支,之后补了黑盒测试考虑多种情况下的排序函数的验证。
测试脚本实例
测试用1-11
方法只有一个,所有的测试都围绕这一个方法进行。
二。扩展功能
开发规范分析:
邹欣老师对代码规范和代码复审的讨论:http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
下面选取其中两个规范进行分析
//然后通过比较器来实现排序 Collections.sort(list,new Comparator<Map.Entry<String,Integer>>() { //降序排序 public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2)
1.分行:恰当分行使代码简单明了,层次清晰
2.命名:使用了驼峰命名法,参数名统一
交叉代码评审:
对象:U201517111 李凌风
public void analyse()//主要功能实现 { strToken = ""; // 置strToken为空串 while (i < buffer.length()) { getChar(); getBc(); if (isLetter()) { // 如果ch为字母 while (isLetter() ||isConnector()) { concat(); getChar(); } validLize(); retract(); // 回调 if(!map.containsKey(strToken)) { map.put(strToken, 1) ; }else{ int temp=map.get(strToken)+1; map.put(strToken, temp); } System.out.println(strToken); strToken = ""; } } }
这份代码层次清晰,虽然用了这么多的括号,却丝毫不影响代码阅读,符合邹欣老师提到的规范值得学习。
组内代码评审:
小组成员的代码基本没有什么大问题,基本功能可以很好的接洽在一起,在功能性方面有待加强。
贡献率:0.25