基于度量和微结构堆叠泛化的设计模式检测方法的研究
发布时间:2021-04-08 07:55
设计模式检测是理解和维护软件系统的一项重要工作,它不仅有助于软件体系结构的恢复和发现,同时也是评估软件质量的一个重要依据。目前设计模式检测仍然存在一些问题:1)变体的检测效果不理想;2)结构相同意图不同的模式难以区分;3)行为型设计模式的检测复杂;4)组合爆炸问题依然突出;本文以高效识别设计模式变体和提高设计模式识别准确率为目的,将面向对象度量与模式微结构相结合,提出了一种基于堆叠泛化的设计模式检测方法。该方法应用典型的机器学习算法,针对每种设计模式,分别训练度量分类器和微结构分类器,并基于两者的预测值和相关对象模型特征进一步训练,从而形成堆叠分类器。通过这些分类器对一个候选的模式实例进行分类,从而预测候选的模式实例是不是真正的模式实例。在训练分类器之前,本文首先搜集训练用的正负模式实例,然后尽可能地为每个实例计算更多的候选度量特征和候选微结构特征,从而生成相关分类器的训练数据集,接着本文首先应用典型的特征选择算法对设计模式的候选度量特征和微结构特征进行特征选择,然后通过遍历典型的有监督学习算法来训练相关分类器,最终为实验的五种设计模式都找到了合适的度量特征集、度量分类器、微结构特征集...
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
设计模式通用检测框架一
图 2.1 设计模式通用检测框架一这些方法首先将设计模式和源码转换成相应的中间表示,然后在这些中间表示上执行结构分析、行为分析和语义分析,并最终输出检测到的设计模式实例。采用设计模式和源码的中间表示的好处之一是可以去掉无用信息,从而降低设计模式检测的复杂度,另外还可以借助设计模式和源码的中间表示来实现语言无关的设计模式检测。后者大多数符合下面这样一个通用的检测框架:
第 2 章 相关理论介绍程中,同一模式就会出现各种各样的变体。概括来讲,造成模式变体的原因有两个,一个是角色的变化,另一个是角色间关系的实现多样性。下面我们举例来说明这两个原因。角色的变化主要包括“增”、“减”、 “拆”、 “合”、 “变”。其中“增”指的是角色的增加,包括两种情况:中间类造成的角色增加和后代类造成的角色增加,举例来讲:
【参考文献】:
博士论文
[1]设计模式的形式化研究及其EMF实现[D]. 刘强.华东师范大学 2011
本文编号:3125171
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
设计模式通用检测框架一
图 2.1 设计模式通用检测框架一这些方法首先将设计模式和源码转换成相应的中间表示,然后在这些中间表示上执行结构分析、行为分析和语义分析,并最终输出检测到的设计模式实例。采用设计模式和源码的中间表示的好处之一是可以去掉无用信息,从而降低设计模式检测的复杂度,另外还可以借助设计模式和源码的中间表示来实现语言无关的设计模式检测。后者大多数符合下面这样一个通用的检测框架:
第 2 章 相关理论介绍程中,同一模式就会出现各种各样的变体。概括来讲,造成模式变体的原因有两个,一个是角色的变化,另一个是角色间关系的实现多样性。下面我们举例来说明这两个原因。角色的变化主要包括“增”、“减”、 “拆”、 “合”、 “变”。其中“增”指的是角色的增加,包括两种情况:中间类造成的角色增加和后代类造成的角色增加,举例来讲:
【参考文献】:
博士论文
[1]设计模式的形式化研究及其EMF实现[D]. 刘强.华东师范大学 2011
本文编号:3125171
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3125171.html