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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Apel, D. Batory, C. Kästner, and G. Saake. 2013a. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, Berlin. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Apel, T. Leich, and G. Saake. 2008b. Aspectual feature modules. IEEE Transaction on Software Engineering 34, 2, 162--180. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- C. Atkinson and T. Kühne. 2003. Model-Driven development: A metamodeling foundation. IEEE Software 20, 5, 36--41. Google ScholarDigital Library
- 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 ScholarDigital Library
- D. Batory. 2005. Feature models, grammars, and propositional formulas. In Proc. Int’l Software Product Line Conf. (SPLC’05). Springer, Berlin, 7--20. Google ScholarDigital Library
- 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 Scholar
- D. Batory, J. N. Sarvela, and A. Rauschmayer. 2004. Scaling step-wise refinement. IEEE Transactions on Software Engineering 30, 6, 355--371. Google ScholarDigital Library
- 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 ScholarDigital Library
- Y. Bertot and P. Castéran. 2004. Interactive Theorem Proving and Program Development - Coq’Art: The Calculus of Inductive Constructions. Springer, Berlin. Google ScholarDigital Library
- 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 Scholar
- L. Bettini, F. Damiani, and I. Schaefer. 2013. Compositional type checking of delta-oriented software product lines. Acta Informatica 50, 2, 77--122. Google ScholarDigital Library
- L. Bettini, F. Damiani, and I. Schaefer. 2014. Implementing type-safe software product lines using parametric traits. Science of Computer Programming To appear.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. M. Clarke, O. Grumberg, and D. A. Peled. 1999. Model Checking. MIT Press, Cambridge, MA. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- P. Clements and L. Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley, Boston, MA. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- K. Czarnecki and U. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. ACM/Addison-Wesley, New York, NY. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- I. F. Darwin. 1986. Checking C Programs with Lint. O’Reilly & Associates, Inc., Sebastopol, CA. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- G. J. Holzmann. 1997. The model checker SPIN. IEEE Transactions on Software Engineering 23, 5, 279--295. Google ScholarDigital Library
- D. Hovemeyer and W. Pugh. 2004. Finding bugs is easy. SIGPLAN Notices 39, 12, 92--106. Google ScholarDigital Library
- 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 ScholarDigital Library
- S. S. Huang, D. Zook, and Y. Smaragdakis. 2011. Statically safe program generation with SafeGen. Science of Computer Programming 76, 5, 376--391. Google ScholarDigital Library
- P. Istoan. 2013. Methodology for the derivation of product behaviour in a software product line. Ph.D. thesis, Université Rennes 1, Luxembourg.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Katz. 2006. Aspect categories and classes of temporal properties. Transactions on Aspect-Oriented Software Development 1, 106--134. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- T. Kishi and N. Noda. 2006. Formal verification and software product lines. Comm. ACM 49, 73--77. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- D. R. Kuhn, R. N. Kacker, and Y. Lei. 2013. Introduction to Combinatorial Testing, 1st ed. Chapman & Hall/CRC, London, UK. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- R. Lutz. 2007. Survey of product-line verification and validation techniques. Tech. Rep. 2014/41221, NASA, Jet Propulsion Laboratory, La Canada Flintridge, CA.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. S. Muchnick. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, CA. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- C. Nie and H. Leung. 2011. A survey of combinatorial testing. ACM Computing Surveys 43, 2, 11:1--11:29. Google ScholarDigital Library
- F. Nielson, H. R. Nielson, and C. Hankin. 2010. Principles of Program Analysis. Springer, Secaucus, NJ. Google ScholarDigital Library
- T. Nipkow, M. Wenzel, and L. C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer, Berlin. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- D. L. Parnas. 1976. On the design and development of program families. IEEE Transactions on Software Engineering SE-2, 1, 1--9. Google ScholarDigital Library
- 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 ScholarDigital Library
- B. C. Pierce. 2002. Types and Programming Languages. MIT Press, Cambridge, MA. Google ScholarDigital Library
- M. Plath and M. Ryan. 2001. Feature integration using a feature construct. Science of Computer Programming 41, 1, 53--84. Google ScholarDigital Library
- K. Pohl, G. Böckle, and F. J. van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- H. Sabouri and R. Khosravi. 2013b. Modeling and verification of reconfigurable actor families. Journal of Universal Computer Science 19, 2, 207--232.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- J. Schumann. 2001. Automated Theorem Proving in Software Engineering. Springer, Berlin. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- A. Tevanlinna, J. Taina, and R. Kauppinen. 2004. Product family testing: A survey. SIGSOFT Software Engineering Notes 29, 12--17. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. Weiser. 1981. Program slicing. In Proc. Int’l Conf. Software Engineering (ICSE). IEEE, Piscataway, NJ, USA, 439--449. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- A Classification and Survey of Analysis Strategies for Software Product Lines
Recommendations
An overview on analysis tools for software product lines
SPLC '14: Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools - Volume 2A software product line is a set of different software products that share commonalities. For a selection of features, specialized products of one domain can be generated automatically from domain artifacts. However, analyses of software product lines ...
Family-based deductive verification of software product lines
GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component EngineeringA software product line is a set of similar software products that share a common code base. While software product lines can be implemented efficiently using feature-oriented programming, verifying each product individually does not scale, especially ...
Family-based deductive verification of software product lines
GPCE '12A software product line is a set of similar software products that share a common code base. While software product lines can be implemented efficiently using feature-oriented programming, verifying each product individually does not scale, especially ...
Comments