摘要

设计模式检测是理解和维护软件系统的一项重要工作.以高效识别设计模式变体和提高设计模式识别准确率为目的,将面向对象度量与模式微结构相结合,提出一种基于堆叠泛化的设计模式检测方法.该方法应用典型的机器学习算法,分别训练度量分类器和微结构分类器,并基于两者的预测值和相关对象模型特征进一步训练,从而形成堆叠分类器.为了评估该方法,基于该方法开发了一个原型工具OOSdpd.该工具从Java字节码级别的系统实现中抽取设计模式实例,并在JUnit等几个经典的开源项目上进行实验.通过与现有的两种工具进行对比分析,实验验证了该方法在提高设计模式识别准确率及召回率方面的有效性.