@phdthesis{PHD,
title = {{Traits --- Composing Classes from Behavioral Building Blocks}},
author = {Nathanael Sch{\"a}rli},
month = {February},
school = {University of Berne},
url = {http://www.iam.unibe.ch/~scg/Archive/PhD/schaerli-phd.pdf},
year = {2005},
description = {Traits},
abstract = {Inheritance is well-known and accepted as a fundamental mechanism
for reuse in object-oriented languages. Unfortunately, the main variants
--- single inheritance, multiple inheritance, and mixin inheritance
--- all suffer from conceptual and practical problems related to
software reuse and robustness with respect to changes. In a rst part
of this thesis, we identify and illustrate these problems. To overcome
these problems, we then present traits, a simple compositional model
that extends single inheritance. A trait is essentially a (parameterized)
set of methods; it serves as a behavioral building block for classes
and is the primitive unit of code reuse. We develop a formal model
of traits that establishes how traits can be composed to form other
traits or classes, and we describe how we implemented traits in Squeak
Smalltalk by bootstrapping a new language kernel. We present our
experimental validation in which we apply traits to refactor parts
of the Smalltalk kernel and library, and we develop a programming
methodology around the usage of traits and the trait browser, the
tool that we implemented to take full advantage of the availability
of traits in the Squeak programming environment.},
file = {schaerli-phd.pdf:Traits\\schaerli-phd.pdf:PDF}, cvs = {NSchaerliPhD},
keywords = {SDSeminar Traits }
}