SCG Bibliography

Query:
case sensitive

Sort by: Display: Hide controls:

  1. Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts, and Andrew P. Black. Traits: A Mechanism for fine-grained Reuse. In TOPLAS: ACM Transactions on Programming Languages and Systems 28(2) p. 331—388, March 2006. DOI PDF 
    Abstract

    Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose traits, pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a non-trivial application into composable units.

  2. Nathanael Schärli, Oscar Nierstrasz, Stéphane Ducasse, Roel Wuyts, and Andrew Black. Traits: The Formal Model. Technical Report -2, Institut für Informatik, Universität Bern, Switzerland, November 2002. Also available as Technical Report CSE-02-013, OGI School of Science \& Engineering, Beaverton, Oregon, USA. PDF 
    Abstract

    Single-inheritance in object-oriented languages can lead to duplicated code in rich class libraries where feature-sharing cannot be linearized. Multiple-inheritance and mixins alleviate this problem, but lead to other difficulties in the face of evolution. Changes to classes or mixins can break code lower in the hierarchy in unexpected ways. Traits solve both problems by factoring out shared behaviour as sets of methods that do not depend on state. Traits have the important property that composition is symmetric, so changes do not lead to unexpected side effects. We present a formal model of traits, and define some basic properties of traits and classes.

  3. Nathanael Schärli. Traits — Composing Classes from Behavioral Building Blocks. Ph.D. thesis, University of Bern, February 2005. PDF 
    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.

Last changed by admin on 21 April 2009