第一次个人编程作业
| 这个作业属于哪个班级 | 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
测试

覆盖率

性能分析

改进
- 预处理阶段可以使用多线程
- 比较阶段,可以使用生产者消费者模型,边处理边比较

浙公网安备 33010602011771号