Skip to main content
Log in

SPL Conqueror: Toward optimization of non-functional properties in software product lines

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

A software product line (SPL) is a family of related programs of a domain. The programs of an SPL are distinguished in terms of features, which are end-user visible characteristics of programs. Based on a selection of features, stakeholders can derive tailor-made programs that satisfy functional requirements. Besides functional requirements, different application scenarios raise the need for optimizing non-functional properties of a variant. The diversity of application scenarios leads to heterogeneous optimization goals with respect to non-functional properties (e.g., performance vs. footprint vs. energy optimized variants). Hence, an SPL has to satisfy different and sometimes contradicting requirements regarding non-functional properties. Usually, the actually required non-functional properties are not known before product derivation and can vary for each application scenario and customer. Allowing stakeholders to derive optimized variants requires us to measure non-functional properties after the SPL is developed. Unfortunately, the high variability provided by SPLs complicates measurement and optimization of non-functional properties due to a large variant space. With SPL Conqueror, we provide a holistic approach to optimize non-functional properties in SPL engineering. We show how non-functional properties can be qualitatively specified and quantitatively measured in the context of SPLs. Furthermore, we discuss the variant-derivation process in SPL Conqueror that reduces the effort of computing an optimal variant. We demonstrate the applicability of our approach by means of nine case studies of a broad range of application domains (e.g., database management and operating systems). Moreover, we show that SPL Conqueror is implementation and language independent by using SPLs that are implemented with different mechanisms, such as conditional compilation and feature-oriented programming.

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

Similar content being viewed by others

Notes

  1. Please note, a feature model looks similar to a goal model often used for requirements engineering (van Lamsweerde 2001). However, the concepts cannot be compared. A feature model describes the variability of an entire SPL, i.e., all products.

  2. Available at: http://www.oracle.com/technetwork/database/berkeleydb/.

  3. The sum of the footprint of features Base, Replication and Cryptography is 448 KB.

  4. Available at: http://sqlite.org.

  5. In fact, a single measurement takes approximately 5 min. Measuring all 288 variants would take ca. 2.9 × 1021 years.

  6. Measurement theory defines which operations are valid for which scale of measurement. For example, we can only use median and percentile operations for an ordinal scale, because we only have a totally ordered set of measures.

  7. Maintainability can be derived from source code metrics to some degree.

  8. We provide the raw material of our measurements and evaluations on our website: http://fosd.de/SPLConqueror.

  9. http://www.campwoodsw.com/sourcemonitor.html.

  10. The SPLs are: LinkedList, ZipMe, PKJab, SensorNetwork and Violet.

  11. Please note, that this is only an example. Such a design decision should be made by domain experts and SPL vendors.

  12. The complete measurement can be found at our website: http://fosd.de/SPLConqueror.

  13. Since feature Compress is a mandatory feature, it is present in every product. Hence, the size of this feature is measured together with the size of the SPL’s core feature Base.

  14. We used the Microsoft C compiler and /O2 optimization level as compiler flag.

