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 the Featherweight Record Trait Java (FRTJ) calculus 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.

Implementing Software Product Lines using Traits

BETTINI, LORENZO;DAMIANI, Ferruccio;
2010-01-01

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 the Featherweight Record Trait Java (FRTJ) calculus 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.
2010
25th International Symposium on Applied Computing (SAC 2010)
Sierre, Switzerland
March 22 - 26, 2010
Proceedings of the 25th ACM symposium on Applied Computing (SAC 2010)
ACM
2096
2102
9781605586397
http://dl.acm.org/citation.cfm?id=1774088&CFID=126378504&CFTOKEN=13387582
http://portal.acm.org/browse_dl.cfm?linked=1&part=series&idx=SERIES179&coll=ACM&dl=ACM&CFID=82065991&CFTOKEN=80132802
http://www.acm.org/conferences/sac/sac2010/
Featherweight Java; Feature model; Product line; Trait; Type system
Lorenzo Bettini; Ferruccio Damiani; Ina Schaefer
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2318/71548
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 30
  • ???jsp.display-item.citation.isi??? ND
social impact