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.
Similar content being viewed by others
Notes
http://fosd.net/fuji/, last accessed: 01.07.2014.
http://www.dwheeler.com/sloccount/, last accessed: June 26, 2014.
We report the variance in terms of the median absolute deviation from the median (MADM) using the ± notation along with the median value.
We apply a standard technique of outlier identification: modified z-scores (Iglewicz and Hoaglin 1993).
References
Ajila S, Dumitrescu R (2007) Experimental use of code delta, code churn, and rate of change to understand software product line evolution. J Syst Softw 80(1):74–91
Apel S, Beyer D (2011) Feature cohesion in software product lines: an exploratory study. In: Proc. ICSE, pp 421–430
Apel S, Kästner C (2009) An overview of feature-oriented software development. J Object Technol 8(5):49–84
Apel S, Leich T, Saake G (2008) Aspectual feature modules. IEEE Trans Softw Eng 34(2):162–180
Apel S, Kästner C, Größlinger A, Lengauer C (2010) Type safety for feature-oriented product lines. Autom Softw Eng 17(3):251–300. doi:10.1007/s10515-010-0066-8
Apel S, Speidel H, Wendler P, von Rhein A, Beyer D (2011) Detection of feature interactions using feature-aware verification. In: Proc. ASE. IEEE CS, pp 372–375
Apel S, Kolesnikov S, Liebig J, Kästner C, Kuhlemann M, Leich T (2012) Access control in feature-oriented programming. Sci Comput Program 77(3):174–187
Apel S, Batory D, Kästner C, Saake G (2013a) Feature-oriented software product lines: concepts and implementation. Springer
Apel S, Batory DS, Kästner C, Saake G (2013b) Feature-oriented software product lines - concepts and implementation. Springer. doi:10.1007/978-3-642-37521-7
Apel S, Kästner C, Lengauer C (2013c) Language-independent and automated software composition: the FeatureHouse experience. IEEE Trans Softw Eng 39(1):63–79
Apel S, Kolesnikov SS, Siegmund N, Kästner C, Garvin B (2013d) Exploring feature interactions in the wild: the new feature-interaction challenge. In: Proc. FOSD. ACM, pp 1–8
Apel S, von Rhein A, Wendler P, Größlinger A, Beyer D (2013e) Strategies for product-line verification: case studies and experiments. In: Proc. ICSE. IEEE, pp 482–491
Batory D, Sarvela J, Rauschmayer A (2004) Scaling step-wise refinement. IEEE Trans Softw Eng 30(6):355–371
Berger T, Guo J (2013) Towards system analysis with variability model metrics. In: Proc. VaMoS. ACM, pp 23–23
Bouwers E, Correia J, van Deursen A, Visser J (2011) Quantifying the analyzability of software architectures. In: Proc. WICSA. IEEE CS, pp 83–92
Briand L, Daly J, Wüst J (1998) A unified framework for cohesion measurement in object-oriented systems. Empir Softw Eng 3(1):65–117
Briand L, Daly J, Wüst J (1999) A unified framework for coupling measurement in object-oriented systems. IEEE Trans Softw Eng 25(1):91–121
Burrows R, Ferrari FC, Garcia A, Taïani F (2010) An empirical evaluation of coupling metrics on aspect-oriented programs. In: Proc. WETSoM, ACM pp 53–58
Clauset A, Shalizi C, Newman M (2009) Power-law distributions in empirical data. SIAM Rev 51(4):661–703
Clements P, Krueger C (2002) Point – counterpoint: being proactive pays off - eliminating the adoption. IEEE Software 19(4):28–31
Czarnecki K, Eisenecker U (2000) Generative programming – methods, tools, and applications, 6th edn. Addison-Wesley
D’Ambros M, Lanza M, Robbes R (2010) An extensive comparison of bug prediction approaches. In: Proc. MSR, IEEE pp 31–41
Eaddy M, Aho AV, Murphy GC (2007) Identifying, assigning, and quantifying crosscutting concerns. In: Proc. ACoM, IEEE CS
Eaddy M, Aho A, Antoniol G, Gueheneuc Y (2008) CERBERUS: Tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In: Proc. ICPC, IEEE pp 53–62
Emam KE, Melo WL, Machado JC (2001) The prediction of faulty classes using object-oriented design metrics. J Syst Softw 56(1):63–75
Ferreira K, Bigonha M, Bigonha R, Mendes L, Almeida H (2012) Identifying thresholds for object-oriented software metrics. J Syst Softw 85(2):244–257
Figueiredo E, Cacho N, Sant’Anna C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Filho F, Dantas F (2008) Evolving software product lines with aspects: An empirical study on design stability. In: Proc. ICSE, ACM pp 261–270
Garvin B, Cohen M (2011) Feature interaction faults revisited: an exploratory study. In: Proc. ISSRE. IEEE, pp 90–99
Iglewicz B, Hoaglin DC (1993) How to detect and handle outliers, vol 16. ASQC Quality Press
Kakwani N (1980) Income inequality and poverty. Oxford University Press
Kästner C, Apel S, Ostermann K (2011) The road to feature modularity? In: Proc. FOSD. ACM, pp 5:1–5:8
Kästner C, Apel S, Thüm T, Saake G (2012) Type checking annotation-based product lines. ACM Trans Softw Eng Methodol 21(3):14:1–14:39
Kiczales G, Mezini M (2005) Aspect-oriented programming and modular reasoning. In: Proc. ICSE. ACM, pp 49–58
Kolesnikov S, Apel S, Siegmund N, Sobernig S, Kästner C, Senkaya S (2013a) Predicting quality attributes of software product lines using software and network measures and sampling. In: Proc. VaMoS. ACM, pp 25–29
Kolesnikov S, von Rhein A, Hunsen C, Apel S (2013b) A comparison of product-based, feature-based, and family-based type checking. In: Proc. GPCE. ACM, pp 115–124
Liebig J, Apel S, Lengauer C, Kästner C, Schulze M (2010) An analysis of the variability in forty preprocessor-based software product lines. In: Proc. ICSE. ACM, pp 105–114
Lilienthal C (2009) Architectural complexity of large-scale software systems. In: Proc. CSMR. IEEE, pp 17–26
Lopez-Herrejon R, Apel S (2007) Measuring and characterizing crosscutting in aspect-based programs: basic metrics and case studies. In: Proc. FASE. Springer pp 423–437
Lopez-Herrejon R, Batory D (2001) A standard problem for evaluating product-line methodologies. In: Proc. GCSE. Springer pp 10–24
Louridas P, Spinellis D, Vlachos V (2008) Power laws in software. ACM Trans Softw Eng Methodol 18(1):2:1–2:26
Marchesi M, Pinna S, Serra N, Tuveri S (2004) Power laws in Smalltalk. In: Proc. ESUG joint event, ESUG
Montagud S, Abrahão S, Insfran E (2012) A systematic review of quality attributes and measures for software product lines. Softw Qual J 20(4–5):425–486. doi:10.1007/s11219-011-9146-7
Nguyen H, Kästner C, Nguyen TN (2014) Exploring variability-aware execution for testing plugin-based web applications. In: Proc. ICSE. ACM, pp 907–918. doi:10.1145/2568225.2568300
Oster S, Markert F, Ritter P (2010) Automated incremental pairwise testing of software product lines. In: Proc. SPLC. Springer, pp 196–210. doi:10.1007/978-3-642-15579-6_14
Potanin A, Noble J, Frean M, Biddle R (2005) Scale-free geometry in OO programs. Comm ACM 48(5):99–103
Revelle M, Gethers M, Poshyvanyk D (2011) Using structural and textual information to capture feature coupling in object-oriented software. Empir Softw Eng 16(6):773–811
Robillard M, Murphy G (2007) Representing concerns in source code. ACM Trans Softw Eng Methodol 16(1):3–38
Sant’Anna C, Gracia A, Chavez C, Lucena C, von Staa A (2003) On the reuse and maintenance of aspect-oriented software: an assessment framework. In: Proc. BSSE
Sarkar S, Kak A, Rama G (2008) Metrics for measuring the quality of modularization of large-scale object-oriented software. IEEE Trans Softw Eng 34(5):700–720
Shatnawi R, Li W, Swain J, Newman T (2010) Finding software metrics threshold values using ROC curves. J Softw Maint-Res Pr 22(1):1–16
Siegmund N, Rosenmüller M, Kästner C, Giarrusso P, Apel S, Kolesnikov S (2011) Scalable prediction of non-functional properties in software product lines. In: Proc. SPLC. IEEE, pp 160–169. doi:10.1109/SPLC.2011.20
Siegmund N, Kolesnikov S, Kästner C, Apel S, Batory D, Rosenmüller M, Saake G (2012) Predicting performance via automated feature-interaction detection. In: Proc. ICSE. IEEE, pp 167–177. doi:10.1109/ICSE.2012.6227196
Siegmund N, von Rhein A, Apel S (2013) Family-based performance measurement. In: Proc. GPCE. AM, pp 95–104. doi:10.1145/2517208.2517209
Smaragdakis Y, Batory D (2002) Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans Softw Eng Methodol 11(2):215–255. doi:10.1145/505145.505148
Sobernig S (2010) Feature interaction networks. In: Proc. SAC. ACM, pp 2360–2364. doi:10.1145/1774088.1774574
Sobernig S, Apel S, Kolesnikov S, Siegmund N (2014) Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines. Available at http://epub.wu.ac.at/id/eprint/4186, technical Reports / Institute for Information Systems and New Media (WU Vienna), 2014/01
Stevens W, Myers G, Constantine L (1999) Structured design. IBM Syst J 38(2/3):231–256
Taube-Schock C, Walker R, Witten I (2011) Can we avoid high coupling? In: Proc. ECOOP. Springer, pp 204–228. doi:10.1007/978-3-642-22655-7_10
Thüm T, Apel S, Kästner C, Schaefer I, Saake G (2014) A classification and survey of analysis strategies for software product lines. ACM Comput Surv 47(1):6:1–6:45. doi:10.1145/2580950
Vasilescu B, Serebrenik A, van den Brand M (2011) You can’t control the unfamiliar: a study on the relations between aggregation techniques for software metrics. In: Proc. ICSM. IEEE, pp 313–322. doi:10.1109/ICSM.2011.6080798
Wheeldon R, Counsell S (2003) Power law distributions in class relationships. In: Proc. SCAM> IEEE, pp 45–54. doi:10.1109/SCAM.2003.1238030
Wong W, Gokhale S, Horgan J (2000) Quantifying the closeness between program components and features. J Syst Softw 54(2):87–98. doi:10.1016/S0164-1212(00)00029-7
Yilmaz C, Cohen M, Porter A (2006) Covering arrays for efficient fault characterization in complex configuration spaces. IEEE Trans Softw Eng 32(1):20–34. doi:10.1109/TSE.2006.8
Acknowledgments
This work has been supported by the German Research Foundation (AP 206/2, AP 206/4, AP 206/5, and AP 206/6).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Ebrahim Bagheri, David Benavides, Per Runeson and Klaus Schmid
Rights and permissions
About this article
Cite this article
Sobernig, S., Apel, S., Kolesnikov, S. et al. Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines. Empir Software Eng 21, 1670–1705 (2016). https://doi.org/10.1007/s10664-014-9336-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-014-9336-6