Skip to main content
Log in

Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines

An exploratory study

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13

Similar content being viewed by others

Notes

  1. http://fosd.net/fuji/, last accessed: 01.07.2014.

  2. http://www.dwheeler.com/sloccount/, last accessed: June 26, 2014.

  3. We report the variance in terms of the median absolute deviation from the median (MADM) using the ± notation along with the median value.

  4. 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Apel S, Leich T, Saake G (2008) Aspectual feature modules. IEEE Trans Softw Eng 34(2):162–180

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • Clements P, Krueger C (2002) Point – counterpoint: being proactive pays off - eliminating the adoption. IEEE Software 19(4):28–31

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Robillard M, Murphy G (2007) Representing concerns in source code. ACM Trans Softw Eng Methodol 16(1):3–38

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Stefan Sobernig.

Additional information

Communicated by: Ebrahim Bagheri, David Benavides, Per Runeson and Klaus Schmid

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-014-9336-6

Keywords

Navigation