WordCountPro

Posted fleshbone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WordCountPro相关的知识,希望对你有一定的参考价值。

github地址:https://github.com/skz12345/wcPro

PSP2.1****表格

PSP2.1 PSP****阶段 预估耗时****(分钟) 实际耗时****(分钟)
Planning 计划 30 40
· Estimate · 估计这个任务需要多少时间 30 40
Development 开发 170 230
· Analysis · 需求分析 (包括学习新技术) 40 40
· Design Spec · 生成设计文档 20 30
· Design Review · 设计复审 (和同事审核设计文档) 20 20
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 15
· Design · 具体设计 10 15
· Coding · 具体编码 20 30
· Code Review · 代码复审 10 20
· Test · 测试(自我测试,修改代码,提交修改) 40 60
Reporting 报告 40 60
· Test Report · 测试报告 30 40
· Size Measurement · 计算工作量 5 5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 5 15
合计 240 330

2.1基本任务:代码编写+单元测试

接口实现

在基本任务中,我所负责模块为输出模块,与之相关的接口为List < WordInfo > handle(String input)
和void output(List < WordInfo >),handle函数为统计词频的核心函数,output函数将list集写入文件:

package WordTest;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class output {
private ArrayList < WordInfo > handleList;
public output(ArrayList < WordInfo > handleList){
this.handleList=handleList;
}
public void outPut(){
PrintWriter writer=null;
try {
writer=new PrintWriter(new BufferedOutputStream(new FileOutputStream("result.txt")));
for(WordInfo wordInfo:handleList)
writer.write(wordInfo.toString()+"\\r\\n");
writer.flush();
} catch (Exception e) {
System.out.println("Error in output");
}finally{
writer.close();
}
}
}

测试用例设计

由于输出函数较为简单,只是将List集中的信息输出到文件中,不涉及到排序,统计次数等问题,只针对空输出,单行输出,多行输出进行分类设计测试用例。

测试结果

单元覆盖率较高,但重复较多。

2.2扩展任务:静态测试

开发规范

在邹欣老师的“现代软件工程讲义3 代码规范与代码复审”中,知道了代码需要遵循一定的风格规范和设计规范,代码风格应该力求简明易读,在一些细节方面需要养成习惯;代码设计规范牵涉到程序设计、模块之间的关系、设计模式等方方面面,在代码被大规模使用时,良好的设计规范会让你在日后的维护、其他人的阅读时产生巨大的帮助。

组员代码评价

梁锦琳的核心模块代码比较精简,但没有注释不好读懂,同时在条件语句中,只有一行代码时缺少大括号,不符合阿里java规范。

静态代码检查

选择的工具:Alibaba Java Coding Guidelines

下载地址:https://github.com/alibaba/p3c

代码改进方法

通过静态代码检查,知道在各种条件语句中就算只有一行代码,也要使用大括号。
同时自己的代码没有注释,应该重视起来让其他人能看懂。

以上是关于WordCountPro的主要内容,如果未能解决你的问题,请参考以下文章