第一次个人编程作业

这个作业属于哪个班级 2024软工
这个作业的要求在哪里 查重软件要求
这个作业的目标 熟悉PSP,单元测试,Studio Profiling Tools

作业地址:3122004435

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

流程图

查重流程图

接口与类

DuplicateCheck/
│
├── head/ //头文件
│   ├── compare.h //比较
│   │     ├── float getSimilarity //获取相似度
│   │     ├── bool isCopied //定义是否抄袭
│   │     └── int LCS //查找公共字字数
│   │
│   ├── function.h //预处理
│   │     ├── pair<map<string, list<string>>, map<string, message>>& pretreatment //预处理
│   │     ├── map<string, list<string>>& divideArticle //分句
│   │     ├── list<string>& divideParagraph //拆分自然段
│   │     ├── void findPounIndex //查找标点下标
│   │     ├── map<string, message>& make7CharMap //建立倒排索引
│   │     └── list<string>& cut7CharIndex //滑动窗口截取7字索引
│   │
│   ├── message.h //4字索引所属信息类
│   │     ├── string articleName; //文章名称
│   │     └── string text; //原句
│   │
│   └── output.h //输出
│         └── void writeSimilarityToFile; //向文件写入相似度
│
└── source/ //实现
    ├── compare.cpp
    ├── function.cpp
    ├── main.cpp
    ├── message.cpp
    └── output.cpp

测试

测试结果

覆盖率

覆盖率截图

性能分析

性能分析

改进

  1. 预处理阶段可以使用多线程
  2. 比较阶段,可以使用生产者消费者模型,边处理边比较
posted @   u1u1uu1  阅读(9)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示