第4周小组作业:WordCount优化
stage1:代码编写+单元测试
PSP表格
|
PSP2.1 |
PSP阶段 |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
15 |
15 |
|
Estimate |
估计任务需要多少时间 |
25 |
30 |
|
Development |
开发 |
100 |
100 |
|
Analysis |
需求分析 |
20 |
20 |
|
Design Spec |
生成设计文档 |
20 |
15 |
|
Design Review |
设计复审 |
20 |
15 |
|
Coding Standard |
代码规范 |
20 |
15 |
|
Design |
具体设计 |
20 |
25 |
|
Coding |
具体编码 |
60 |
60 |
|
Code Review |
代码复审 |
20 |
30 |
|
Test |
测试 |
60 |
80 |
|
Reporting |
报告 |
80 |
95 |
|
Test Report |
测试报告 |
30 |
50 |
|
Size Measurement |
计算工作量 |
30 |
25 |
|
Postmortem |
总结 |
20 |
20 |
|
合计 |
530 |
560 |
我主要负责将排序后的单词和词频输出到文件。代码实现:

public class Output {
public static void output(ArrayList<Entry<String, Integer>> list, File outputFile) throws IOException{
if(outputFile==null){
outputFile=new File("result.txt");
}
//FileWriter fW=new FileWriter(outputFile,true);
FileWriter fW=new FileWriter(outputFile);
BufferedWriter bw=new BufferedWriter(fW);
bw.close();
}
}

测试用例设计:
|
Test Case ID测试用例编号 |
Test Item 测试项(即功能模块或函数) |
Test Case Title 测试用例标题 |
Test Criticality重要级别 |
Pre-condition预置条件 |
Input 输入 |
Procedure 操作步骤 |
Output预期结果 |
Result实际结果 |
Status是否通过 |
Remark备注(在此描述使用的测试方法) |
|
1-5 |
输出控制模块 |
单词种类<=5,词频<=10 |
H |
无 |
wcPro.exe |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
|
6-10 |
输出控制模块 |
单词种类<=5,词频不定 |
H |
无 |
wcPro.exe -a test.txt |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
|
11-15 |
输出控制模块 |
单词种类>=6,词频<=10 |
H |
无 |
wcPro.exe -a |
无 |
参数数量错误 |
参数数量错误 |
是 |
黑盒测试 |
|
16-20 |
输出控制模块 |
单词种类>=6,词频不定 |
H |
无 |
wcPro.exe test.c |
无 |
输入格式错误 |
输入格式错误 |
是 |
黑盒测试 |
单元测试运行结果:

小组贡献:因为编程能力不够,只完成了控制输出的部分,贡献率为0.13.
组员代码评价
选择刘博谦(17070)的代码进行分析

// 词频排序
public static ArrayList<String> sort(HashMap<String, Integer> map) {
// 以Key进行排序
TreeMap treemap = new TreeMap(map);
// 以value进行排序
ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(
treemap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
// 降序
return o2.getValue() - o1.getValue();
// 升序 o1.getValue() - o2.getValue())
}
});
ArrayList<String> str = new ArrayList<String>();
int i = 0;
for (Map.Entry<String, Integer> string : list) {
// 排除-与空格
if (!(string.getKey().equals("")) && !(string.getKey().equals("-"))) {
str.add(string.getKey());
str.add(string.getValue().toString());
// 输出前1000个单词
if (i > 1000)
break;
i++;
}
}
return str;
}

