Abstract
Analyzing software product lines is difficult, due to their inherent variability. In the past, several strategies for product-line analysis have been proposed, in particular, product-based, feature-based, and family-based strategies. Despite recent attempts to conceptually and empirically compare different strategies, there is no work that empirically compares all of the three strategies in a controlled setting. We close this gap by extending a compiler for feature-oriented programming with support for product-based, feature-based, and family-based type checking. We present and discuss the results of a comparative performance evaluation that we conducted on a set of 12 feature-oriented, Java-based product lines. Most notably, we found that the family-based strategy is superior for all subject product lines: it is substantially faster, it detects all kinds of errors, and provides the most detailed information about them.
- S. Apel and D. Beyer. Feature Cohesion in Software Product Lines: An Exploratory Study. In Proc. ICSE, pages 421--430. ACM, 2011. Google Scholar
Digital Library
- S. Apel and D. Hutchins. A Calculus for Uniform Feature Composition. ACM TOPLAS, 32 (5): 19:1--19:33, 2010. Google Scholar
Digital Library
- S. Apel, C. Kästner, A. Größlinger, and C. Lengauer. Type Safety for Feature-Oriented Product Lines. Automated Software Engineering, 17 (3): 251--300, 2010. Google Scholar
Digital Library
- S. Apel, H. Speidel, P. Wendler, A. von Rhein, and D. Beyer. Detection of Feature Interactions using Feature-Aware Verification. In Proc. ASE, pages 372--375. IEEE, 2011. Google Scholar
Digital Library
- S. Apel, S. Kolesnikov, J. Liebig, C. Kästner, M. Kuhlemann, and T. Leich. Access Control in Feature-Oriented Programming. Science of Computer Programming, 77 (3): 174--187, 2012. Google Scholar
Digital Library
- S. Apel, C. Kästner, and C. Lengauer. Language-Independent and Automated Software Composition: The FeatureHouse Experience. IEEE Trans. Software Engineering, 39 (1): 63--79, 2013natexlaba. Google Scholar
Digital Library
- S. Apel, A. von Rhein, P. Wendler, A. Größlinger, and D. Beyer. Strategies for Product-Line Verification: Case Studies and Experiments. In Proc. ICSE, pages 482--491. IEEE, 2013natexlabb. Google Scholar
Digital Library
- L. Bettini, F. Damiani, and I. Schaefer. Compositional Type Checking of Delta-oriented Software Product Lines. Acta Informatica, 50 (2): 77--122, 2013.Google Scholar
- E. Bodden, M. Mezini, C. Brabrand, T. Tolêdo, M. Ribeiro, and P. Borba. SPLLIFT: Statically Analyzing Software Product Lines in Minutes Instead of Years. In Proc. PLDI, pages 355--364. ACM, 2013. Google Scholar
Digital Library
- C. Brabrand, M. Ribeiro, T. Tolêdo, J. Winther, and P. Borba. Intraprocedural Dataflow Analysis for Software Product Lines. Trans. on Aspect-Oriented Software Development, 10: 73--108, 2013.Google Scholar
- A. Classen, P. Heymans, P.-Y. Schobbens, A. Legay, and J.-F. Raskin. Model Checking Lots of Systems: Efficient Verification of Temporal Properties in Software Product Lines. In Proc. ICSE, pages 335--344. ACM, 2010. Google Scholar
Digital Library
- P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001. Google Scholar
Digital Library
- M. Cordy, A. Classen, G. Perrouin, P.-Y. Schobbens, P. Heymans, and A. Legay. Simulation-Based Abstractions for Software Product-Line Model Checking. In Proc. ICSE, pages 672--682. ACM, 2012. Google Scholar
Digital Library
- B. Delaware, W. Cook, and D. Batory. Fitting the Pieces Together: A Machine-Checked Model of Safe Composition. In Proc. FSE, pages 243--252. ACM, 2009. Google Scholar
Digital Library
- J. Guo, K. Czarnecki, S. Apel, N. Siegmund, and A. Wasowski. Variability-Aware Performance Prediction: A Statistical Learning Approach. In Proc. ASE. IEEE, 2013.Google Scholar
Digital Library
- M. Johansen, Ø. Haugen, and F. Fleurey. An Algorithm for Generating t-wise Covering Arrays from Large Feature Models. In Proc. SPLC, pages 46--55. ACM, 2012. Google Scholar
Digital Library
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report Carnegie Mellon University/SEI-90-TR-21, Carnegie Mellon University, 1990.Google Scholar
Cross Ref
- C. Kästner, S. Apel, T. Thüm, and G. Saake. Type Checking Annotation-Based Product Lines. ACM Trans. on Software Engineering and Methodology, 21 (3): 14:1--14:29, 2012. Google Scholar
Digital Library
- K. Lauenroth, S. Toehning, and K. Pohl. Model Checking of Domain Artifacts in Product Line Engineering. In Proc. ASE, pages 269--280. IEEE, 2009. Google Scholar
Digital Library
- H. Li, S. Krishnamurthi, and K. Fisler. Verifying Cross-cutting Features as Open Systems. In Proc. FSE, pages 89--98. ACM, 2002. Google Scholar
Digital Library
- J. Liebig, A. von Rhein, C. Kästner, S. Apel, J. Dörre, and C. Lengauer. Scalable Analysis of Variable Software. In Proc. ESEC/FSE, pages 81--91. ACM, 2013. Google Scholar
Digital Library
- J. Liu, S. Basu, and R. Lutz. Compositional model checking of software product lines using variation point obligations. Automated Software Engineering, 18 (1): 39--76, Mar. 2011. Google Scholar
Digital Library
- S. Oster, F. Markert, and P. Ritter. Automated Incremental Pairwise Testing of Software Product Lines. In Proc. SPLC, LNCS 6287, pages 196--210. Springer, 2010. Google Scholar
Digital Library
- N. Siegmund, S. Kolesnikov, C. Kästner, S. Apel, D. Batory, M. Rosenmüller, and G. Saake. Predicting Performance via Automated Feature-Interaction Detection. In Proc. ICSE, pages 167--177. IEEE, 2012. Google Scholar
Digital Library
- N. Siegmund, M. Rosenmüller, C. Kästner, P. Giarrusso, S. Apel, and S. Kolesnikov. Scalable Prediction of Non-functional Properties in Software Product Lines: Footprint and Memory Consumption. Information and Software Technology, 55 (3): 491--507, 2013. Google Scholar
Digital Library
- N. Siegmund, A. von Rhein, and S. Apel. Family-Based Performance Measurement. In Proc. GPCE. ACM, 2013. Google Scholar
Digital Library
- P. Tarr, H. Ossher, and S. Sutton Jr. Hyper/J: Multi-Dimensional Separation of Concerns for Java. In Proc. ICSE, pages 689--690. ACM, 2002. Google Scholar
Digital Library
- R. Tartler, D. Lohmann, J. Sincero, and W. Schröder-Preikschat. Feature Consistency in Compile-time-configurable System Software: Facing the Linux 10,000 Feature Problem. In Proc. EuroSys, pages 47--60. ACM, 2011. Google Scholar
Digital Library
- S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In Proc. GPCE, pages 95--104. ACM, 2007. Google Scholar
Digital Library
- T. Thüm, S. Apel, C. Kästner, M. Kuhlemann, I. Schaefer, and G. Saake. Analysis Strategies for Software Product Lines. Technical Report FIN-004-2012, University of Magdeburg, 2012.Google Scholar
- T. Thüm, I. Schaefer, S. Apel, and M. Hentschel. Family-based Deductive Verification of Software Product Lines. In Proc. GPCE, pages 11--20. ACM, 2012. Google Scholar
Digital Library
- A. von Rhein, S. Apel, C. Kästner, T. Thüm, and I. Schaefer. The PLA Model: On the Combination of Product-Line Analyses. In Proc. VaMoS, pages 73--80. ACM, 2013. Google Scholar
Digital Library
Index Terms
A comparison of product-based, feature-based, and family-based type checking
Recommendations
A Classification and Survey of Analysis Strategies for Software Product Lines
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 ...
A comparison of product-based, feature-based, and family-based type checking
GPCE '13: Proceedings of the 12th international conference on Generative programming: concepts & experiencesAnalyzing software product lines is difficult, due to their inherent variability. In the past, several strategies for product-line analysis have been proposed, in particular, product-based, feature-based, and family-based strategies. Despite recent ...
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