Understanding the shape of Java software

  • Authors:
  • Gareth Baxter;Marcus Frean;James Noble;Mark Rickerby;Hayden Smith;Matt Visser;Hayden Melton;Ewan Tempero

  • Affiliations:
  • Victoria University of Wellington, Wellington, New Zealand;Victoria University of Wellington, Wellington, New Zealand;Victoria University of Wellington, Wellington, New Zealand;Victoria University of Wellington, Wellington, New Zealand;Victoria University of Wellington, Wellington, New Zealand;Victoria University of Wellington, Wellington, New Zealand;University of Auckland, Auckland, New Zealand;University of Auckland, Auckland, New Zealand

  • Venue:
  • Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Large amounts of Java software have been written since the language's escape into unsuspecting software ecology more than ten years ago. Surprisingly little is known about the structure of Java programs in the wild: about the way methods are grouped into classes and then into packages, the way packages relate to each other, or the way inheritance and composition are used to put these programs together. We present the results of the first in-depth study of the structure of Java programs. We have collected a number of Java programs and measured their key structural attributes. We have found evidence that some relationships follow power-laws, while others do not. We have also observed variations that seem related to some characteristic of the application itself. This study provides important information for researchers who can investigate how and why the structural relationships we find may have originated, what they portend, and how they can be managed.