第四周作业
Posted zuokun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周作业相关的知识,希望对你有一定的参考价值。
1.github地址:https://github.com/husterC/WordCountGroupwork
2.psp表格:
PSP2.1 | PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 20 | 30 |
Estimate | 估计这个任务需要多少时间 | 20 | 30 |
Development | 开发 | 300 | 400 |
Analysis | 需求分析(包括学习新技术) | 40 | 60 |
Design Spec | 生成设计文档 | 25 | 35 |
Design Review | 设计复审(和同事审核设计文档) | 30 | 30 |
Codind Standard | 代码规范(为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 40 | 40 |
Coding | 具体编码 | 40 | 60 |
Code Review | 代码复审 | 30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 50 | 60 |
Reporting | 报告 | 30 | 60 |
Test Report | 测试报告 | 30 | 40 |
Size Measurement | 计算工作量 | 15 | 20 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 25 | 25 |
合计 | 720 | 950 |
3.词频统计
WordFrequency类接受单词数组,统计每个单词出现的频率次数
package Test; import java.util.ArrayList; public class WordFrequency { public static String[][] WordFrequency(ArrayList<String> list){ String res[] = new String[1000]; int num[] = new int[1000]; int i,j; int sum = 0; boolean state; for(i=0;i<list.size();i++) { state = false; if(i==0) { res[sum] = list.get(0); num[0]++; sum++; } else { for(j=0;j<sum;j++) { if(res[j].equals(list.get(i))) { num[j]++; state = true; break; } } if(state == false) { res[sum] = list.get(i); num[i]++; sum++; } } } String[][] str = new String[sum][2]; for(i=0;i<sum;i++) { str[i][0] = res[i]; str[i][1] = String.valueOf(num[i]); } return str; } public static void main(String args[]) { ArrayList<String> list = new ArrayList<String>(); String res[][]; list.add("aaa"); list.add("bbb"); list.add("cccc"); list.add("cccc"); res = WordFrequency(list); for(int i=0;i<res.length;i++) { for(int j=0;j<res[i].length;j++) { System.out.print(res[i][j]+" "); } System.out.println(); } } }
4.测试设计:测试用例覆盖了全部判断语句
5软件静态检查
5.小组贡献
0.18
6.同行评审
准备阶段:在小组成员的讨论下,不准备召开预备会议。
成员分工:
作者:17045 17054 17059 17060
记录员:17045
讲解员:17059 17060
评审员:17045 17054 17059 17060
主持人:17054
评审目的:
提高程序效率,使运行时间减少、内存使用减少,代码规范性,功能正确性
评审流程:
讲解员讲解程序的需求
每位作者讲解自己的代码和思路
作者讲解时,剩下的组员进行评审并达成共识
发现的代码规范问题缺陷如下:
1.函数头没有该函数功能、参数类型、返回值类型的注释
2.注释使用中文可能导致编码错误
3.类的方法名首字母不能大写
4.条件或循环语句内部只有一条语句时,也需要用花括号
5.部分变量命名不规范,导致语义不清楚,比如File f,应该用fileName
6.相关变量必须用下划线表示,比如s_1,s_2,不能写为s1,s2
7.不同变量的定义不能在同一行完成
性能方面的问题:
1.插入排序速度慢
2.定义数组的时候一次性开固定数字的空间,有可能导致内存浪费,更严重可能因为开设不够,导致程序出错。
功能方面:
测试结果正确。
结论:
此次评审代码运行正常,预期需求实现良好,但是在代码规范性上有所欠缺,给评审过程带来了一些麻烦,有待改进。
在功能方面需要改进排序算法和解决数组空间问题。
不足与困难:
缺少评审经验,在评审过程中浪费了一些时间。
记录员记录评审内容。
主持人宣布会议结束。
成员分工:
作者:17045 17054 17059 17060
记录员:17045
讲解员:17059 17060
评审员:17045 17054 17059 17060
主持人:17054
评审目的:
提高程序效率,使运行时间减少、内存使用减少,代码规范性,功能正确性
评审流程:
讲解员讲解程序的需求
每位作者讲解自己的代码和思路
作者讲解时,剩下的组员进行评审并达成共识
发现的代码规范问题缺陷如下:
1.函数头没有该函数功能、参数类型、返回值类型的注释
2.注释使用中文可能导致编码错误
3.类的方法名首字母不能大写
4.条件或循环语句内部只有一条语句时,也需要用花括号
5.部分变量命名不规范,导致语义不清楚,比如File f,应该用fileName
6.相关变量必须用下划线表示,比如s_1,s_2,不能写为s1,s2
7.不同变量的定义不能在同一行完成
性能方面的问题:
1.插入排序速度慢
2.定义数组的时候一次性开固定数字的空间,有可能导致内存浪费,更严重可能因为开设不够,导致程序出错。
功能方面:
测试结果正确。
结论:
此次评审代码运行正常,预期需求实现良好,但是在代码规范性上有所欠缺,给评审过程带来了一些麻烦,有待改进。
在功能方面需要改进排序算法和解决数组空间问题。
不足与困难:
缺少评审经验,在评审过程中浪费了一些时间。
记录员记录评审内容。
主持人宣布会议结束。
以上是关于第四周作业的主要内容,如果未能解决你的问题,请参考以下文章