Traits: Composing Classes from Behavioral Building Blocks

Schärli, Nathanael (2005). Traits: Composing Classes from Behavioral Building Blocks. (Dissertation, University of Bern, Philosophisch-naturwissenschaftliche Fakultät)

[img] Text
schaerli-phd.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (1MB) | Request a copy

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.

Item Type:

Thesis (Dissertation)


08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG)




Manuela Bamert

Date Deposited:

29 Jan 2018 16:39

Last Modified:

21 Nov 2019 02:36




Actions (login required)

Edit item Edit item
Provide Feedback