软件作业2-个人项目

作业概述

这个作业属于哪个课程 软件工程
这个作业要求在哪里 个人项目
这个作业的目标 设计一个论文查重算法,并进行测试检验

GitHub链接

GitHub链接

PSP表格

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

模块接口的设计与实现

image

  • HammingUtils类:getHammingDistance函数,输入两个simHash值,计算它们的海明距离;getSimilarity函数,输入两个simHash值,输出相似度。
  • SimHashUtils类:getHash函数,传入String,计算出它的hash值,并以字符串形式输出;getSimHash函数,传入String,计算出它的simHash值,并以字符串形式输出。
  • TxtIOUtil类:readTxt函数,txt文本的读入,writeTxt函数,文本输出。
  • MainPaperChexk类:程序主入口,通过命令行参数读取对应文件,得出相似度写回结果文件。
  • MainTest类:测试类,进行单元测试。

性能分析

image

image
内存上的占用主要在浮点数、数组集合的创建,调用的是Util包中的方法,无需改进。

单元测试

  • 单元测试代码都写入MainTest类中,部分代码如下
    image

  • 时间
    image

  • 覆盖率
    image

异常处理说明

  • 在SimHashUtils的getSimHash方法中加入代码来处理异常情况:
    image

  • 文本字数过少异常测试
    image

posted @ 2023-09-17 16:42  8848-cv  阅读(41)  评论(0)    收藏  举报