Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
An Algorithm for Subgraph Isomorphism
Journal of the ACM (JACM)
Software Engineering: Theory and Practice
Software Engineering: Theory and Practice
IEEE Intelligent Systems
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs
IEEE Transactions on Pattern Analysis and Machine Intelligence
Mining Graph Data
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
Design pattern detection by template matching
Proceedings of the 2008 ACM symposium on Applied computing
A Rule-based Method to Match Software Patterns Against UML Models
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Design patterns have been widely adopted by software industry to reuse the best practices and improve the quality of software systems. In order to enable software engineers to understand and reengineer the software program, quite a few approaches have been developed to identify design patterns from source code. However, the existing approaches generally identify patterns sequentially. As a result, the computation time of these approaches is linearly dependent on the number of design patterns to be detected. In this paper, a new approach based on subgraph discovery is proposed to recoginze a set of design patterns at a time. The computational time of the novel algorithm is sublinearly dependent on the number of patterns. A state space graph is introduced to avoid the search space explosion and reduce the opportunity to detect subgraph isomorphism. We run detailed experiments on three open source systems to evaluate our approach. The results of our experiments confirm on the efficiency and effectiveness of the proposed approach.