个人项目-论文查重

个人编程项目:论文查重

课程 信安19 12-软件工程
要求 (个人项目作业)
这个作业的目标 PSP表格的学习+项目模块化编程

一.题目要求

输入输出采用文件输入输出。按照传递命令行参数的方式提供文件的位置,从指定的位置读取文件,并向指定的文件输出答案。

  • 命令行参数给出:论文原文的文件的绝对路径
  • 命令行参数给出:抄袭版论文的文件的绝对路径
  • 命令行参数给出:输出的答案文件的绝对路径

示例:java -jar main.jar C:\tests\org.txt C:\tests\org_add.txt C:\tests\ans.txt

二.项目实现

  • 环境:Intellij IDEA2021 , JDK 1.8

  • 实现思路: 本地测试文本→键输路径→命令行实现

  • 流程图:个人项目-论文查重

  • 工程结构:

个人项目-论文查重

  • 算法核心:余弦相似度的计算

    (1)找出两篇文章的关键词;
    (2)每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频
    (3)生成两篇文章各自的词频向量;
    (4)计算两个向量的余弦相似度,值越大就表示越相似。

个人项目-论文查重

个人项目-论文查重

三.单元测试

  • 覆盖率

个人项目-论文查重

  • CPU Load

个人项目-论文查重

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

四.总结

1.PSP表格的初步尝试,确实让我自我审视许多,很多自认为简单的东西,上起手来,难度超出自身预期

2.花了一些时间在本地库与远程库的commit上,这方面还得继续学习

3.个人项目的完成上,每遇到一个新的问题,就是一个学习的过程,在学习新技术上花的时间很多

上一篇:java – Spring Security – 无法注销


下一篇:写算子单元测试Writing Unit Tests!