title = {{Implementing software product lines using traits}},
  author = {Bettini, Lorenzo and Damiani, Ferruccio and Schaefer, Ina},
  booktitle = {Proceedings of the 25th ACM symposium on Applied Computing (SAC 2010)},
  editor = {Sung Y. Shin and  Sascha Ossowski and  Michael Schumacher and  Mathew J. Palakal and  Cheng Hung},
  pages = {2096-2102},
  abstract = {A software product line (SPL) is a set of software systems with
      well-defined commonalities and variabilities that are developed by
      managed reuse of common artifacts. In this paper, we present a
      novel approach to implement SPL by fine-grained reuse mechanisms
      which are orthogonal to class-based inheritance. We introduce
      where units of product functionality are modeled by traits, a
      construct that was already shown useful with respect to code reuse,
      and by records, a construct that complements traits to model the
      variability of the state part of products explicitly. Records and traits
      are assembled in classes that are used to build products. This composition
      of product functionalities is realized by explicit operators
      of the calculus, allowing code manipulations for modeling product
      variability. The FRTJ type system ensures that the products in the
      SPL are type-safe by type-checking only once the records, traits
      and classes shared by different products. Moreover, type-safety of
      an extension of a (type-safe) SPL can be guaranteed by checking
      only the newly added parts.},
  publisher = {ACM},
  year = {2010},