TY - GEN
T1 - Mining object-oriented design models for detecting identical design structures
AU - Tekin, Umut
AU - Erdemir, Ural
AU - Buzluca, Feza
PY - 2012
Y1 - 2012
N2 - The object-oriented design is the most popular design methodology of the last twenty-five years. Several design patterns and principles are defined to improve the design quality of object-oriented software systems. In addition, designers can use unique design motifs which are particular for the specific application domain. Another common habit is cloning and modifying some parts of the software while creating new modules. Therefore, object-oriented programs can include many identical design structures. This work proposes a sub-graph mining based approach to detect identical design structures in object-oriented systems. By identifying and analyzing these structures, we can obtain useful information about the design, such as commonly-used design patterns, most frequent design defects, domain-specific patterns, and design clones, which may help developers to improve their knowledge about the software architecture. Furthermore, problematic parts of frequent identical design structures are the appropriate refactoring opportunities because they affect multiple areas of the architecture. Experiments with several open-source projects show that we can successfully find many identical design structures in each project. We observe that usually most of the identical structures are an implementation of common design patterns; however we also detect various anti-patterns, domain-specific patterns, and design-level clones.
AB - The object-oriented design is the most popular design methodology of the last twenty-five years. Several design patterns and principles are defined to improve the design quality of object-oriented software systems. In addition, designers can use unique design motifs which are particular for the specific application domain. Another common habit is cloning and modifying some parts of the software while creating new modules. Therefore, object-oriented programs can include many identical design structures. This work proposes a sub-graph mining based approach to detect identical design structures in object-oriented systems. By identifying and analyzing these structures, we can obtain useful information about the design, such as commonly-used design patterns, most frequent design defects, domain-specific patterns, and design clones, which may help developers to improve their knowledge about the software architecture. Furthermore, problematic parts of frequent identical design structures are the appropriate refactoring opportunities because they affect multiple areas of the architecture. Experiments with several open-source projects show that we can successfully find many identical design structures in each project. We observe that usually most of the identical structures are an implementation of common design patterns; however we also detect various anti-patterns, domain-specific patterns, and design-level clones.
KW - clones
KW - graph mining
KW - identical design structures
KW - pattern extraction
KW - software design models
KW - software motifs
UR - http://www.scopus.com/inward/record.url?scp=84864225735&partnerID=8YFLogxK
U2 - 10.1109/IWSC.2012.6227865
DO - 10.1109/IWSC.2012.6227865
M3 - Conference contribution
AN - SCOPUS:84864225735
SN - 9781467317955
T3 - 2012 6th International Workshop on Software Clones, IWSC 2012 - Proceedings
SP - 43
EP - 49
BT - 2012 6th International Workshop on Software Clones, IWSC 2012 - Proceedings
T2 - 2012 6th International Workshop on Software Clones, IWSC 2012
Y2 - 4 June 2012 through 4 June 2012
ER -