Software Quality Journal

, Volume 20, Issue 3–4, pp 487–517 | Cite as

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

  • Norbert Siegmund
  • Marko Rosenmüller
  • Martin Kuhlemann
  • Christian Kästner
  • Sven Apel
  • Gunter Saake
Article

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.

Keywords

Software product lines Non-functional properties Feature-oriented software development Measurement and optimization SPL Conqueror 

References

  1. 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.Google Scholar
  2. 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.Google Scholar
  3. Bagnall, A. J., Rayward-Smith, V. J., & Whittley, I. M. (2001). The next release problem. Information and Software Technology, 43(14), 883–890.CrossRefGoogle Scholar
  4. 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.Google Scholar
  5. Batory, D., Sarvela, J. N., & Rauschmayer, A. (2004). Scaling step-wise refinement. IEEE Transactions on Software Engineering (TSE), 30(6), 355–371CrossRefGoogle Scholar
  6. 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.Google Scholar
  7. 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.Google Scholar
  8. Bøegh, J., Depanfilis, S., Kitchenham, B., & Pasquini, A. (1999). A method for software quality planning, control, and evaluation. IEEE Software, 16, 69–77.CrossRefGoogle Scholar
  9. 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
  10. 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.Google Scholar
  11. 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.Google Scholar
  12. 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.Google Scholar
  13. Chung, L., Nixon, B. A., Yu, E., & Mylopoulos, J. (1999). Non-functional requirements in software engineering. Berlin: Springer.CrossRefGoogle Scholar
  14. Clements, P., & Northrop, L. (2002). Software product lines: Practices and patterns. MA: Addison-Wesley.Google Scholar
  15. Cooper, K. D., Subramanian, D., & Torczon, L. (2002). Adaptive optimizing compilers for the 21st century. Journal of Supercomputing, 23(1), 7–22.MATHCrossRefGoogle Scholar
  16. Czarnecki, K., & Eisenecker, U. (2000). Generative programming: Methods, tools, and applications. MA: Addison-Wesley.Google Scholar
  17. 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.Google Scholar
  18. 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.Google Scholar
  19. 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.CrossRefGoogle Scholar
  20. Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., & Gjorven, E. (2006). Using architecture models for runtime adaptability. IEEE Software, 23, 62–70.CrossRefGoogle Scholar
  21. Glinz, M. (2007). On non-functional requirements. In Proceedings of the International Conference on Requirements Engineering (RE), IEEE Computer Society, pp. 21–26.Google Scholar
  22. 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.Google Scholar
  23. 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.Google Scholar
  24. 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.Google Scholar
  25. 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.Google Scholar
  26. 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.Google Scholar
  27. Karlsson, J., Wohlin, C., & Regnell, B. (1998). An evaluation of methods for prioritizing software requirements. Information and Software Technology, 39(14–15), 939–947.CrossRefGoogle Scholar
  28. 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.Google Scholar
  29. Khoshgoftaar, T. M., & Seliya, N. (2003). Fault prediction modeling for software quality estimation: Comparing commonly used techniques. Empirical Software Engineering, 8, 255–283.CrossRefGoogle Scholar
  30. 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.Google Scholar
  31. 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.Google Scholar
  32. 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.Google Scholar
  33. 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: SpringerGoogle Scholar
  34. Marler, R., & Arora, J. (2004). Survey of multi-objective optimization methods for engineering. Structural and Multidisciplinary Optimization, 26(6), 369–395.MathSciNetMATHCrossRefGoogle Scholar
  35. McCabe, T. (1976). A complexity measure. IEEE Transactions on Software Engineering, 2(4), 308–320.MathSciNetMATHCrossRefGoogle Scholar
  36. 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.Google Scholar
  37. 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.Google Scholar
  38. Pohl, K., Böckle, G., & van der Linden, F. (2005). Software product line engineering: Foundations, principles and techniques. Berlin: Springer.MATHGoogle Scholar
  39. Pure-systems GmbH (2004). Technical white paper: Variant management with pure::variants. [Avaiblable online at: http://www.pure-systems.com.
  40. 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.Google Scholar
  41. 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.Google Scholar
  42. Robertson, S., & Robertson, J. (1999). Mastering the requirements process. New York: ACM Press.Google Scholar
  43. 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.Google Scholar
  44. 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.Google Scholar
  45. 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.Google Scholar
  46. 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.Google Scholar
  47. 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.Google Scholar
  48. 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.Google Scholar
  49. 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.Google Scholar
  50. 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.Google Scholar
  51. SQLite.org (2010). Press release. http://www.sqlite.org/mostdeployed.html [Accessed at: 19th May 2011].
  52. Stevens, S. S. (1946). On the theory of scales of measurement. Sciences, 103(2684), 677–680.MATHCrossRefGoogle Scholar
  53. 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.Google Scholar
  54. Trendowicz, A., & Punter, T. (2003). Quality modeling for software product lines. In ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE).Google Scholar
  55. van Lamsweerde, A. (2001). Goal-oriented requirements engineering: a guided tour. In International Symposium on Requirements Engineering (RE), IEEE Computer Society, pp. 249–262.Google Scholar
  56. van Lamsweerde, A., Darimont, R., & Letier, E. (1998). Managing conflicts in goal-driven requirements engineering. IEEE Transactions on Software Engineering, 24(11), 908 –926.CrossRefGoogle Scholar
  57. 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.Google Scholar
  58. 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.CrossRefGoogle Scholar
  59. 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.Google Scholar
  60. 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.Google Scholar
  61. Zubrow, D., & Chastek, G. (2003). Measures for software product lines. Tech. Rep. CMU/SEI-2003-TN-031, Carnegie Mellon University.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Norbert Siegmund
    • 1
  • Marko Rosenmüller
    • 1
  • Martin Kuhlemann
    • 1
  • Christian Kästner
    • 2
  • Sven Apel
    • 3
  • Gunter Saake
    • 1
  1. 1.University of MagdeburgMagdeburgGermany
  2. 2.Philipps University MarburgMarburgGermany
  3. 3.University of PassauPassauGermany

Personalised recommendations