基于相似度评分、FSM和机器学习的设计模式识别
发布时间:2025-02-27 19:23
设计模式是人们在实践过程中总结出来的成功设计的范例,它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。设计模式的应用使得软件系统的开发效率和软件系统的质量都得到了很大的提升。然而,许多系统的设计文档或者不完整,或者与源代码不完全匹配。对于使用敏捷开发方法构建的软件系统,这个问题更为严重。另一方面,即使系统的设计文档完整可用且与源代码完全匹配,这些文档可能并未详细记录设计模式使用信息。因此,高效、准确地自动识别出系统中包含的设计模式实例,对理解、维护和重构大型软件项目具有重要意义。近年来,国内外的相关文献已经提出很多设计模式自动识别的方法。然而,设计模式的识别是一个比较复杂的问题,这些方法存在以下不足:1)这些文献大多是将模式与整个系统进行匹配,因此识别的准确率和时间性能并不高。其中一些文献尝试在执行搜索算法前减少搜索空间以优化时间性能,但仍然是在整个系统的基础上对搜索空间进行缩小。2)行为型模式的识别是一个颇有挑战性的问题。现有文献有些只针对结构型/创建型模式的识别,并不能检测行为型模式。还有文献试图使用同一个匹配算法搜索结构型/创建型模式和行为型模式,识别的准确率...
【文章页数】:131 页
【学位级别】:博士
【文章目录】:
摘要
Abstract
1 引言
1.1 课题的背景及意义
1.2 国内外研究现状
1.2.1 源代码信息的提取
1.2.2 系统和模式的表示
1.2.3 模式搜索算法
1.2.4 支撑工具
1.2.5 时间性能的优化
1.2.6 基于机器学习的设计模式识别
1.2.7 模式变体的识别
1.3 当前研究存在的问题与不足
1.4 论文研究的主要内容及创新点
1.4.1 主要内容
1.4.2 创新点
1.5 章节安排
2 相关知识和技术
2.1 设计模式
2.2 UML
2.2.1 类图
2.2.2 序列图
2.3 相似度评分算法
2.4 FSM
2.5 软件度量
2.6 机器学习与ANN
2.6.1 机器学习
2.6.2 ANN
2.7 本章小结
3 系统和设计模式的表示及源代码信息的提取
3.1 源代码信息的提取
3.1.1 静态信息的提取
3.1.2 动态信息的提取
3.2 系统和设计模式的有向图/矩阵表示
3.3 行为型模式的FSM表示
3.4 本章小结
4 基于相似度评分和二级子系统的设计模式识别
4.1 基本流程
4.2 子系统的划分
4.3 二级子系统的构建
4.4 相似度矩阵的计算
4.5 二级子系统是否为模式实例的判断
4.6 基于二级子系统的模式实例获取
4.7 本章小结
5 基于FSM的行为型模式确认
5.1 基本流程
5.2 行为型模式候选实例的获取
5.3 模式的类和方法到实例的映射及客户端的确认
5.4 候选实例的方法调用跟踪的捕获
5.5 方法调用跟踪与FSM的匹配
5.6 行为型模式候选实例的确认
5.7 本章小结
6 基于软件度量、命名特征和机器学习的行为型模式确认
6.1 基本流程
6.2 现有设计模式识别算法的选取
6.3 开源项目的选取
6.4 模式实例的存储与投票数统计
6.5 正负样本的判定与标记
6.6 设计模式的命名特征
6.7 基于人工神经网络的决策模型生成
6.8 基于决策模型的行为型模式候选实例的确认
6.9 本章小结
7 实验及结果分析
7.1 实验环境
7.2 评估指标
7.3 结果分析
7.4 本章小结
8 结论与展望
8.1 结论
8.2 下一步的工作
参考文献
附录A
致谢
作者简介
本文编号:4034402
【文章页数】:131 页
【学位级别】:博士
【文章目录】:
摘要
Abstract
1 引言
1.1 课题的背景及意义
1.2 国内外研究现状
1.2.1 源代码信息的提取
1.2.2 系统和模式的表示
1.2.3 模式搜索算法
1.2.4 支撑工具
1.2.5 时间性能的优化
1.2.6 基于机器学习的设计模式识别
1.2.7 模式变体的识别
1.3 当前研究存在的问题与不足
1.4 论文研究的主要内容及创新点
1.4.1 主要内容
1.4.2 创新点
1.5 章节安排
2 相关知识和技术
2.1 设计模式
2.2 UML
2.2.1 类图
2.2.2 序列图
2.3 相似度评分算法
2.4 FSM
2.5 软件度量
2.6 机器学习与ANN
2.6.1 机器学习
2.6.2 ANN
2.7 本章小结
3 系统和设计模式的表示及源代码信息的提取
3.1 源代码信息的提取
3.1.1 静态信息的提取
3.1.2 动态信息的提取
3.2 系统和设计模式的有向图/矩阵表示
3.3 行为型模式的FSM表示
3.4 本章小结
4 基于相似度评分和二级子系统的设计模式识别
4.1 基本流程
4.2 子系统的划分
4.3 二级子系统的构建
4.4 相似度矩阵的计算
4.5 二级子系统是否为模式实例的判断
4.6 基于二级子系统的模式实例获取
4.7 本章小结
5 基于FSM的行为型模式确认
5.1 基本流程
5.2 行为型模式候选实例的获取
5.3 模式的类和方法到实例的映射及客户端的确认
5.4 候选实例的方法调用跟踪的捕获
5.5 方法调用跟踪与FSM的匹配
5.6 行为型模式候选实例的确认
5.7 本章小结
6 基于软件度量、命名特征和机器学习的行为型模式确认
6.1 基本流程
6.2 现有设计模式识别算法的选取
6.3 开源项目的选取
6.4 模式实例的存储与投票数统计
6.5 正负样本的判定与标记
6.6 设计模式的命名特征
6.7 基于人工神经网络的决策模型生成
6.8 基于决策模型的行为型模式候选实例的确认
6.9 本章小结
7 实验及结果分析
7.1 实验环境
7.2 评估指标
7.3 结果分析
7.4 本章小结
8 结论与展望
8.1 结论
8.2 下一步的工作
参考文献
附录A
致谢
作者简介
本文编号:4034402
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/4034402.html