个人项目
个人项目
软件工程 | 网工1934链接 |
---|---|
作业要求: 1.在 Github 仓库中新建一个学号为名的文件夹。 2.在开始实现程序之前,在 PSP 表格记录下你估计在程序开发各个步骤上耗费的时间, 在实现程序之后,在PSP表格记录下你在程序的各个模块上实际花费的时间。 3.语言不限,并将编译好的程序发布到 Github 仓库中的 releases 中。 4.提交的代码要求经过 Code Quality Analysis 工具的分析并消除所有的警告。 5.完成项目的首个版本之后,请使用性能分析工具Studio Profiling Tools来找出代码中的性能瓶颈并进行改进。 6.使用Github来管理源代码和测试用例,代码有进展即签入Github。 7.使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标;写出至少10个测试用例确保你的程 序能够正确处理各种情况。 |
作业要求 |
作业目标 设计一个论文查重算法,给出一个原文文件<和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案 文件中输出其重复率。 |
PSP
psp2.1 | Personal Software Process Stages |
预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 180 | 300 |
Estimate | 估计这个任务需要多少时间 | 1260 | 1330 |
Development | 开发 | 180 | 180 |
Analysis | 需求分析(包括学习新技术) | 400 | 440 |
Design Spec | 生成设计文档 | 70 | 80 |
Design Review | 设计复审 | 60 | 70 |
Coding Standard | 代码规范(为目前 的开发指定合适的规范) |
50 | 70 |
Design | 具体设计 | 70 | 60 |
Coding | 具体编码 | 120 | 150 |
Code Review | 代码复审 | 60 | 40 |
Test | 测试(自我测试,修 改代码,提交报告) |
120 | 100 |
Reporting | 报告 | 30 | 30 |
Test Report | 测试报告 | 30 | 40 |
Size Measurement | 计算工作量 | 30 | 30 |
Postmortem & Process Improvement Plan |
事后总结,并提出改进计划 | 40 | 40 |
合计 | 1260 | 1330 |
计算模块接口的设计与实现过程
主类为Demo
存储类Data(用于存储每个语句的重复率)
项目结构(方法)
流程图
计算代码
单元测试
分句单测试模块:
分句模块的具体作用为去除文本中所以常见的标点符号
测试结果
覆盖率
性能测试
由于字符串的处理相对比较频繁,由图可知StringBuilder类的大小占比较高
异常处理
当文件为空时执行此代码
项目测试
原文与测试文章必须使用UTF-8
运行结果(结果顺序与执行顺序一致)