• DocumentCode
    588588
  • Title

    The Order of Things: How developers sort fields and methods

  • Author

    Biegel, Benjamin ; Beck, Fabio ; Hornig, W. ; Diehl, Stephan

  • Author_Institution
    Univ. of Trier, Trier, Germany
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    88
  • Lastpage
    97
  • Abstract
    In source code files, fields and methods are arranged in linear order. Modern programming languages such as Java do not constrain this order-developers are free to choose any sequence. In this paper we examine the largely unexplored strategies developers apply for ordering fields and methods: First, we use visualization to explore different ordering criteria within two open source Java projects. Second, we verify our observations in a metric-based analysis on an extended set of 16 projects. Third, we present the results of a survey that reflects the opinion and applied ordering strategies of 52 developers. 87% of the participants agreed that ordering of fields and methods is meaningful or important. Our results suggest that there exists a set of criteria repeatedly used for ordering. Among these, the categories defined in the official Java Code Conventions appear to be the primary ordering criterion. However, in the individual strategies of the participants of the survey, we identified 15 ordering criteria additional to the five criteria we considered in the empirical analysis.
  • Keywords
    Java; data visualisation; object-oriented programming; public domain software; software engineering; empirical analysis; field ordering; field sorting; method ordering; method sorting; metric-based analysis; official Java Code Conventions; open source Java project; ordering criteria; ordering criterion; ordering strategy; programming language; software development; source code files; visualization; Indexes; Java; Measurement; Semantics; Software maintenance; Sorting; Visualization; code conventions; code navigation; linear arrangement;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405258
  • Filename
    6405258