一.Github地址
https://github.com/Adogssky/WordCountGroupWork
二.psp表格
PSP2.1表格
|
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
|
Planning |
计划 |
||
|
· Estimate |
· 估计这个任务需要多少时间 |
300 | 370 |
|
Development |
开发 |
||
|
· Analysis |
· 需求分析 (包括学习新技术) |
30 | 30 |
|
· Design Spec |
· 生成设计文档 |
60 | 45 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 | 20 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
30 | 30 |
|
· Design |
· 具体设计 |
30 | 30 |
|
· Coding |
· 具体编码 |
45 | 30 |
|
· Code Review |
· 代码复审 |
30 | 30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 | 75 |
|
Reporting |
报告 |
||
|
· Test Report |
· 测试报告 |
60 | 45 |
|
· Size Measurement |
· 计算工作量 |
20 | 20 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 | 30 |
|
合计 |
350 | 375 |
获取输入之后进行词频统计,算法原理非常简单,不在此赘述,代码很短,如下
public void count(){
for(String p:input){
if(map.get(p) == null){
map.put(p,1);
}
else{
int tmpCount = map.get(p) + 1;
map.remove(p);
map.put(p,tmpCount);
}
}
for(Map.Entry<String, Integer> entry : map.entrySet()){
list.add(entry);
}
list.sort(new Comparator<Map.Entry<String, Integer>>(){
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue()-o1.getValue();}
//逆序(从大到小)排列,正序为“return o1.getValue()-o2.getValue”
});
for(Map.Entry<String, Integer> entry: list){
System.out.println(entry);
}
}
四.测试用例
本人负责模块只接受一种输入,也就是字符串数组,测试全部采用黑盒测试
首先是常规输入
@Test
void WCwordcountTest_1(){
WCwordcount wc = new WCwordcount();
wc.input.add("assd");
wc.count();
}
@Test
void WCwordcountTest_2(){
WCwordcount wc = new WCwordcount();
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.count();
}
@Test
void WCwordcountTest_3(){
WCwordcount wc = new WCwordcount();
wc.input.add("p_wq");
wc.input.add("aa");
wc.input.add("owowo");
wc.count();
}
之后又测试了转义字符与空格作为数组项的输入
@Test
void WCwordcountTest_5(){
WCwordcount wc = new WCwordcount();
wc.input.add("oqpwq");
wc.input.add("\n");
wc.input.add("owowo");
wc.count();
}
@Test
void WCwordcountTest_6(){
WCwordcount wc = new WCwordcount();
wc.input.add(" ");
wc.input.add("\n");
wc.input.add("a");
wc.count();
}
@Test
void WCwordcountTest_7(){
WCwordcount wc = new WCwordcount();
wc.input.add("a");
wc.input.add(" ");
wc.input.add("owowo");
wc.count();
}
最后是综合测试
@Test
void WCwordcountTest_13(){
WCwordcount wc = new WCwordcount();
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.input.add("assd");
wc.input.add("aa");
wc.input.add("owowo");
wc.count();
}

五.运行截图
运行截图如下

六.小组贡献
完成了词频统计的核心功能
贡献度0.22
扩展任务
七.规范理解
开发文档:《阿里巴巴Java开发手册》
《阿里巴巴java开发手册》对于变量命名和OOP规约都有很严格的规定,我自己在开发的时候变量命名不够规范,没有复合严格的OOP规约,同时我也没有做到很好的注释所写的代码
八.代码评价分析
评价对象:游晨宇 17119 负责模块:单词分割模块
变量命名没有按照《开发手册》
没有良好的注释
九.静态代码分析工具
使用的工具:checkstyle
下载地址:https://sourceforge.net/projects/checkstyle/files/checkstyle/
十.分析结果

十一.小组代码问题
前期沟通不够,整合时花费了较多时间,代码风格没有很好的统一起来
浙公网安备 33010602011771号