2011 · 22 citations · 11 references
ComputingComputer EngineeringComputer ScienceMachine LearningRequirements EngineeringSoftware EngineeringDesign AnalyticsDesign ProcessSoftware ArchitectureSoftware DesignSoftware MetricsSoftware ModelingArchitecture MetricsBug Pattern DetectionDesign PatternsDesign Performance MetricsMetricsSoftware Evolution MetricsSoftware Project Metrics
Abstract—The understandability, maintainability, and reusability of object-oriented programs could be improved by automatically detecting well-known design patterns in programs. Many existing detection techniques are based on static analysis and use strict conditions composed of class structure data. Hence, it is difficult for them to detect design patterns in which the class structures are similar. Moreover, it is difficult for them to deal with diversity in design pattern applications. We propose a design pattern detection technique using metrics and machine learning. Our technique judges candidates for the roles that compose the design patterns by using machine learning and measurements of metrics, and it detects design patterns by analyzing the relations between candidates. It suppresses false negatives and distinguishes patterns in which the class structures are similar. We conducted experiments that showed that our technique was more accurate than two previous techniques. Keywords—component; Object-oriented software, Design pattern, Software metrics, Machine learning
11
Reverse Engineering of Design Patterns from Java Source Code
Nija Shi, Ronald A. Olsson · 2006 · 186 citations