第一次个人编程作业

软件工程 19网工34
作业要求 作业要求
作业目标 设计论文查重算法,github代码管理,测试代码

github地址

psp

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

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

  • 类图
  • 算法主要思想
    • 由于这是个小型项目,令字为向量,力求降低时间复杂度,降低准确率。
    • 每个字在章节中出现的次数,便是此字向量的值。现在我们假设:
      文章1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn;它们在文章中的个数为:Z1n1,Z1n2,Z1n3……Z1nm;
      文章2中出现的字为:Z2c1,Z2c2,Z2c3,Z2c4……Z2cn;它们在文章中的个数为:Z2n1,Z2n2,Z2n3……Z2nm;
      其中,Z1c1和Z2c1表示两个文本中同一个字,Z1n1和Z2n1是它们分别对应的个数,
      最后我们的相似度可以用公式计算:

计算模块接口部分的性能改进

  • 使用jprofiler进行性能分析
    • 该比对算法实例化了大量的String,需特别注意,要预防堆溢出。

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

使用junit进行单元测试


测试结果写入文件效果

代码覆盖率

异常处理


posted on 2021-09-19 10:12  smbol  阅读(41)  评论(0)    收藏  举报