第一次个人编程作业

第一次个人编程作业

这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业要求
这个作业的目标 PSP表格+实现论文查重算法+单元测试+性能测试+使用Github管理

Github链接:

here

可执行的jar包已经放在了Github仓库的release中

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

具体有四个类,分别为Thesischecking、Cos_Main、Main、MainTest

Thesischecking:包括将文本和字符串互相转换的的textToString和StringTotext方法

Cos_Main:对于文本的词进行排序和分词,计算余弦相似度

Main:包括Main.work方法和process方法

程序流程图:

img

TreeMap来对字符串进行有序排序的处理

分词则是选用了Hanlp分词器来进行分词

使用的计算文本相似度采用的算法是余弦相似度(Github链接:here

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

程序性能测试截图:

类的占用:

CPU负载:

堆内存:

具体耗时:

分析:耗时最多的主要是计算余弦相似度的算法,和hanlp分词器。

计算模块单元测试展示

部分单元测试代码:

部分测试结果:

代码覆盖率:

计算模块部分异常处理

捕捉文本转换字符串发生的异常

结果展示:

PSP表格

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

个人总结:

这是第一次一个人尝试做一个项目,从PSP表能看得出很挣扎,但还是学习到了很多东西,在具体代码的阶段都忘了很多的基本语法了,吃了不实践的亏。这次收获了很多没有接触过的东西,打包jar包和命令行运行时的各种错误,还有Jprofiler,还是得多动动手。

posted @ 2021-09-18 19:17  我要吃菠萝  阅读(74)  评论(1编辑  收藏  举报