Hayden Melton
University of Auckland
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Hayden Melton.
asia-pacific software engineering conference | 2010
Ewan D. Tempero; Craig Anslow; Jens Dietrich; Ted Han; Jing Li; Markus Lumpe; Hayden Melton; James Noble
In order to increase our ability to use measurement to support software development practise we need to do more analysis of code. However, empirical studies of code are expensive and their results are difficult to compare. We describe the Qualitas Corpus, a large curated collection of open source Java systems. The corpus reduces the cost of performing large empirical studies of code and supports comparison of measurements of the same artifacts. We discuss its design, organisation, and issues associated with its development.
conference on object-oriented programming systems, languages, and applications | 2006
Gareth J. Baxter; Marcus Frean; James Noble; Mark Rickerby; Hayden Smith; Matt Visser; Hayden Melton; Ewan D. Tempero
Large amounts of Java software have been written since the languages 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.
Empirical Software Engineering | 2007
Hayden Melton; Ewan D. Tempero
Advocates of the design principle avoid cyclic dependencies among modules have argued that cycles are detrimental to software quality attributes such as understandability, testability, reusability, buildability and maintainability, yet folklore suggests such cycles are common in real object-oriented systems. In this paper we present the first significant empirical study of cycles among the classes of 78 open- and closed-source Java applications. We find that, of the applications comprising enough classes to support such a cycle, about 45% have a cycle involving at least 100 classes and around 10% have a cycle involving at least 1,000 classes. We present further empirical evidence to support the contention these cycles are not due to intrinsic interdependencies between particular classes in a domain. Finally, we attempt to gauge the strength of connection among the classes in a cycle using the concept of a minimum edge feedback set.
european conference on object oriented programming | 2008
Ewan D. Tempero; James Noble; Hayden Melton
Inheritance is a crucial part of object-oriented programming, but its use in practice, and the resulting large-scale inheritance structures in programs, remain poorly understood. Previous studies of inheritance have been relatively small and have generally not considered issues such as Javas distinction between classes and interfaces, nor have they considered the use of external libraries. In this paper we present the first substantial empirical study of the large-scale use of inheritance in a contemporary OO programming language. We present a suite of structured metrics for quantifying inheritance in Java programs. We present the results of performing a corpus analysis using those metrics to over 90 applications consisting of over 100,000 separate classes and interfaces. Our analysis finds higher use of inheritance than anticipated, variation in the use of inheritance between interfaces and classes, and differences between inheritance within application types compared with inheritance from external libraries.
conference on object-oriented programming systems, languages, and applications | 2006
Hayden Melton
There is a plethora of instructional literature on Object-Oriented (OO) design. Riel’s book [17] of heuristics, for instance, presents 60 rules of thumb for structuring OO systems (e.g don’t create god classes). The Gang of Four’s Design Patterns book [7] contains 23 “patterns”, which are “elegant” solutions to recurring OO design problems (e.g. use Observer to break the dependency of an application’s model on its view). Other books [4, 19, 10] provide entire methodologies for structuring OO systems with advice ranging from naming conventions (e.g. classes should be nouns) to criteria for identifying abstractions as candidates for operations, classes and subsystems. Despite the vast amount of literature describing how OO systems should be structured, we have very little knowledge of how they are actually structured. In other words, we have very little idea the extent to which software developers in industry follow the “design principles” proposed in the literature. Casual observations made by luminaries such as Wirth [20], Parnas [16] and Foote [6] suggest that many design principles are not widely followed in the construction of “real” software systems. In this paper I explain why we would like to know with greater certainty the extent to which developers of OO software follow design principles, and how we might go about determining this.
ACSC '07 Proceedings of the thirtieth Australasian conference on Computer science - Volume 62 | 2007
Hayden Melton; Ewan D. Tempero
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48 | 2006
Hayden Melton; Ewan D. Tempero
ACSC '07 Proceedings of the thirtieth Australasian conference on Computer science - Volume 62 | 2007
Hayden Melton; Ewan D. Tempero
australian software engineering conference | 2008
Hong Yul Yang; Ewan D. Tempero; Hayden Melton
empirical software engineering and measurement | 2007
Hayden Melton; Ewan D. Tempero