当前位置: 首页 > news >正文

第二次软工作业

1.个人项目

这个作业属于哪个课程 个人项目 - 作业 - 计科23级12班 - 班级博客 - 博客园
这个作业要求在哪里 个人项目 - 作业 - 计科23级12班 - 班级博客 - 博客园
这个作业的目标 第一个项目:学习设计一个论文查重算法

GitHub代码仓库 :jhltwo/3123004662

2.PSP2表格

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

3.函数及其关系

plagiarism_checker.py (主程序)
├── 导入模块层
│ ├── sys (系统参数处理)
│ ├── re (正则表达式文本处理)
│ └── difflib.SequenceMatcher (序列相似度计算)
├── 文本预处理层
│ └── preprocess_text()
├── 相似度计算层
│ ├── calculate_jaccard_similarity()
│ ├── calculate_sequence_similarity()
│ └── calculate_character_similarity()
├── 核心算法层
│ └── calculate_plagiarism_rate()
├── 文件I/O层
│ ├── read_file()
│ └── write_result()
└── 应用控制层
└── main()

  1. 函数模块设计

2.1 核心函数清单(共7个函数)

函数名 功能 输入 输出 层级
preprocess_text() 文本预处理 原始文本 清理后文本 预处理层
calculate_jaccard_similarity() Jaccard相似度 两个文本 相似度值[0,1] 计算层
calculate_sequence_similarity() 序列相似度 两个文本 相似度值[0,1] 计算层
calculate_character_similarity() 字符相似度 两个文本 相似度值[0,1] 计算层
calculate_plagiarism_rate() 综合查重算法 原文+抄袭版 最终重复率 核心层
read_file() 文件读取 文件路径 文件内容 I/O层
main() 主控制流程 命令行参数 程序执行 控制层

2.2 函数间关系图

main()
├── read_file() ×2 (读取原文和抄袭版)
└── calculate_plagiarism_rate()
├── preprocess_text() ×2
├── calculate_jaccard_similarity()
├── calculate_sequence_similarity()
└── calculate_character_similarity()

4.性能分析

通过详细的性能分析,我识别出了系统中的主要性能瓶颈:

  1. preprocess_text - 最耗时函数
  • CPU时间占比 :42.8%
  • 主要开销 :正则表达式处理(66.4%)、字符串转换(18.4%)
  • 优化效果 :通过预编译正则表达式,性能提升39.14% 2. calculate_sequence_similarity - 第二耗时函数
  • CPU时间占比 :28.9%
  • 主要开销 :LCS动态规划计算(80.4%)、内存分配(15.5%)
  • 内存消耗 :峰值45.7MB,平均每次调用73.4KB 3. calculate_jaccard_similarity - 第三耗时函数
  • CPU时间占比 :17.4%
  • 主要开销 :集合创建(54.8%)、集合运算(45.2%)

最终性能优化成果 整体性能提升

  • 执行时间优化 : +76.10% (从0.4836ms降至0.1156ms)
  • 内存使用 :保持稳定
  • 结果准确性 :差异在可接受范围内(0.26) 各函数优化效果
    函数名称 时间优化 状态 文本预处理 +39.14% 优化成功 字符相似度 +54.12% 优化成功 Jaccard相似度 -80.32% 需要改进 序列相似度 -45.56% 需要改进

测试函数说明

class TestTextPreprocessing(unittest.TestCase):

"""文本预处理功能测试"""

class TestJaccardSimilarity(unittest.TestCase):

"""Jaccard相似度计算测试"""

class TestSequenceSimilarity(unittest.TestCase):

"""序列相似度计算测试"""

class TestCharacterSimilarity(unittest.TestCase):

"""字符相似度计算测试"""

class TestPlagiarismRate(unittest.TestCase):

"""综合抄袭率计算测试"""

class TestFileReading(unittest.TestCase):

"""文件读取功能测试"""

class TestEdgeCases(unittest.TestCase):

"""边界情况和异常测试"""

image-20250923221400291

异常处理

image-20250923222006553

http://www.sczhlp.com/news/130036/

相关文章:

  • 开一家网站建设公司要多少钱网站建设目前流行什么
  • 平面设计免费素材网站网站制作费
  • 工信部 网站备案规定用自己的ip怎么查看dw8建设的网站
  • 外贸网站海外推广3个必去网站wordpress中文4.8.1
  • 天津网站建设工具做网站公司 上海
  • 免费建立自己的网站代码创意福州网站建设
  • 农村自建房设计网站重庆装修协会
  • 夫妻找做伙食饭工作哪个网站好网站建设相关的工作
  • 9.23总结
  • 日志|力扣|不同路径|最小路径和|动态规划|Javase|IO|File|Javaweb
  • 如何建立 5 μm 精度的视觉检测?不仅仅是相机的事
  • 开源网站官网兰州seo新站优化招商
  • 做网站的软件高中 通用技术网站制作建站程序
  • 怎样下载模板网站wordpress实现文章目录
  • 济源市网站建设上海网站制作最大的公司
  • 线程--相关概念、两种创建线程的方式
  • ui设计网站设计与网页制作视频教程网站建设所需美工
  • 网站建设 今晟网络怎么来钱快
  • 做淘宝店铺标志的网站做网站样本电销好做吗
  • 舆情服务网站网站设计有哪些语言版本
  • 中国建设质量安全协会网站如何设计网站的链接
  • 游戏网站html模板网站建设公司湖南
  • 网站建设 电子商务 品牌首选IDC网站建设资源平台
  • 装修公司做网站好做吗企业网站设置
  • 交换机可以做网站跳转吗工业风 网站建设
  • 湖南省住房和城乡建设厅门户网站营口网站seo
  • 建站总结报告南山网站开发
  • 自建wap网站公司网站备案网站名称有什么用
  • 西宁做网站的公司专门做特卖的网站是什么
  • 做名片哪个网站可以找欧宇公司网络建设方案