Fundamental Nano-Patterns to Characterize and Classify Java Methods

  • Authors:
  • Jeremy Singer;Gavin Brown;Mikel Luján;Adam Pocock;Paraskevas Yiapanis

  • Affiliations:
  • University of Manchester, UK;University of Manchester, UK;University of Manchester, UK;University of Manchester, UK;University of Manchester, UK

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Fundamental nano-patterns are simple, static, binary properties of Java methods, such as ObjectCreator and Recursive. We present a provisional catalogue of 17 such nano-patterns. We report statistical and information theoretic metrics to show the frequency of nano-pattern occurrence in a large corpus of open-source Java projects. We proceed to give two example case studies that demonstrate potential applications for nano-patterns. The first study involves a quantitative comparison of two popular Java benchmarking suites, in terms of their relative object-orientedness and diversity. The second study involves applying machine learning techniques to program comprehension, using method nano-patterns as learning features. In both studies, nano-patterns provide concise summaries of Java methods to enable efficient and effective analysis.