• DocumentCode
    251848
  • Title

    Anti-pattern detection with model queries: A comparison of approaches

  • Author

    Ujhelyi, Zoltan ; Horvath, Andras ; Varro, Daniel ; Csiszar, Norbert Istvan ; Szoke, Gabor ; Vidacs, Laszlo ; Ferenc, Rudolf

  • Author_Institution
    Dept. of Meas. & Inf. Syst., Budapest Univ. of Technol. & Econ., Budapest, Hungary
  • fYear
    2014
  • fDate
    3-6 Feb. 2014
  • Firstpage
    293
  • Lastpage
    302
  • Abstract
    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 Semantic Graph, ASG), which is traditionally post-processed by dedicated, hand-coded queries. Our paper investigates the use of the popular industrial Eclipse Modeling Framework (EMF) as an underlying representation of program models processed by three general-purpose model query techniques based on native Java code, local-search and incremental evaluation. We provide in-depth comparison of these techniques on the source code of 17 Java projects using queries taken from refactoring operations in different usage profiles. Our results show that general purpose model queries outperform hand-coded queries by 2-3 orders of magnitude, while there is a 5-10 times increase in memory consumption and model load time. In addition, measurement results of usage profiles can be used as guidelines for selecting the appropriate query technologies in concrete scenarios.
  • Keywords
    Java; query processing; reverse engineering; source code (software); ASG; EMF; Java projects; abstract semantic graph; antipattern detection; automated identification; central artifact; complex refactoring operations; general purpose model query techniques; hand coded queries; hand-coded queries; impact analysis; incremental evaluation; local search; memory consumption; model load time; native Java code; popular industrial eclipse modeling framework; program models; program queries; purpose model queries; query technologies; reverse engineered program model; software evolution tasks; source code; usage profiles; Abstracts; Analytical models; Java; Load modeling; Pattern matching; Search problems; Semantics;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week - IEEE Conference on
  • Conference_Location
    Antwerp
  • Type

    conf

  • DOI
    10.1109/CSMR-WCRE.2014.6747181
  • Filename
    6747181