@article {4544, title = {Performance Comparison of Query-based Techniques for Anti-Pattern Detection}, journal = {Information and Software Technology}, volume = {65}, year = {2015}, month = {09/2015}, pages = {147-165}, chapter = {147}, abstract = {

Context: Program queries play an important role in several software evolution tasks like program comprehension, impact analysis, or the automated identification of anti-patterns for complex refactoring operations. A central artifact of these tasks is the reverse engineered program model built up from the source code (usually an Abstract Semantic Graph, ASG), which is traditionally post-processed by dedicated, hand-coded queries.

Objective: Our paper investigates the costs and benefits of using the popular industrial Eclipse Modeling Framework (EMF) as an underlying representation of program models processed by four different general-purpose model query techniques based on native Java code, OCL evaluation and (incremental) graph pattern matching.

Method: We provide in-depth comparison of these techniques on the source code of 28 Java projects using anti-pattern queries taken from refactoring operations in different usage profiles.

Results: Our results show that general purpose model queries can outperform hand-coded queries by 2-3 orders of magnitude, with the trade-off of an increased in memory consumption and model load time of up to an order of magnitude.

Conclusion: The measurement results of usage profiles can be used as guidelines for selecting the appropriate query technologies in concrete scenarios.

}, keywords = {IncQuery}, issn = {0950-5849}, doi = {10.1016/j.infsof.2015.01.003}, author = {Zolt{\'a}n Ujhelyi and G{\'a}bor Sz{\H o}ke and {\'A}kos Horv{\'a}th and Norbert Istv{\'a}n Csisz{\'a}r and L{\'a}szl{\'o} Vid{\'a}cs and D{\'a}niel Varr{\'o} and Rudolf Ferenc} }