作业2
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13136 |
| 这个作业的目标 | 完成第一次项目作业 |
1.github链接:https://github.com/xingyun158979/xingyun158
2.PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 30 | 35 |
| Estimate* | 估计这个任务需要多长时间 | 800 | 745 |
| Development | 开发 | 500 | 650 |
| Analysis | 需求分析(包括学习新技术) | 60 | 80 |
| Design Spec | 生成设计文档 | 30 | 40 |
| Design Review | 设计复审 | 10 | 20 |
| Coding Standard | 代码规范 | 5 | 15 |
| Design | 具体设计 | 60 | 90 |
| Coding | 具体编码 | 200 | 300 |
| Code Review | 代码复审 | 20 | 15 |
| Test | 测试 | 90 | 90 |
| Reporting | 报告 | 70 | 70 |
| Test Report | 测试报告 | 20 | 10 |
| Size Measurement | 计算工作量 | 20 | 20 |
| Postmortem & Process Improvment Plan | 事后总结,并提出过程的改进计划 | 30 | 30 |
| 合计 | 620 | 745 |
3.计算模块接口的设计与实现过程
结构:

4.性能分析

5.部分单元测试
@Test
public void getHaiMingDistanceFailTest() {
// 测试str0.length()!=str1.length()的情况
String str0 = "111100";
String str1 = "1000";
System.out.println(HaiMing.getHaiMing(str0, str1));
}
@Test
public void getSimilarityTest() {
//测试相似度的计算
String str0 = Txt_IO.readTxt("txt/orig.txt");
String str1 = Txt_IO.readTxt("txt/orig_0.8_dis_10.txt");
String str2 = Txt_IO.readTxt("txt/orig_0.8_dis_1.txt");
int distance1 = HaiMing.getHaiMing(SimHash.getSimHash(str0), SimHash.getSimHash(str1));
int distance2= HaiMing.getHaiMing(SimHash.getSimHash(str0), SimHash.getSimHash(str2));
double similarity1 = HaiMing.getSimilarity(SimHash.getSimHash(str0), SimHash.getSimHash(str1));
double similarity2 = HaiMing.getSimilarity(SimHash.getSimHash(str0), SimHash.getSimHash(str2));
System.out.println("str0和str1的海明距离: " + distance1);
System.out.println("str0和str1的相似度:" + df.format(100*similarity1)+"%");
System.out.println("str0和str2的海明距离: " + distance2);
System.out.println("str0和str2的相似度:" + df.format(100*similarity2)+"%");
}
}
测试结果:

测试覆盖率:

6.异常处理
路径不存在处理:
@Test
public void readTxtFailTest() {
// 路径不存在,读取失败
String str = readTxt("txt/none.txt");
}
文本过短处理:
@Test
public void shortStringExceptionTest(){
//测试文本长度小于300的情况
System.out.println(SimHash.getSimHash("今天是周二,明天是周三"));
}


浙公网安备 33010602011771号