References

  • Antkiewicz, M., & Czarnecki, K. (2004). Featureplugin: Feature modeling plug-in for Eclipse. In Workshop on eclipse technology eXchange (pp. 67–72). New York: ACM Press.

  • Apel, S., & Beyer, D. (2011). Feature cohesion in software product lines: An exploratory study. In Proceedings of the International Software Engineering Conference (ICSE) (pp. 421–430). New York: ACM Press.

  • Bagnall, A. J., Rayward-Smith, V. J., & Whittley, I. M. (2001). The next release problem. Information and Software Technology, 43(14), 883–890.

    Article  Google Scholar 

  • Batory, D. (2005). Feature models, grammars, and propositional formulas. In Proceedings of the International Software Product Line Conference (SPLC) (Vol. 3714, pp. 7–20). Berlin: Springer, LNCS.

  • Batory, D., Sarvela, J. N., & Rauschmayer, A. (2004). Scaling step-wise refinement. IEEE Transactions on Software Engineering (TSE), 30(6), 355–371

    Article  Google Scholar 

  • Benavides, D., Segura, S., Trinidad, P., & Cortés, A. R. (2007). FAMA: Tooling a framework for the automated analysis of feature models. In Proceedings of the Workshop on Variability Modelling of Software-intensive Systems (VaMoS) (pp. 129–134). Berlin: Springer.

  • Benavides, D., Ruiz-Cortés, A., & Trinidad, P. (2005). Automated reasoning on feature models. In International Conference on Advanced Information Systems Engineering (CAISE) (Vol. 3520, pp. 491–503). Berlin: Springer, LNCS.

  • Bøegh, J., Depanfilis, S., Kitchenham, B., & Pasquini, A. (1999). A method for software quality planning, control, and evaluation. IEEE Software, 16, 69–77.

    Article  Google Scholar 

  • Boehm, B. W., Brown, J. R., Kaspar, H., Lipow, M., Macleod, G. J., & Merritt, M. J. (1978). Characteristics of software wuality (TRW series of software technology). Amsterdam: Elsevier.

    Google Scholar 

  • Botterweck, G., Nestor, D., Preußner, A., Cawley, C., & Thiel, S. (2007). Towards supporting feature configuration by interactive visualization. In Proceedings of Workshop on Visualisation in Software Product Line Engineering (ViSPLE), IEEE Computer Society, pp. 125–131.

  • Chung, L., & do Prado Leite, J. (2009). On non-functional requirements in software engineering. In Conceptual modeling: Foundations and applications (Vol. 5600, Chap 19, pp. 363–379). Berlin: Springer, LNCS.

  • Chung, L., Nixon, B. A., & Yu, E. (1995). Using non-functional requirements to systematically support change. In Proceedings of the International Symposium on Requirements Engineering (RE), IEEE Computer Society, pp. 132–139.

  • Chung, L., Nixon, B. A., Yu, E., & Mylopoulos, J. (1999). Non-functional requirements in software engineering. Berlin: Springer.

    Book  Google Scholar 

  • Clements, P., & Northrop, L. (2002). Software product lines: Practices and patterns. MA: Addison-Wesley.

    Google Scholar 

  • Cooper, K. D., Subramanian, D., & Torczon, L. (2002). Adaptive optimizing compilers for the 21st century. Journal of Supercomputing, 23(1), 7–22.

    Article  MATH  Google Scholar 

  • Czarnecki, K., & Eisenecker, U. (2000). Generative programming: Methods, tools, and applications. MA: Addison-Wesley.

    Google Scholar 

  • Czarnecki, K., Kim, C. H. P., & Kalleberg, K. T. (2006). Feature models are views on ontologies. In Proceedings of the International Software Product Line Conference (SPLC), IEEE Computer Society, pp. 41–51.

  • Czarnecki, K., Helsen, S., & Eisenecker, U. W. (2004). Staged configuration using feature models. In Proceedings of the International Software Product Line Conference (SPLC) (Vol. 3154, pp. 266–283). Berlin: Springer, LNCS.

  • Fei, Y., Ravi, S., Raghunathan, A., & Jha, N. K. (2007). Energy-optimizing source code transformations for operating system-driven embedded software. ACM Transaction on Embedded Computer Systems, 7(1), 1–26.

    Article  Google Scholar 

  • Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., & Gjorven, E. (2006). Using architecture models for runtime adaptability. IEEE Software, 23, 62–70.

    Article  Google Scholar 

  • Glinz, M. (2007). On non-functional requirements. In Proceedings of the International Conference on Requirements Engineering (RE), IEEE Computer Society, pp. 21–26.

  • Göbel, S., Pohl, C., Röttger, S., & Zschaler, S. (2004). The COMQUAD component model: Enabling dynamic selection of implementations by weaving non-functional aspects. In International Conference on Aspect-oriented Software Development (AOSD) (pp. 74–82). New York: ACM Press.

  • Götz, S., & Pukall, M. (2009). On performance of delegation in Java. In Proceedings of the International Workshop on Hot Topics in Software Upgrades (HotSWUp) (pp. 1–6). New York: ACM Press.

  • Hunleth, F., & Cytron, R. (2002). Footprint and feature management using aspect-oriented programming techniques. In Proceedings of Joint Conference on Languages, Compilers, and Tools for Embedded Systems & Software and Compilers for Embedded Systems (LCTES/SCOPES) (pp. 38–45). New York: ACM Press.

  • International Organization for Standardization (ISO) (2001). Software engineering—Product quality, Part 1: Quality model. In JTC 1/SC 7—Software and systems engineering, ISO/IEC 9126-1.

  • Kang, K., Cohen, S., Hess, J., Novak, W., & Peterson, A. (1990). Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University.

  • Karlsson, J., Wohlin, C., & Regnell, B. (1998). An evaluation of methods for prioritizing software requirements. Information and Software Technology, 39(14–15), 939–947.

    Article  Google Scholar 

  • Kästner, C., Apel, S., ur Rahman, S. S., Rosenmüller, M., Batory, D. & Saake, G. (2009). On the impact of the optional feature problem: Analysis and case studies. In Proceedings of the International Software Product Line Conference (SPLC), Software Engineering Institute (SEI), pp. 181–190.

  • Khoshgoftaar, T. M., & Seliya, N. (2003). Fault prediction modeling for software quality estimation: Comparing commonly used techniques. Empirical Software Engineering, 8, 255–283.

    Article  Google Scholar 

  • Krueger, C. W. (2006). New methods in software product line development. In Proceedings of the International Software Product Line Conference (SPLC), IEEE Computer Society, pp. 95–102.

  • Li, Y., & Henkel, J. (2002). A framework for estimating and minimizing energy dissipation of embedded HW/SW systems (pp. 259–264). Dordrecht: Kluwer Academic Publishers.

  • Lincke, R., Gutzmann, T., & Löwe, W. (2010). Software quality prediction models compared. In International Conference on Quality Software (ISCQ), IEEE Computer Society, pp. 82–91.

  • Lopez-Herrejon, R., & Apel, S. (2007). Measuring and characterizing crosscutting in aspect-based programs: Basic metrics and case studies. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE) (pp. 423–437). Berlin: Springer

  • Marler, R., & Arora, J. (2004). Survey of multi-objective optimization methods for engineering. Structural and Multidisciplinary Optimization, 26(6), 369–395.

    Article  MathSciNet  MATH  Google Scholar 

  • McCabe, T. (1976). A complexity measure. IEEE Transactions on Software Engineering, 2(4), 308–320.

    Article  MathSciNet  MATH  Google Scholar 

  • Mccall, J. A., Richards, P. K., & Walters, G. F. (1977). Factors in software quality. Vol. 1. Concepts and definitions of software quality. Technical Report ADA049014, General Electric Co Sunnyvale California.

  • Oracle (2006). Oracle press release. http://www.oracle.com/corporate/press/2006_sep/oracle_bdb_4-5.htm

  • Pizzi, N. J., Summers, R., & Pedrycz, W. (2002). Software quality prediction using median-adjusted class labels. In International Joint Conference on Neural Networks (IJCNN), IEEE Computer Society, pp. 2405–2409.

  • Pohl, K., Böckle, G., & van der Linden, F. (2005). Software product line engineering: Foundations, principles and techniques. Berlin: Springer.

    MATH  Google Scholar 

  • Pure-systems GmbH (2004). Technical white paper: Variant management with pure::variants. [Avaiblable online at: http://www.pure-systems.com.

  • Rabiser, R., Dhungana, D., & Grünbacher, P. (2007). Tool support for product derivation in large-scale product lines: A wizard-based approach. In Workshop on Visualisation in Software Product Line Engineering (ViSPLE), IEEE Computer Society, pp. 119–124.

  • Rana, Z. A., Shamail, S., & Awais, M. M. (2007). A survey of measurement-based software quality prediction techniques. Tech. Rep. Lahore University of Management Sciences.

  • Robertson, S., & Robertson, J. (1999). Mastering the requirements process. New York: ACM Press.

    Google Scholar 

  • Saliu, M. O., & Ruhe, G. (2007). Bi-objective release planning for evolving software systems. In Proceedings of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE) (pp. 105–114). New York: ACM Press, FSE.

  • Siegmund, N., Kuhlemann, M., Rosenmüller, M., Kästner, C., & Saake, G. (2008a). Integrated product line model for semi-automated product derivation using non-functional properties. In Workshop on Variability Modelling of Software-intensive Systems (VaMoS) (pp. 25–31). University of Duisburg-Essen.

  • Siegmund, N., Rosenmüller, M., Kuhlemann, M., Kästner, C., & Saake, G. (2008b). Measuring non-functional properties in software product lines for product derivation. In Proceedings of the Asia-Pacific Software Engineering Conference (APSEC), IEEE Computer Society, pp. 187–194.

  • Siegmund, N., Kuhlemann, M., Apel, S., & Pukall, M. (2010a). Optimizing non-functional properties of software product lines by means of refactorings. In Proceedings of Workshop Variability Modelling of Software-intensive Systems (VaMoS) (pp. 115–122). University of Duisburg-Essen.

  • Siegmund, N., Rosenmüller, M., & Apel, S. (2010b). Automating energy optimization with features. In Proceedings of International Workshop on Feature-oriented Software Development (FOSD) (pp. 2–9). New York: ACM Press.

  • Siegmund, N., Rosenmüller, M., Kästner, C., Giarusso, P. G., Apel, S., & Kolesnikov, S. S. (2011). Scalable prediction of non-functional properties in software product lines. In Software Product Line Conference (SPLC), IEEE Computer Society.

  • Sincero, J., Schröder-Preikschat, W., & Spinczyk, O. (2010). Approaching non-functional properties of software product lines: Learning from products. In Proceedings of Asia-Pacific Software Engineering Conference (APSEC), IEEE Computer Society, pp. 147–155.

  • Sincero, J., Spinczyk, O., & Schröder-Preikschat, W. (2007). On the configuration of non-functional properties in software product lines. In Software Product Line Conference (SPLC), Doctoral Symposium (pp. 167–173). Kindai Kagaku Sha Co. Ltd.

  • SQLite.org (2010). Press release. http://www.sqlite.org/mostdeployed.html [Accessed at: 19th May 2011].

  • Stevens, S. S. (1946). On the theory of scales of measurement. Sciences, 103(2684), 677–680.

    Article  MATH  Google Scholar 

  • Tiwari, V., Malik, S., & Wolfe, A. (1994). Compilation techniques for low energy: An overview. In Proceedings of Symposium on Low Power Electronics (ISLPED), IEEE Computer Society, pp. 38–39.

  • Trendowicz, A., & Punter, T. (2003). Quality modeling for software product lines. In ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE).

  • van Lamsweerde, A. (2001). Goal-oriented requirements engineering: a guided tour. In International Symposium on Requirements Engineering (RE), IEEE Computer Society, pp. 249–262.

  • van Lamsweerde, A., Darimont, R., & Letier, E. (1998). Managing conflicts in goal-driven requirements engineering. IEEE Transactions on Software Engineering, 24(11), 908 –926.

    Article  Google Scholar 

  • White, J., Schmidt, D. C., Wuchner, E., & Nechypurenko, A. (2007). Automating product-line variant selection for mobile devices. In Proceedings of the International Software Product Line Conference (SPLC), IEEE Computer Society, pp. 129–140.

  • White, J., Dougherty, B., & Schmidt, D. C. (2009). Selecting highly optimal architectural feature sets with filtered cartesian flattening. Journal of Systems and Software, 82(8), 1268–1284.

    Article  Google Scholar 

  • Yu, E. S. K. (1997). Towards modeling and reasoning support for early-phase requirements engineering. In Proceedings of the International Symposium on Requirements Engineering (RE), IEEE Computer Society, pp. 226–235.

  • Zhang, Y., Harman, M., & Mansouri, S. A. (2007). The multi-objective next release problem. In Proceedings of the Annual Conference on Genetic and Evolutionary Computation (GECCO) (pp. 1129–1137). New York: ACM Press.

  • Zubrow, D., & Chastek, G. (2003). Measures for software product lines. Tech. Rep. CMU/SEI-2003-TN-031, Carnegie Mellon University.

Download references

Acknowledgment

We would like to thank Janet Feigenspan and the anonymous reviewers for their constructive and helpful comments which substantially improved the quality of the paper. Norbert Siegmund is funded by the German ministry of education and science BMBF, number 01IM10002B. Marko Rosenmüller is funded by the German research foundation, project number SA 465/34-1. Apel’s work is supported by the DFG projects #AP 206/2-1 and #AP 206/4-1. Kästner’s work is supported by the European Research Council (grand ScalPL #203099).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Norbert Siegmund.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Siegmund, N., Rosenmüller, M., Kuhlemann, M. et al. SPL Conqueror: Toward optimization of non-functional properties in software product lines. Software Qual J 20, 487–517 (2012). https://doi.org/10.1007/s11219-011-9152-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-011-9152-9

Keywords

Navigation