第一次个人编程作业 您所在的位置:网站首页 spec测试报告 第一次个人编程作业

第一次个人编程作业

2023-03-11 07:22| 来源: 网络整理| 查看: 265

目录

PSP计算模块接口的设计与实现过程计算模块接口部分的性能改进计算模块部分单元测试展示

gitcode代码库:朱政霖 / 3121005192 · GitCode

PSP

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

30

40

· Estimate

· 估计这个任务需要多少时间

1200

1470

Development

开发

360

480

· Analysis

· 需求分析 (包括学习新技术)

200

240

· Design Spec

· 生成设计文档

20

20

· Design Review

· 设计复审

10

10

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

70

80

· Design

· 具体设计

60

80

· Coding

· 具体编码

300

360

· Code Review

· 代码复审

30

30

· Test

· 测试(自我测试,修改代码,提交修改)

60

60

Reporting

报告

10

20

· Test Repor

· 测试报告

10

20

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

30

· 合计

1200

1470

 

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

本算法一共有三个类,分别为main,FileUtil类,SimHashUtil类

FileUtil类和SimHashUtil类都为工具类。FileUtil类有readFile,writeFile两个方法,分别负责读取和写入文件。SimHashUtil类则为程序中最重要的getHash,getSimHash,getHammingDistance,getSimilarity四个方法。其中getSimHash会计算出它的simHash值,并以字符串形式输出,而它内部会调用getHash计算出字符串的hash值,并以字符串形式输出。getHammingDistance则会比较两个simHash值,计算它们的海明距离,并由getSimilarity给出相似度。

                                                            程序函数整体关系图:

主要函数getSimhash流程图:

 

计算模块接口部分的性能改进

性能分析图:

 

程序中消耗最大的函数:getSimHash

/** * 传入String,计算出它的simHash值,并以字符串形式输出 * * @param str 传入的Srting类型字符串 * @return 返回str的simHash值 */ public static String getSimHash(String str) { // 用数组表示特征向量,取128位,从 0 1 2 位开始表示从高位到低位 int[] v = new int[128]; // 1、分词 List keywordList = HanLP.extractKeyword(str, str.length());//取出所有关键词 // hash int size = keywordList.size(); int i = 0;//以i做外层循环 for (String keyword : keywordList) { // 2、获取hash值 StringBuilder keywordHash = new StringBuilder(getHash(keyword)); if (keywordHash.length() < 128) { int dif = 128 - keywordHash.length(); for (int j = 0; j < dif; j++) { keywordHash.append("0"); } } // 3、加权、合并 for (int j = 0; j < v.length; j++) { if (keywordHash.charAt(j) == '1') { v[j] +=1; } else { v[j] -= 1; } } i++; } // 4、降维 StringBuilder simHash = new StringBuilder();// 储存返回的simHash值 for (int k : v) { // 从高位遍历到低位 if (k


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有