Java教程

个人项目

本文主要是介绍个人项目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

github:  code2497/3119005347 (github.com)

 

这个作业属于哪个课程< 网工1934-软件工程 >
这个作业要求在哪里 作业要求
这个作业的目标 代码实现论文查重,性能分析,psp记录

一、psp表格

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

二、模块接口的设计与实现过程

依赖包

1. word: 分词功能,并提供相似度计算接口

项目结构

CalSimilarity类 : 继承word中TextSimilarity类,提供词权重计算、海明距离计算、分词功能以及最终的文本相似度算法

Hash类:提供simHash、hash算法

IOTxt:文件读写

Main:项目入口

算法流程图

simHash算法与hash算法

 

权重和最终相似度计算

三、性能分析

内存部分

可以看出消耗太大的主要是int[]、BigInteger和word分词包

运行时间

由于word分词器的默认词典比较大,所以需要耗费较多的时间加载

计算模块部分单元测试展示

各测试类如下

由于word分词包过于庞大,一些测试不得已超过4s

 

 

测试覆盖率

Jacoco覆盖率报告

CalSimilarity类覆盖率低的原因是seg分词函数为private以及构造函数无法覆盖

计算模块部分异常处理说明

项目程序功能测试

java -jar duplicate-checking-1.0-SNAPSHOT-jar-with-dependencies.jar C:\Users\code\Desktop\text\orig.txt C:\Users\code\Desktop\text\orig_0.8_del.txt C:\Users\code\Desktop\text\result.txt

 

 

 

这篇关于个人项目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!