第一次个人编程作业

github地址: Visionsssss/Visionsssss (github.com)

1、psp表格

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

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

项目类图:

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

关键函数的流程图:
(1)将论文分词存入集合中

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

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

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

JProfiler的性能分析图

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

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

    @org.junit.Test
    public void testMain(){
        String[] paths = {
                "E:\\test\\orig.txt",
                "E:\\test\\orig_0.8_add.txt",
                "E:\\test\\ans.txt"
        };
        try {
            PaperPass.main(paths);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

测试的函数:main()方法。
单元测试的测试覆盖率截图:

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

(1)找不到文件或文件不存在

(2)IO读取/关闭异常

posted @ 2021-09-20 01:25  Vision丶  阅读(79)  评论(2编辑  收藏  举报