Abstract

Design patterns offer timeless and elegant solutions to common problems in software design. From a program-understanding and a reverse engineering perspective the discovery of patterns in a software artifact (design or code) represents a step in the program understanding process. It would be useful to find instances of design patterns especially in designs where they were not used explicitly or where their use is not documented, as this could improve the maintainability of software. Clustering is considered the most important unsupervised learning problem. The aim of clustering methods is to differentiate groups (classes or clusters) inside a given set of objects. In this paper we introduce a hierarchical clustering based approach in order to localize instances of design patterns in existing software systems. We also provide an experimental evaluation of our approach, illustrating its advantages in comparison with similar existing approaches.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.