刘博谦的代码遵守了《阿里巴巴Java开发手册》第二条的强制规定,代码命名规范,无需改进。
开发规范
阿里巴巴Java开发规范手册
参考资料:
《阿里巴巴JAVA开发手册》
第4周小组作业:WordCount优化的更多相关文章
- HUST软测1504班第4周小组作业成绩:WordCount优化
说明 本次公布的成绩为第四周作业的结果: 第4周小组作业:WordCount优化 博客推荐:本次作业有一位同学完成有创意,推荐优秀博客.(优秀博客不会对成绩带来正面或者负面影响)PS:做任何创新的任务 ...
- HUST软测1504班第6周小组作业成绩
说明 本次公布的成绩为第6周小组作业的结果: 第6周小组作业:WordCount(详情见毕博平台) 如果同学对作业结果存在异议,可以: 在毕博平台讨论区的第6周作业第在线答疑区发帖申诉. 或直接在博客 ...
- 软件测试第4周小组作业:WordCount优化
一.基本任务:代码编写+单元测试 1.Github地址: https://github.com/Wegnery/New_WordCount 2.PSP2.1表格 PSP2.1 PSP阶段 预估耗时 ( ...
- 第四周小组作业:Wordcount优化
1.小组github地址 https://github.com/muzhailong/wcPro 2.PSP表格 PSP2.1 PSP阶段 预计耗时(分钟) 实际耗时(分钟) Planning 计划 ...
- WordCount优化-第四周小组作业
一.基本功能 GITHUB项目地址:https://github.com/LongtermPartner/ExtendWordCount PSP表格填写: PSP2.1 PSP阶段 预估耗时 (分钟) ...
- 软件质量与测试--第二周作业 WordCount
github地址: https://github.com/wzfhuster/software_test_tasks psp表格: PSP2.1 PSP 阶段 预估耗时 (分钟) 实际耗时 (分钟) ...
- WcPro项目(WordCount优化)
1 基本任务:代码编写+单元测试 1.1 项目GitHub地址 https://github.com/ReWr1te/WcPro 1.2 项目PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实 ...
- WordCount优化
Github 地址:chaosrings/wcPro 1.PSP2.1表格 psp 2.1 psp阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这 ...
- cousera 深度学习 吴恩达 第一课 第二周 学习率对优化结果的影响
本文代码实验地址: https://github.com/guojun007/logistic_regression_learning_rate cousera 上的作业是 编写一个 logistic ...
随机推荐
- zip 格式解析
1.格式 https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.2.0.txt 官方文档 https://blog.csdn.net/hp9103 ...
- pycharm连接mysql数据库插入中文数据时出现1366编码错误
创建数据库的时候应该这样创建: create database xxxxxxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci:
- python之全局变量与局部变量
全局变量: - 在书写中顶格开始: - 一旦定义完毕在整个文件生效: - 在函数内如果定义了同名全局变量名,会“覆盖”掉全局变量: - 在函数中同名的变量,当在函数退出后消失,全局的同 ...
- Java Enum 枚举类的values方法
Enum类和enum关键字定义的类型都有values方法,但是点进去会发现找不到这个方法.这是因为java编译器在编译这个类(enum关键字定义的类默认继承java.lang.Enum)的时候 自动插 ...
- 走进MyBatis的世界
1.MyBatis可框架及ORM 1.Mybatis框架简介 MyBatis是一个开源的数据持久层框架.它内部封装了通过了JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了 ...
- gb2312,gbk,utf8的区别
GB2312编码大约包含6000多汉字(不包括特殊字符),编码范围为第一位b0-f7,第二位编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字.当然还有其他的 ...
- jQuery轮播图--不使用插件
说明:引入jquery.min.js 将轮播图放入imgs文件夹 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- sql的日期和时间函数–date_format
Mysql的日期和时间函数–date_format DATE_FORMAT(date,format)依照 format 字符串格式化 date 值.下面的修饰符可被用于 format 字符串中:修 ...
- mac pfctl / centos iptables 使用
mac使用pfctl 为了测试zk client的重连功能,需要模拟zk client与zk server网络连接出现问题的情况,经过查询资料发现可以使用防火墙阻止zk server启动端口上的流量实 ...
- 十一、eclipse如何创建一个maven工程project
1. 2. 3. 4. 这是刚创建的工程,因为缺少WEB-INF/web.xml,所以项目会报错 5. 6. 再编写一个web.xml文件,项目就正常了,没有报错:后期需要自己添加对应的pom.xml ...