【抄録】Due to high flexibility in software design, it is important to extract and reuse repeated problems and solutions as design patterns in order to improve design efficiency and consistency. In this paper, we report the result of the survey on engineering researches on design patterns in object-oriented software development. Targeted researches include the design pattern application, detection and verification.
【抄録】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.