第一次编程作业

| 这个作业属于哪个课程 | 软件工程 |
| ---- | ---- | ---- |
| 这个作业要求在哪里 | 个人编程要求 |
|这个作业的目标|学会使用PSP表格,设计论文查重算法,并在整个过程中学会对代码进行性能分析、单元测试,以及对github的基本使用|

作业的GitHub地址

| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟)|
| ---- | ---- | ---- |----|----|
| Planning | 计划 | 60 | 80 |
|Estimate| 估计这个任务需要多少时间| 10| 15 |
|Development | 开发| 300|350 |
|Analysis|需求分析 (包括学习新技术)|120|128|
|Design Spec|生成设计文档|20|15|
|Design Review|设计复审|15|15|
| Coding Standard|代码规范 (为目前的开发制定合适的规范)|30|30|
|Design|具体设计|180|200|
|Coding|具体编码|180|200|
|Code Review|代码复审|60|100|
|Test|测试(自我测试,修改代码,提交修改)|60|80|
|Reporting|报告|30|50|
|Test Repor|测试报告|30|30|
|Size Measuremen|计算工作量|10|5|
|Postmortem & Process Improvement Plan| 事后总结, 并提出过程改进计划|15|20|
||合计|1120|1318|
计算模块接口的设计与实现过程

1.程序的核心算法(余弦相似度计算重复率)
参考知识:
1
我的代码实现: (1)统计方法(计算并利用hashmap<k,v>记录向量值)

2
(2)计算类(计算两向量的余弦值得出重复率)


2.对文本的处理
(1)读写txt文件类:

1
1

(2)(一开始想用kmp算法无奈发现开销巨大且效率极低)使用第三方提供的开源工具包中的IKUitls分词类,该类能返回记录所有词语的list集合
代码实现:

1
(3)使用replaceSpecialStr()方法对文本除杂

性能分析
1.程序运行时间耗费
1
2.程序总覆盖率
1
可以看出程序的覆盖率比较高,说明该程序比较稳定
3.程序运行截图

1

单元测试展示
1

1

1

异常处理

针对写入文件可能出现的错误
1

posted @ 2020-09-25 02:37  sidzwl  阅读(125)  评论(0编辑  收藏  举报