个人项目

个人项目:

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Networkengineering1834/homework/11146
这个作业的目标 使用java编程语言开发论文查重功能,测试代码性能和覆盖率。

GitHub仓库地址:

https://github.com/Adorkble/AdorkableWN

PSP表格:

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

类的详细说明:

1. 类说明:

  • CheckArticle:此类中有4个方法,readChinese()将每一行文本内容中的中文字符提取出来;readChineseFromFile()将文本所有中文字符逐行提取出来;Deconstruct()将readChineseFromFile()中提取到的文字进行拆解;Checking()是用Deconstruct(path)文章拆分出来的词组进行对比查重。

  • Logfile:此类中有3个方法,Logfile()方便新建Logfile对象;start()判断是否日志创建成功;addToLog()开启日志功能则可正常写入信息,写入日志信息时,为了保证文件信息正确,需要同步。

2. 类图:

3. 函数流程图:


代码性能测试:

1. 内存分析:

2. 运行分析

具体单元测试:

1. 测试单元:

2. 代码覆盖率:

3. 命令行测试:

运行结果展示:

抄袭论文 查重率
orig_0.8_del.txt 0.8077011
orig_0.8_add.txt 0.5638108
orig_0.8_dis_1.txt 0.8899804
orig_0.8_dis_10.txt 0.7066445
orig_0.8_dis_15.txt 0.4913692

异常处理说明:

1. 当用户输入的路径不存在时:

2. 当用户不按照参数之间用空格隔开时:

代码缺陷:

  • 查重速率过低,性能不优。
  • 没有考虑到一个句子中有13个字与原著相似时定位该句子为抄袭。
  • 当有很多一些出现率比较高的词时,会将不断累加相似词的数目,会导致查重率偏高。
  • 提取文本所有中文字符,但是没有考虑到英文字母。导致在英文比较的文章中查重率太低,使用感不强。
posted @ 2020-09-25 01:03  AdorkableWN  阅读(113)  评论(0编辑  收藏  举报