个人项目
作者:互联网
------------恢复内容开始------------
第一次个人编程作业
作业所属课程 | 软件工程19网工34班 |
---|---|
作业要求 | 作业要求 |
这个作业的目标 | 学会使用PSP表格 学会用Github来管理源代码和测试用例 学会使用论文查重性能分析工具改进性能,完成论文查重项目的实现后进行测试并按以上要求使用Github进行版本发布及源码和测试用例管理 |
一、github地址
二、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
· Estimate | · 估计这个任务需要多少时间 | 800 | 1100 |
Development | 开发 | ||
· Analysis | · 需求分析 (包括学习新技术) | 230 | 280 |
· Design Spec | · 生成设计文档 | 50 | 75 |
· Design Review | · 设计复审 | 40 | 20 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 60 | 30 |
· Design | · 具体设计 | 160 | 230 |
· Coding | · 具体编码 | 90 | 100 |
· Code Review | · 代码复审 | 50 | 60 |
· Test | · 测试(自我测试,修改代码,提交修改) | 100 | 120 |
Reporting | 报告 | ||
· Test Repor | · 测试报告 | 30 | 70 |
· Size Measurement | · 计算工作量 | 50 | 20 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 40 | 30 |
· 合计 | 900 | 1035 |
三、计算模块接口的设计与实现过程
1.工程结构
一共有两个类,算法的核心主要在SimHash类中
2.算法原理
·首先基于传统的IR方法,将文章转换为一组加权的特征值构成的向量。
·初始化一个f维的向量V,其中每一个元素初始值为0。
·对于文章的特征向量集中的每一个特征,做如下计算:
利用传统的hash算法映射到一个f-bit的签名。对于这个f- bit的签名,如果签名的第i位上为1,则对向量V中第i维加上这个特征的权值,否则对向量的第i维减去该特征的权值。
·对整个特征向量集合迭代上述运算后,根据V中每一维向量的符号来确定生成的f-bit指纹的值,如果V的第i维为正数,则生成f-bit指纹的第i维为1,否则为0。
流程:
3.程序流程图:
4.程序结果
四、计算模块接口部分的性能
性能分析:
内存消耗:
五、计算模块部分单元测试展示
1.测试代码
public class FileToStringTest {
@Test
public void toStringTest(){
FileToString fileToString = new FileToString();
fileToString.toString("");
}
}
import org.junit.Test;
public class SimHashTest {
SimHash simHash;
@Test
public void simHashTest(){
SimHash simHash = new SimHash("123");
simHash.simHash();
}
@Test
public void hashTest(){
SimHash simHash = new SimHash("123");
simHash.hash("123");
}
@Test
public void subByDistanceTest(){
SimHash simHash=new SimHash("123");
simHash.subByDistance(simHash,3);
}
@Test
public void getDistanceTest(){
SimHash simHash=new SimHash("123");
simHash.getDistance("123","234");
}
@Test
public void hammingDistanceTest(){
SimHash simHash=new SimHash("123");
simHash.hammingDistance(simHash);
}
代码覆盖率
2.单元测试截图:
------------恢复内容结束------------
标签:SimHash,个人,项目,void,123,Test,simHash,public 来源: https://www.cnblogs.com/szlcw/p/15312679.html