skip to main content
research-article

A Classification and Survey of Analysis Strategies for Software Product Lines

Published:01 June 2014Publication History
Skip Abstract Section

Abstract

Software-product-line engineering has gained considerable momentum in recent years, both in industry and in academia. A software product line is a family of software products that share a common set of features. Software product lines challenge traditional analysis techniques, such as type checking, model checking, and theorem proving, in their quest of ensuring correctness and reliability of software. Simply creating and analyzing all products of a product line is usually not feasible, due to the potentially exponential number of valid feature combinations. Recently, researchers began to develop analysis techniques that take the distinguishing properties of software product lines into account, for example, by checking feature-related code in isolation or by exploiting variability information during analysis. The emerging field of product-line analyses is both broad and diverse, so it is difficult for researchers and practitioners to understand their similarities and differences. We propose a classification of product-line analyses to enable systematic research and application. Based on our insights with classifying and comparing a corpus of 123 research articles, we develop a research agenda to guide future research on product-line analyses.

References

  1. S. Adelsberger, S. Sobernig, and G. Neumann. 2014. Towards assessing the complexity of object migration in dynamic, feature-oriented software product lines. In Proc. Int’l Workshop Variability Modelling of Software-intensive Systems (VaMoS’14). ACM, New York, NY, 17:1--17:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Alférez, R. E. Lopez-Herrejon, A. Moreira, V. Amaral, and A. Egyed. 2011. Supporting consistency checking between features and software product line use scenarios. In Proc. Int’l Conf. Software Reuse (ICSR’11). Springer, Berlin, 20--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Apel, D. Batory, C. Kästner, and G. Saake. 2013a. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Apel and D. Hutchins. 2010. A calculus for uniform feature composition. ACM Transactions on Programming Languages and Systems 32, 5, 19:1--19:33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Apel, C. Kästner, A. Größlinger, and C. Lengauer. 2010a. Type safety for feature-oriented product lines. Automated Software Engineering 17, 3, 251--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Apel, C. Kästner, and C. Lengauer. 2008a. Feature featherweight Java: A calculus for feature-oriented programming and stepwise refinement. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’08). ACM, New York, NY, 101--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Apel, T. Leich, and G. Saake. 2008b. Aspectual feature modules. IEEE Transaction on Software Engineering 34, 2, 162--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Apel, W. Scholz, C. Lengauer, and C. Kästner. 2010b. Detecting dependences and interactions in feature-oriented design. In Proc. Int’l Symposium Software Reliability Engineering (ISSRE’10). IEEE, Washington, DC, 161--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Apel, W. Scholz, C. Lengauer, and C. Kästner. 2010c. Language-independent reference checking in software product lines. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’10). ACM, New York, NY, 65--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Apel, H. Speidel, P. Wendler, A. von Rhein, and D. Beyer. 2011. Detection of feature interactions using feature-aware verification. In Proc. Int’l Conf. Automated Software Engineering (ASE’11). IEEE, Washington, DC, 372--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Apel, A. von Rhein, T. Thüm, and C. Kästner. 2013b. Feature-interaction detection based on feature-based specifications. Computer Networks 57, 12, 2399--2409. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Apel, A. von Rhein, P. Wendler, A. Größlinger, and D. Beyer. 2013c. Strategies for product-line verification: Case studies and experiments. In Proc. Int’l Conf. Software Engineering (ICSE’13). IEEE, Piscataway, NJ, 482--491. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Asirelli, M. H. ter Beek, A. Fantechi, and S. Gnesi. 2012. A compositional framework to derive product line behavioural descriptions. In Proc. Int’l Symposium Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’12). Springer, Berlin, 146--161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Atkinson and T. Kühne. 2003. Model-Driven development: A metamodeling foundation. IEEE Software 20, 5, 36--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. L. Aversano, M. D. Penta, and I. D. Baxter. 2002. Handling preprocessor-conditioned declarations. In Proc. Int’l Workshop Source Code Analysis and Manipulation (SCAM’02). IEEE, Washington, DC, 83--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Batory. 2005. Feature models, grammars, and propositional formulas. In Proc. Int’l Software Product Line Conf. (SPLC’05). Springer, Berlin, 7--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Batory and E. Börger. 2008. Modularizing theorems for software product lines: The jbook case study. Journal of Universal Computer Science 14, 12, 2059--2082.Google ScholarGoogle Scholar
  18. D. Batory, J. N. Sarvela, and A. Rauschmayer. 2004. Scaling step-wise refinement. IEEE Transactions on Software Engineering 30, 6, 355--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Benavides, S. Segura, and A. Ruiz-Cortés. 2010. Automated analysis of feature models 20 years later: A literature review. Information Systems 35, 6, 615--708. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Y. Bertot and P. Castéran. 2004. Interactive Theorem Proving and Program Development - Coq’Art: The Calculus of Inductive Constructions. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Bessling and M. Huhn. 2014. Towards formal safety analysis in feature-oriented product line development. In Proc. Int’l Symposium Foundations of Health Information Engineering and Systems (FHIES’14). Springer, Berlin, 217--235.Google ScholarGoogle Scholar
  22. L. Bettini, F. Damiani, and I. Schaefer. 2013. Compositional type checking of delta-oriented software product lines. Acta Informatica 50, 2, 77--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Bettini, F. Damiani, and I. Schaefer. 2014. Implementing type-safe software product lines using parametric traits. Science of Computer Programming To appear.Google ScholarGoogle Scholar
  24. D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar. 2007. The software model checker blast: Applications to software engineering. International Journal of Software Tools for Technology Transfer 9, 5, 505--525. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Beyer and M. E. Keremoglu. 2011. CPAchecker: A tool for configurable software verification. In Proc. Int’l Conf. Computer Aided Verification (CAV’11). Springer, Berlin, 184--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. Blundell, K. Fisler, S. Krishnamurthi, and P. V. Hentenryck. 2004. Parameterized interfaces for open system verification of product lines. In Proc. Int’l Conf. Automated Software Engineering (ASE’04). IEEE, Washington, DC, 258--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. E. Bodden, T. Tolêdo, M. Ribeiro, C. Brabrand, P. Borba, and M. Mezini. 2013. SPLLIFT: Statically analyzing software product lines in minutes instead of years. In Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI’13). ACM, New York, NY, 355--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. F. Bowen, F. S. Dworack, C.-H. Chow, N. Griffeth, G. E. Herman, and Y.-J. Lin. 1989. The feature interaction problem in telecommunications systems. In Proc. Int’l Conf. Software Engineering for Telecommunication Switching Systems (SETSS’89). IEEE, Washington, DC, 59--62.Google ScholarGoogle Scholar
  29. C. Brabrand, M. Ribeiro, T. Tolêdo, J. Winther, and P. Borba. 2013. Intraprocedural dataflow analysis for software product lines. Transactions on Aspect-Oriented Software Development 10, 73--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. D. Bruns, V. Klebanov, and I. Schaefer. 2011. Verification of software product lines with delta-oriented slicing. In Proc. Int’l Conf. Formal Verification of Object-Oriented Software (FoVeOOS’11). Springer, Berlin, 61--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. T. Buchmann and F. Schwägerl. 2012. Ensuring well-formedness of configured domain models in model-driven product lines based on negative variability. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’12). ACM, New York, NY, 37--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Calder, M. Kolberg, E. H. Magill, and S. Reiff-Marganiec. 2003. Feature interaction: A critical review and considered forecast. Computer Networks 41, 1, 115--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. I. D. Carmo Machado, J. D. McGregor, Y. A. C. Cavalcanti, and E. S. De Almeida. 2014. On strategies for testing software product lines: A systematic literature review. Journal of Information and Software Technology To appear.Google ScholarGoogle Scholar
  34. S. Chen, M. Erwig, and E. Walkingshaw. 2014. Extending type inference to variational programs. ACM Transactions on Programming Languages and Systems 36, 1, 1:1--1:54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Cimatti, E. M. Clarke, F. Giunchiglia, and M. Roveri. 1999. NuSMV: A new symbolic model verifier. In Proc. Int’l Conf. Computer Aided Verification (CAV’99). Springer, London, 495--499. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. E. M. Clarke, O. Grumberg, and D. A. Peled. 1999. Model Checking. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. A. Classen, M. Cordy, P. Heymans, A. Legay, and P.-Y. Schobbens. 2014. Formal semantics, modular specification, and symbolic verification of product-line behaviour. Science of Computer Programming 80, Part B, 416--439. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. A. Classen, M. Cordy, P.-Y. Schobbens, P. Heymans, A. Legay, and J.-F. Raskin. 2013. Featured transition systems: Foundations for verifying variability-intensive systems and their application to LTL model checking. IEEE Transactions on Software Engineering 39, 8, 1069--1089. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. A. Classen, P. Heymans, P.-Y. Schobbens, A. Legay, and J.-F. Raskin. 2010. Model checking lots of systems: Efficient verification of temporal properties in software product lines. In Proc. Int’l Conf. Software Engineering (ICSE’10). ACM, New York, NY, 335--344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. P. Clements and L. Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. M. Cordy, A. Classen, P. Heymans, A. Legay, and P.-Y. Schobbens. 2013a. Model checking adaptive software with featured transition systems. In Proc. Workshop Assurances for Self-Adaptive Systems (ASAS’13). Springer, Berlin, 1--29.Google ScholarGoogle ScholarCross RefCross Ref
  42. M. Cordy, A. Classen, G. Perrouin, P.-Y. Schobbens, P. Heymans, and A. Legay. 2012a. Simulation-based abstractions for software product-line model checking. In Proc. Int’l Conf. Software Engineering (ICSE’12). IEEE, Piscataway, NJ, U672--682. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. M. Cordy, A. Classen, P.-Y. Schobbens, P. Heymans, and A. Legay. 2012b. Managing evolution in software product lines: A model-checking perspective. In Proc. Int’l Workshop Variability Modelling of Software-intensive Systems (VaMoS’12). ACM, New York, NY, 183--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. M. Cordy, P.-Y. Schobbens, P. Heymans, and A. Legay. 2012c. Behavioural modelling and verification of real-time software product lines. In Proc. Int’l Software Product Line Conf. (SPLC’12). ACM, New York, NY, 66--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. M. Cordy, P.-Y. Schobbens, P. Heymans, and A. Legay. 2012d. Towards an incremental automata-based approach for software product-line model checking. In Proc. Int’l Workshop Formal Methods and Analysis in Software Product Line Engineering (FMSPLE’12). ACM, New York, NY, 74--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. M. Cordy, P.-Y. Schobbens, P. Heymans, and A. Legay. 2013b. Beyond boolean product-line model checking: Dealing with feature attributes and multi-features. In Proc. Int’l Conf. Software Engineering (ICSE’13). IEEE, Piscataway, NJ, 472--481. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. P. Cousot and R. Cousot. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proc. Symposium Principles of Programming Languages (POPL’77). ACM, New York, NY, 238--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. K. Czarnecki and U. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. ACM/Addison-Wesley, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. K. Czarnecki and K. Pietroszek. 2006. Verifying feature-based model templates against well-formedness OCL constraints. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’06). ACM, New York, NY, 211--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. P. A. Da Mota Silveira Neto, I. D. Carmo Machado, J. D. McGregor, E. S. De Almeida, and S. R. De Lemos Meira. 2011. A systematic mapping study of software product lines testing. Journal of Information and Software Technology 53, 5, 407--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. F. Damiani, O. Owe, J. Dovland, I. Schaefer, E. B. Johnsen, and I. C. Yu. 2012. A transformational proof system for delta-oriented programming. In Proc. Int’l Workshop Formal Methods and Analysis in Software Product Line Engineering (FMSPLE’12). ACM, New York, NY, 53--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. F. Damiani and I. Schaefer. 2012. Family-based analysis of type safety for delta-oriented software product lines. In Proc. Int’l Symposium Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’12). Springer, Berlin, 193--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. I. F. Darwin. 1986. Checking C Programs with Lint. O’Reilly & Associates, Inc., Sebastopol, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. B. Delaware, W. Cook, and D. Batory. 2009. Fitting the pieces together: A machine-checked model of safe composition. In Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE’09). ACM, New York, NY, 243--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. B. Delaware, W. Cook, and D. Batory. 2011. Product lines of theorems. In Proc. Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’1). ACM, New York, NY, 595--608. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. B. Delaware, B. C. d. S. Oliveira, and T. Schrijvers. 2013. Meta-theory à la Carte. In Proc. Symposium Principles of Programming Languages (POPL’13). ACM, New York, NY, 207--218. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. D. Detlefs, G. Nelson, and J. B. Saxe. 2005. Simplify: A theorem prover for program checking. Journal of the ACM 52, 3, 365--473. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. E. Engström and P. Runeson. 2011. Software product line testing - A systematic mapping study. J. of Information and Software Technology 53, 2--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. L. Etxeberria, G. Sagardui, and L. Belategi. 2008. Quality aware software product line engineering. Journal of the Brazilian Computer Society 14, 1, 57--69.Google ScholarGoogle ScholarCross RefCross Ref
  60. A. Fantechi and S. Gnesi. 2008. Formal modeling for product families engineering. In Proc. Int’l Software Product Line Conf. (SPLC’08). IEEE, Washington, DC, 193--202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. D. Fischbein, S. Uchitel, and V. Braberman. 2006. A foundation for behavioural conformance in software product line architectures. In Proc. Int’l Workshop Role of Software Architecture for Testing and Analysis (ROSATEA’06). ACM, New York, NY, 39--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. K. Fisler and S. Krishnamurthi. 2001. Modular verification of collaboration-based software designs. In Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE’01). ACM, New York, NY, 152--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. K. Fisler and S. Krishnamurthi. 2005. Decomposing verification around end-user features. In Proc. IFIP Working Conf. Verified Software: Theories, Tools, Experiments (VSTTE’05). Springer, Berlin, 74--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. P. Gazzillo and R. Grimm. 2012. SuperC: Parsing all of C by taming the preprocessor. In Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI’12). ACM, New York, NY, 323--334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. J. Greenyer, A. M. Sharifloo, M. Cordy, and P. Heymans. 2013. Features meet scenarios: Modeling and consistency-checking scenario-based product line specifications. Requirements Engineering 18, 2, 175--198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. A. Gruler, M. Leucker, and K. Scheidemann. 2008. Modeling and model checking software product lines. In Proc. IFIP Int’l Conf. Formal Methods for Open Object-based Distributed Systems (FMOODS). Springer, Berlin, Heidelberg, 113--131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. R. Hähnle and I. Schaefer. 2012. A liskov principle for delta-oriented programming. In Proc. Int’l Symposium Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’12). Springer, Berlin, 32--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. A. Harhurin and J. Hartmann. 2008. Towards consistent specifications of product families. In Proc. Int’l Symposium Formal Methods (FM’08). Springer, Berlin, 390--405. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. F. Heidenreich. 2009. Towards systematic ensuring well-formedness of software product lines. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’09). ACM, New York, NY, 69--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. G. J. Holzmann. 1997. The model checker SPIN. IEEE Transactions on Software Engineering 23, 5, 279--295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. D. Hovemeyer and W. Pugh. 2004. Finding bugs is easy. SIGPLAN Notices 39, 12, 92--106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. S. S. Huang, D. Zook, and Y. Smaragdakis. 2007. cJ: Enhancing java with safe type conditions. In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD’07). ACM, New York, NY, 185--198. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. S. S. Huang, D. Zook, and Y. Smaragdakis. 2011. Statically safe program generation with SafeGen. Science of Computer Programming 76, 5, 376--391. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. P. Istoan. 2013. Methodology for the derivation of product behaviour in a software product line. Ph.D. thesis, Université Rennes 1, Luxembourg.Google ScholarGoogle Scholar
  75. M. Janota, J. Kiniry, and G. Botterweck. 2008. Formal methods in software product lines: Concepts, survey, and guidelines. Tech. Rep. Lero-TR-SPL-2008-02, Lero, University of Limerick. May.Google ScholarGoogle Scholar
  76. P. Jayaraman, J. Whittle, A. M. Elkhodary, and H. Gomaa. 2007. Model composition in product lines and feature interaction detection using critical pair analysis. In Proc. Int’l Conf. Model Driven Engineering Languages and Systems (MODELS’07). Springer, Berlin, 151--165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. E. B. Johnsen, R. Hähnle, J. Schäfer, R. Schlatte, and M. Steffen. 2012. ABS: A core language for abstract behavioral specification. In Proc. Int’l Symposium Formal Methods for Components and Objects (FMCO’12). Springer, Berlin, 142--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. 1990. Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-21, Software Engineering Institute.Google ScholarGoogle Scholar
  79. C. Kästner, S. Apel, T. Thüm, and G. Saake. 2012a. Type checking annotation-based product lines. Transactions on Software Engineering and Methodology 21, 3, 14:1--14:39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. C. Kästner, S. Apel, S. S. ur Rahman, M. Rosenmüller, D. Batory, and G. Saake. 2009. On the impact of the optional feature problem: Analysis and case studies. In Proc. Int’l Software Product Line Conf. (SPLC’09). Software Engineering Institute, Pittsburgh, PA, 181--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. 2011. Variability-aware parsing in the presence of lexical macros and conditional compilation. In Proc. Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’11). ACM, New York, NY, 805--824. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. C. Kästner, K. Ostermann, and S. Erdweg. 2012b. A variability-aware module system. In Proc. Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’12). ACM, New York, NY, 773--792. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. C. Kästner, A. von Rhein, S. Erdweg, J. Pusch, S. Apel, T. Rendel, and K. Ostermann. 2012c. Toward variability-aware testing. In Proc. Int’l Workshop Feature-Oriented Software Development. ACM, New York, NY, 1--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. S. Katz. 2006. Aspect categories and classes of temporal properties. Transactions on Aspect-Oriented Software Development 1, 106--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. A. Kenner, C. Kästner, S. Haase, and T. Leich. 2010. TypeChef: Toward type checking #Ifdef variability in C. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’10). ACM, New York, NY, 25--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. 1997. Aspect-oriented programming. In Proc. Europ. Conf. Object-Oriented Programming (ECOOP’97). Springer, Berlin, 220--242.Google ScholarGoogle Scholar
  87. C. H. P. Kim, D. Batory, and S. Khurshid. 2011. Reducing combinatorics in testing product lines. In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD’11). ACM, New York, NY, 57--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. C. H. P. Kim, E. Bodden, D. Batory, and S. Khurshid. 2010. Reducing configurations to monitor in a software product line. In Proc. Int’l Conf. Runtime Verification (RV’10). Springer, Berlin, 285--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. C. H. P. Kim, C. Kästner, and D. Batory. 2008. On the modularity of feature interactions. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’08). ACM, New York, NY, 23--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. C. H. P. Kim, S. Khurshid, and D. Batory. 2012. Shared execution for efficiently testing product lines. In Proc. Int’l Symposium Software Reliability Engineering (ISSRE’12). IEEE, Washington, DC, 221--230.Google ScholarGoogle Scholar
  91. C. H. P. Kim, D. Marinov, S. Khurshid, D. Batory, S. Souto, P. Barros, and M. D’Amorim. 2013. SPLat: Lightweight dynamic analysis for reducing combinatorics in testing configurable systems. In Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE’13). ACM, New York, NY, 257--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. T. Kishi and N. Noda. 2006. Formal verification and software product lines. Comm. ACM 49, 73--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. H. Klaeren, E. Pulvermueller, A. Rashid, and A. Speck. 2001. Aspect composition applying the design by contract principle. In Proc. Int’l Symposium Generative and Component-Based Software Engineering (GCSE’01). Springer, Berlin, 57--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. K. Klose and K. Ostermann. 2010. Modular logic metaprogramming. In Proc. Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’10). ACM, New York, NY, 484--503. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. S. Kolesnikov, A. von Rhein, C. Hunsen, and S. Apel. 2013. A comparison of product-based, feature-based, and family-based type checking. In Proc. Int’l Conf. Generative Programming: Concepts & Experiences (GPCE’’13). ACM, New York, NY, 115--124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. M. Kuhlemann, D. Batory, and C. Kästner. 2009. Safe composition of non-monotonic features. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’09). ACM, New York, NY, 177--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. M. Kuhlemann and M. Sturm. 2010. Patching product line programs. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’10). ACM, New York, NY, 33--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. D. R. Kuhn, R. N. Kacker, and Y. Lei. 2013. Introduction to Combinatorial Testing, 1st ed. Chapman & Hall/CRC, London, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. K. Lauenroth, A. Metzger, and K. Pohl. 2010. Quality assurance in the presence of variability. In Intentional Perspectives on Information Systems Engineering. Springer, Berlin, 319--333.Google ScholarGoogle Scholar
  100. D. M. Le, H. Lee, K. C. Kang, and L. Keun. 2013. Validating consistency between a feature model and its implementation. In Proc. Int’l Conf. Software Reuse (ICSR’13). Springer, Berlin, 1--16.Google ScholarGoogle Scholar
  101. J. Lee, S. Kang, and D. Lee. 2012. A survey on software product line testing. In Proc. Int’l Software Product Line Conf. (SPLC’12). ACM, New York, NY, 31--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. H. Li, S. Krishnamurthi, and K. Fisler. 2002. Verifying cross-cutting features as open systems. In Proc. Int’l Symposium Foundations of Software Engineering (FSE’02). ACM, New York, NY, 89--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. H. Li, S. Krishnamurthi, and K. Fisler. 2005. Modular verification of open features using three-valued model checking. Automated Software Engineering 12, 3, 349--382. Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. 2010. An analysis of the variability in forty preprocessor-based software product lines. In Proc. Int’l Conf. Software Engineering (ICSE’10). IEEE, Washington, DC, 105--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. J. Liebig, A. von Rhein, C. Kästner, S. Apel, J. Dörre, and C. Lengauer. 2013. Scalable analysis of variable software. In Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE’13). ACM, New York, NY, 81--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. J. Liu, S. Basu, and R. Lutz. 2011. Compositional model checking of software product lines using variation point obligations. Automated Software Engineering 18, 1, 39--76. Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. J. Liu, D. Batory, and C. Lengauer. 2006. Feature oriented refactoring of legacy applications. In Proc. Int’l Conf. Software Engineering (ICSE’06). ACM, New York, NY, 112--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. J. Liu, J. Dehlinger, and R. Lutz. 2007. Safety analysis of software product lines using state-based modeling. Journal of Systems and Software 80, 11, 1879--1892. Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. R. Lutz. 2007. Survey of product-line verification and validation techniques. Tech. Rep. 2014/41221, NASA, Jet Propulsion Laboratory, La Canada Flintridge, CA.Google ScholarGoogle Scholar
  110. F. Medeiros, M. Ribeiro, and R. Gheyi. 2013. Investigating preprocessor-based syntax errors. In Proc. Int’l Conf. Generative Programming: Concepts & Experiences (GPCE’’13). ACM, New York, NY, 75--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. M. Mendonça, A. Wasowski, and K. Czarnecki. 2009. SAT-based analysis of feature models is easy. In Proc. Int’l Software Product Line Conf. (SPLC’09). Software Engineering Institute, Pittsburgh, PA, 231--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. A. Metzger. 2007. Quality issues in software product lines: Feature interactions and beyond. In Proc. Int’l Conf. Feature Interactions in Software and Communication Systems (ICFI’07). IOS Press, Amsterdam, The Netherlands, 1--12.Google ScholarGoogle Scholar
  113. A. Metzger, K. Pohl, P. Heymans, P.-Y. Schobbens, and G. Saval. 2007. Disambiguating the documentation of variability in software product lines: A separation of concerns, formalization and automated analysis. In Proc. Int’l Conf. Requirements Engineering (RE’07). IEEE, Washington, DC, 243--253.Google ScholarGoogle Scholar
  114. J. Midtgaard, C. Brabrand, and A. Wasowski. 2014. Systematic derivation of static analyses for software product lines. In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD’14). ACM, New York, NY, 181--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  115. S. Montagud and S. Abrahão. 2009. Gathering current knowledge about quality evaluation in software product lines. In Proc. Int’l Software Product Line Conf. (SPLC’09). Software Engineering Institute, Pittsburgh, PA, 91--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  116. S. S. Muchnick. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. T. Nelson, D. D. Cowan, and P. S. C. Alencar. 2001. Supporting formal verification of crosscutting concerns. In Proc. Int’l Conf. Metalevel Architectures and Separation of Crosscutting Concerns. Springer, London, 153--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. H. V. Nguyen, C. Kästner, and T. N. Nguyen. 2014. Exploring variability-aware execution for testing plugin-based web applications. In Proc. Int’l Conf. Software Engineering (ICSE’14). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. C. Nie and H. Leung. 2011. A survey of combinatorial testing. ACM Computing Surveys 43, 2, 11:1--11:29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  120. F. Nielson, H. R. Nielson, and C. Hankin. 2010. Principles of Program Analysis. Springer, Secaucus, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. T. Nipkow, M. Wenzel, and L. C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. S. Oster, F. Markert, and P. Ritter. 2010. Automated incremental pairwise testing of software product lines. In Proc. Int’l Software Product Line Conf. (SPLC’10). Springer, Berlin, 196--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  123. S. Oster, A. Wübbeke, G. Engels, and A. Schürr. 2011. A survey of model-based software product lines testing. In Model-based Testing for Embedded System. CRC Press, Boca Raton, FL, 339--381.Google ScholarGoogle Scholar
  124. S. Owre, J. M. Rushby, and N. Shankar. 1992. PVS: A prototype verification system. In Proc. Int’l Conf. Automated Deduction (CADE’92). Springer, London, 748--752. Google ScholarGoogle ScholarDigital LibraryDigital Library
  125. D. L. Parnas. 1976. On the design and development of program families. IEEE Transactions on Software Engineering SE-2, 1, 1--9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  126. G. Perrouin, S. Sen, J. Klein, B. Baudry, and Y. Le Traon. 2010. Automated and scalable t-wise test case generation strategies for software product lines. In Proc. Int’l Conf. Software Testing, Verification and Validation (ICST’10). IEEE, Washington, DC, 459--468. Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. B. C. Pierce. 2002. Types and Programming Languages. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  128. M. Plath and M. Ryan. 2001. Feature integration using a feature construct. Science of Computer Programming 41, 1, 53--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  129. K. Pohl, G. Böckle, and F. J. van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  130. H. Post and C. Sinz. 2008. Configuration lifting: Software verification meets software configuration. In Proc. Int’l Conf. Automated Software Engineering (ASE’08). IEEE, Washington, DC, 347--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  131. C. Prehofer. 1997. Feature-oriented programming: A fresh look at objects. In Proc. Europ. Conf. Object-Oriented Programming (ECOOP’97). Springer, Berlin, 419--443.Google ScholarGoogle ScholarCross RefCross Ref
  132. M. Ribeiro, H. Pacheco, L. Teixeira, and P. Borba. 2010. Emergent feature modularization. In Proc. Int’l Conf. Object-Oriented Programming Systems Languages and Applications Companion (SPLASH’10). ACM, New York, NY, 11--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  133. V. V. Rubanov and E. A. Shatokhin. 2011. Runtime verification of Linux kernel modules based on call interception. In Proc. Int’l Conf. Software Testing, Verification and Validation (ICST’11). IEEE, Washington, DC, 180--189. Google ScholarGoogle ScholarDigital LibraryDigital Library
  134. H. Sabouri and R. Khosravi. 2012. Efficient verification of evolving software product lines. In Proc. Int’l Conf. Fundamentals of Software Engineering (FSEN’12). Springer, Berlin, 351--358. Google ScholarGoogle ScholarDigital LibraryDigital Library
  135. H. Sabouri and R. Khosravi. 2013a. Delta modeling and model checking of product families. In Proc. Int’l Conf. Fundamentals of Software Engineering (FSEN’13). Springer, Berlin, 51--65.Google ScholarGoogle Scholar
  136. H. Sabouri and R. Khosravi. 2013b. Modeling and verification of reconfigurable actor families. Journal of Universal Computer Science 19, 2, 207--232.Google ScholarGoogle Scholar
  137. H. Sabouri and R. Khosravi. 2014. Reducing the verification cost of evolving product families using static analysis techniques. Science of Computer Programming 83, 0, 35--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  138. I. Schaefer, D. Gurov, and S. Soleimanifard. 2010. Compositional algorithmic verification of software product lines. In Proc. Int’l Symposium Formal Methods for Components and Objects (FMCO’10). Springer, Berlin, 184--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  139. W. Scholz, T. Thüm, S. Apel, and C. Lengauer. 2011. Automatic detection of feature interactions using the java modeling language: An experience report. In Proc. Int’l Workshop Feature-Oriented Software Development (FOSD’11). ACM, New York, NY, 7:1--7:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  140. J. Schumann. 2001. Automated Theorem Proving in Software Engineering. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  141. J. Shi, M. B. Cohen, and M. B. Dwyer. 2012. Integration testing of software product lines using compositional symbolic execution. In Proc. Int’l Conf. Fundamental Approaches to Software Engineering (FASE’12). Springer, Berlin, 270--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  142. M. Svahnberg, J. van Gurp, and J. Bosch. 2005. A taxonomy of variability realization techniques: Research articles. Software: Practice and Experience 35, 8, 705--754. Google ScholarGoogle ScholarDigital LibraryDigital Library
  143. R. Tartler, D. Lohmann, C. Dietrich, C. Egger, and J. Sincero. 2012. Configuration coverage in the analysis of large-scale system software. ACM SIGOPS Operating Systems Review 45, 3, 10--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  144. R. Tartler, D. Lohmann, J. Sincero, and W. Schröder-Preikschat. 2011. Feature consistency in compile-time-configurable system software: Facing the Linux 10,000 feature problem. In Proc. Europ. Conf. Computer Systems (EuroSys’11). ACM, New York, NY, 47--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  145. L. Teixeira, P. Borba, and R. Gheyi. 2011. Safe composition of configuration knowledge-based software product lines. In Proc. Brazilian Symposium Software Engineering (SBES’11). IEEE, Washington, DC, 263--272. Google ScholarGoogle ScholarDigital LibraryDigital Library
  146. M. H. ter Beek, A. L. Lafuente, and M. Petrocchi. 2013. Combining declarative and procedural views in the specification and analysis of product families. In Proc. Int’l Workshop Formal Methods and Analysis in Software Product Line Engineering (FMSPLE’13). ACM, New York, NY, 10--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  147. A. Tevanlinna, J. Taina, and R. Kauppinen. 2004. Product family testing: A survey. SIGSOFT Software Engineering Notes 29, 12--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  148. S. Thaker, D. Batory, D. Kitchin, and W. Cook. 2007. Safe composition of product lines. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’07). ACM, New York, NY, 95--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  149. T. Thüm, D. Batory, and C. Kästner. 2009. Reasoning about edits to feature models. In Proc. Int’l Conf. Software Engineering (ICSE’09). IEEE, Washington, DC, 254--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  150. T. Thüm, C. Kästner, S. Erdweg, and N. Siegmund. 2011a. Abstract features in feature modeling. In Proc. Int’l Software Product Line Conf. (SPLC’11). IEEE, Washington, DC, 191--200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  151. T. Thüm, I. Schaefer, S. Apel, and M. Hentschel. 2012. Family-based deductive verification of software product lines. In Proc. Int’l Conf. Generative Programming and Component Engineering (GPCE’12). ACM, New York, NY, 11--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  152. T. Thüm, I. Schaefer, M. Kuhlemann, and S. Apel. 2011b. Proof composition for deductive verification of software product lines. In Proc. Int’l Workshop Variability-intensive Systems Testing, Validation and Verification (VAST’11). IEEE, Washington, DC, 270--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  153. T. Thüm, I. Schaefer, M. Kuhlemann, S. Apel, and G. Saake. 2012. Applying design by contract to feature-oriented programming. In Proc. Int’l Conf. Fundamental Approaches to Software Engineering (FASE’02). Springer, Berlin, 255--269. Google ScholarGoogle ScholarDigital LibraryDigital Library
  154. N. Ubayashi and T. Tamai. 2002. Aspect-oriented programming with model checking. In Proc. Int’l Conf. Aspect-Oriented Software Development (AOSD’02). ACM, New York, NY, 148--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  155. F. J. van der Linden, K. Schmid, and E. Rommes. 2007. Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  156. W. Visser, K. Havelund, G. P. Brat, and S. Park. 2000. Model checking programs. In Proc. Int’l Conf. Automated Software Engineering (ASE’00). Springer, Berlin, 3--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  157. A. von Rhein, S. Apel, C. Kästner, T. Thüm, and I. Schaefer. 2013. The PLA model: On the combination of product-line analyses. In Proc. Int’l Workshop Variability Modelling of Software-intensive Systems (VaMoS’13). ACM, New York, NY, 14:1--14:8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  158. C. Weidenbach, D. Dimova, A. Fietzke, R. Kumar, M. Suda, and P. Wischnewski. 2009. SPASS version 3.5. In Proc. Int’l Conf. Automated Deduction (CADE’09). Springer, Berlin, 140--145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  159. M. Weiser. 1981. Program slicing. In Proc. Int’l Conf. Software Engineering (ICSE). IEEE, Piscataway, NJ, USA, 439--449. Google ScholarGoogle ScholarDigital LibraryDigital Library
  160. D. M. Weiss. 2008. The product line hall of fame. In Proc. Int’l Software Product Line Conf. (SPLC). IEEE, Washington, DC, USA, 395. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Classification and Survey of Analysis Strategies for Software Product Lines

                              Recommendations

                              Comments

                              Login options

                              Check if you have access through your login credentials or your institution to get full access on this article.

                              Sign in

                              Full Access

                              • Published in

                                cover image ACM Computing Surveys
                                ACM Computing Surveys  Volume 47, Issue 1
                                July 2014
                                551 pages
                                ISSN:0360-0300
                                EISSN:1557-7341
                                DOI:10.1145/2620784
                                Issue’s Table of Contents

                                Copyright © 2014 ACM

                                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                                Publisher

                                Association for Computing Machinery

                                New York, NY, United States

                                Publication History

                                • Published: 1 June 2014
                                • Accepted: 1 January 2014
                                • Revised: 1 September 2013
                                • Received: 1 November 2012
                                Published in csur Volume 47, Issue 1

                                Permissions

                                Request permissions about this article.

                                Request Permissions

                                Check for updates

                                Qualifiers

                                • research-article
                                • Research
                                • Refereed

                              PDF Format

                              View or Download as a PDF file.

                              PDF

                              eReader

                              View online with eReader.

                              eReader