冯铁,靳乐,张家晨,王洪媛.基于堆叠泛化的设计模式检测方法.软件学报,2020,31(6):1703-1722 |
基于堆叠泛化的设计模式检测方法 |
Design Pattern Detection Approach Based on Stacked Generalization |
投稿时间:2018-04-27 修订日期:2018-12-06 |
DOI:10.13328/j.cnki.jos.005847 |
中文关键词: 设计模式检测|面向对象软件度量|模式微结构|堆叠泛化|机器学习 |
英文关键词:design pattern detection|object-oriented software metric|pattern micro-structure|stacked generalization|machine learning |
基金项目:国家自然科学基金(61471181);赛尔网络下一代互联网技术创新项目(NGII20180701) |
|
摘要点击次数: 576 |
全文下载次数: 601 |
中文摘要: |
设计模式检测是理解和维护软件系统的一项重要工作.以高效识别设计模式变体和提高设计模式识别准确率为目的,将面向对象度量与模式微结构相结合,提出一种基于堆叠泛化的设计模式检测方法.该方法应用典型的机器学习算法,分别训练度量分类器和微结构分类器,并基于两者的预测值和相关对象模型特征进一步训练,从而形成堆叠分类器.为了评估该方法,基于该方法开发了一个原型工具OOSdpd.该工具从Java字节码级别的系统实现中抽取设计模式实例,并在JUnit等几个经典的开源项目上进行实验.通过与现有的两种工具进行对比分析,实验验证了该方法在提高设计模式识别准确率及召回率方面的有效性. |
英文摘要: |
Design pattern detection plays an important role in understanding and maintaining software system. With the purpose of identifying variants of design pattern efficiently and improving the accuracy of design pattern detection, an approach of design pattern detection based on stacked generalization in combination with object-oriented software metrics and pattern micro-structures is proposed in this study. Applying some typical machine learning algorithms, the approach trains a metric classifier and a micro-structure classifier for each design pattern, after which a stacked classifier is further trained and constructed on the predictive values of the two classifiers and some related object modeling features. To evaluate the proposed approach, a prototype tool, namely OOSdpd, is developed to detect design pattern instances from Java bytecode files of a system. The experiments on several classic open source projects are carried out, such as JUnit etc., and the proposed approach is compared with two existing tools. Experiments prove the effectiveness of the proposed approach in terms of improving the accuracy and recall rate of design pattern detection. |
HTML 下载PDF全文 查看/发表评论 下载PDF阅读器 |