个人项目
软件工程 | 19网工34班 |
---|---|
作业要求: 1.在Github仓库中新建一个学号为名的文件夹 2.在开始实现程序之前,在PSP表格记录下在程序开发各个步骤耗费时间,实现程序后,在PSP表格记录各个模块上实际花费时间 3.语言不限,实现程序后将代码发布到Github仓库的realease中 4.提交的代码要求经过Code Quality Analysis工具分析并消除所有警告 5.完成项目首个版本之后,使用性能分析工具StudioProfiling Tools找出代码性能瓶颈 6.使用Github来管理源代码和测试用例,代码有进展即签入Github 7.使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标 |
作业要求链接 |
作业目标:完成论文查重项目的实现后进行测试并按以上要求使用Github进行版本发布及源码和测试用例管理 |
Github链接
https://github.com/change247/change.github.io
一、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 930 | 1330 |
Development | 开发 | ||
Analysis | 需求分析(包括学习新技术) | 120 | 100 |
Design Spec | 生成设计文档 | 90 | 145 |
Design Review | 设计复审 | 150 | 205 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 20 | 20 |
Design | 具体设计 | 250 | 300 |
Coding | 具体代码 | 250 | 300 |
Code Review | 代码复审 | 115 | 110 |
Test | 测试(自我测试,修改代码,提交修改) | 15 | 100 |
Reporting | 报告 | 10 | 20 |
Test Repor | 测试报告 | 10 | 10 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 10 |
合计 | 930 | 1330 |
二、计算模块接口的设计与实现过程
整体流程
1、通过命令行接收原文文件输入路径、抄袭版论文的文件输入路径、答案文件输出路径。
2、对文本内容进行处理。
3、通过核心算法得出相似度。
4、输出答案
流程图
核心算法
运行结果截图
命令窗口运行
代码覆盖率
由于我使用的Eclipse无法看到覆盖率,所以我将代码复制到同学的Idea上运行并查看代码覆盖率
三、计算模块接口部分的性能改进
CPU负载
内存消耗
改进思路
如果对核心算法的时间复杂度进行优化,准确率也会有所下降,而优化空间复杂度不会有这种影响。
四、总结
在程序运行过程中出现了乱码,但仍然能得出重复率和运行时间。和同学讨论之后我认为可能是编译器的原因。这个程序在读入文本时将原文本和测试文本中的汉字转换为内部的一种代码,再通过比对两种代码得出重复率。在运行结果中出现的两行乱码一行是原文本的一行是测试文本的。可能我使用的Eclipse还不够智能,我将我的代码复制粘贴到同学的编译器Idea后原本输出的两行乱码变成了文本里的汉字。所以说进行编程时编译器也要尽量选些智能的,这样能大大提高编程的效率。