Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines: An exploratory study (bibtex)
by Sobernig, Stefan, Apel, Sven, andNorbert Siegmund, Sergiy, Kolesnikov, Sergiy and Siegmund, Norbert
Abstract:
A key idea of feature orientation is to decompose a software product line along the features it provides. Feature decomposition is orthogonal to object-oriented decomposition—it crosscuts the underlying package and class structure. It has been argued often that feature decomposition improves system structure by reducing coupling and by increasing cohesion. However, recent empirical findings suggest that this is not necessarily the case. In this exploratory, observational study, we investigate the decompositions of 28 feature-oriented software product lines into classes, features, and feature-specific class fragments. The product lines under investigation are implemented using the feature-oriented programming language Fuji. In particular, we quantify and compare the internal attributes import coupling and cohesion of the different product-line decompositions in a systematic, reproducible manner. For this purpose, we adopt three established software measures (e.g., coupling between units, CBU; internal-ratio unit dependency, IUD) as well as standard concentration statistics (e.g., Gini coefficient). In our study, we found that feature decomposition can be associated with higher levels of structural coupling in a product line than a decomposition into classes. Although coupling can be concentrated in very few features in most feature decompositions, there are not necessarily hot-spot features in all product lines. Interestingly, feature cohesion is not necessarily higher than class cohesion, whereas features are more equal in serving dependencies internally than classes of a product line. Our empirical study raises critical questions about alleged advantages of feature decomposition. At the same time, we demonstrate how our measurement approach of coupling and cohesion has potential to support static and dynamic analyses of software product lines (i.e., type checking and feature-interaction detection) by facilitating product sampling.
Reference:
Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines: An exploratory study (Sobernig, Stefan, Apel, Sven, andNorbert Siegmund, Sergiy, Kolesnikov, Sergiy and Siegmund, Norbert), In Empirical Software Engineering, Springer Nature, volume 21, 2016.
Bibtex Entry:
@article{Sobernig2014,
abstract = {A key idea of feature orientation is to decompose a software product line along the features it provides. Feature decomposition is orthogonal to object-oriented decomposition—it crosscuts the underlying package and class structure. It has been argued often that feature decomposition improves system structure by reducing coupling and by increasing cohesion. However, recent empirical findings suggest that this is not necessarily the case. In this exploratory, observational study, we investigate the decompositions of 28 feature-oriented software product lines into classes, features, and feature-specific class fragments. The product lines under investigation are implemented using the feature-oriented programming language Fuji. In particular, we quantify and compare the internal attributes import coupling and cohesion of the different product-line decompositions in a systematic, reproducible manner. For this purpose, we adopt three established software measures (e.g., coupling between units, CBU; internal-ratio unit dependency, IUD) as well as standard concentration statistics (e.g., Gini coefficient). In our study, we found that feature decomposition can be associated with higher levels of structural coupling in a product line than a decomposition into classes. Although coupling can be concentrated in very few features in most feature decompositions, there are not necessarily hot-spot features in all product lines. Interestingly, feature cohesion is not necessarily higher than class cohesion, whereas features are more equal in serving dependencies internally than classes of a product line. Our empirical study raises critical questions about alleged advantages of feature decomposition. At the same time, we demonstrate how our measurement approach of coupling and cohesion has potential to support static and dynamic analyses of software product lines (i.e., type checking and feature-interaction detection) by facilitating product sampling.},
author = {Sobernig, Stefan and Apel, Sven and andNorbert Siegmund, Sergiy and Kolesnikov, Sergiy and Siegmund, Norbert},
doi = {10.1007/s10664-014-9336-6},
institution = {Institute for Information Systems and New Media, WUVienna University of Economics and Business},
isbn = {13823256 (ISSN)},
issn = {15737616},
journal = {Empirical Software Engineering},
keywords = {100,Feature-oriented programming,Fuji,Software measurement,Software product lines,Structural cohesion,Structural coupling,pythia},
mendeley-tags = {pythia},
number = {4},
pages = {1670--1705},
publisher = {Springer Nature},
title = {{Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines: An exploratory study}},
url = {http://www.infosun.fim.uni-passau.de/publications/docs/WU2014_01.pdf},
volume = {21},
year = {2016}
}
Powered by bibtexbrowser