作业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.计算模块接口的设计与实现过程

设计流程图:

算法参考:https://blog.csdn.net/wolflxiaolu/article/details/116558711?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171030650416800185896718%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171030650416800185896718&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~hot_rank-9-116558711-null-null.142^v99^pc_search_result_base6&utm_term=simhash算法算相似度&spm=1018.2226.3001.4187

结构:

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("今天是周二,明天是周三"));
}
posted @ 2024-03-13 16:56  星陨2333  阅读(26)  评论(0)    收藏  举报