个人项目-论文查重

论文查重

作业课程 < 网工1934-软件工程 >
作业要求 < 作业要求 >
作业目标 < 通过设计完成论文查重项目,熟悉了解软件的开发流程,提高编程能力 >

0、github

1、psp表格

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

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

项目类图:


类图说明:
textCompare类为论文比较类,将原始论文和抄袭论文的文本特征进行比较
textPass类为论文查重类,main()方法中创建两个text类,text对象调用split()将论文以两个字符为一个基本单元划分文本特征,然后调用textCompare.compare()对原文文件和抄袭文件的文本特征进行比较

关键函数流程图:

(1)将文本分词存入集合中

(2)原始文本和抄袭文本的文本特征进行比较

算法的关键:两个相邻字符为一个基本单元进行分词,提高准确率。

3、模块接口部分的性能改进

JProfiler的性能分析图


程序中耗时最大的函数:text类的初始化方法

4、模块部分单元测试展示

@org.junit.Test
public void testMain(){
String[] paths = {
"E:\text\orig.txt",
"E:\text\orig_0.8_dis_1.txt",
"E:\text\ans.txt"
};
try {
textPass.main(paths);
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO流异常");
}
}

测试的函数:main()方法。

单元测试的测试覆盖率截图:

5、模块部分异常处理说明

找不到文件或文件不存在


origin.txt文件不存在,故报错

6、测试结果(部分)




posted @ 2021-09-19 21:07  ww榕涛  阅读(102)  评论(0)    收藏  举报