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.
Users
Please
log in to take part in the discussion (add own reviews or comments).