skip to main content
10.1145/2648511.2648530acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Potential synergies of theorem proving and model checking for software product lines

Published:15 September 2014Publication History

ABSTRACT

The verification of software product lines is an active research area. A challenge is to efficiently verify similar products without the need to generate and verify them individually. As solution, researchers suggest family-based verification approaches, which either transform compile-time into runtime variability or make verification tools variability-aware. Existing approaches either focus on theorem proving, model checking, or other verification techniques. For the first time, we combine theorem proving and model checking to evaluate their synergies for product-line verification. We provide tool support by connecting five existing tools, namely FeatureIDE and FeatureHouse for product-line development, as well as KeY, JPF, and OpenJML for verification of Java programs. In an experiment, we found the synergy of improved effectiveness and efficiency, especially for product lines with few defects. Further, we experienced that model checking and theorem proving are more efficient and effective if the product line contains more defects.

References

  1. J.-R. Abrial. Modeling in Event-B: System and Software Engineering. Cambridge University Press, 1st edition, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Apel, C. Kästner, and C. Lengauer. Language-Independent and Automated Software Composition: The FeatureHouse Experience. TSE, 39(1):63--79, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Apel, H. Speidel, P. Wendler, A. von Rhein, and D. Beyer. Detection of Feature Interactions using Feature-Aware Verification. In ASE, pages 372--375. IEEE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Apel, A. von Rhein, T. Thüm, and C. Kästner. Feature-Interaction Detection Based on Feature-Based Specifications. ComNet, 57(12):2399--2409, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Apel, A. von Rhein, P. Wendler, A. Größlinger, and D. Beyer. Strategies for Product-Line Verification: Case Studies and Experiments. In ICSE, pages 482--491. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. Aversano, M. D. Penta, and I. D. Baxter. Handling Preprocessor-Conditioned Declarations. In SCAM, pages 83--92. IEEE, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and Verification: The Spec# Experience. Comm. ACM, 54:81--91, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, pages 7--20. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. TSE, 30(6):355--371, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. B. Beckert, R. Hähnle, and P. Schmitt. Verification of Object-Oriented Software: The KeY Approach. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. F. Benduhn. Contract-Aware Feature Composition. Bachelor's thesis, University of Magdeburg, Germany, 2012.Google ScholarGoogle Scholar
  13. E. Bodden, T. Tolêdo, M. Ribeiro, C. Brabrand, P. Borba, and M. Mezini. SPLLIFT: Statically Analyzing Software Product Lines in Minutes Instead of Years. In PLDI, pages 355--364. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Brabrand, M. Ribeiro, T. Tolêdo, J. Winther, and P. Borba. Intraprocedural Dataflow Analysis for Software Product Lines. TAOSD, 10:73--108, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. Bruns, V. Klebanov, and I. Schaefer. Verification of Software Product Lines with Delta-Oriented Slicing. In FoVeOOS, pages 61--75. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. An Overview of JML Tools and Applications. STTT, 7(3):212--232, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. MIT Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Classen, P. Heymans, P.-Y. Schobbens, and A. Legay. Symbolic Model Checking of Software Product Lines. In ICSE, pages 321--330. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. R. Cok. OpenJML: JML for Java 7 by Extending OpenJDK. In NFM, pages 472--479. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. F. Damiani, O. Owe, J. Dovland, I. Schaefer, E. B. Johnsen, and I. C. Yu. A Transformational Proof System for Delta-Oriented Programming. In FMSPLE, pages 53--60. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. F. Damiani and I. Schaefer. Family-Based Analysis of Type Safety for Delta-Oriented Software Product Lines. In ISOLA, pages 193--207. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Dybjer, Q. Haiyan, and M. Takeyama. Verifying Haskell Programs by Combining Testing, Model Checking and Interactive Theorem Proving. IST, 46(15):1011--1025, 2004.Google ScholarGoogle Scholar
  23. D. Fischbein, S. Uchitel, and V. Braberman. A Foundation for Behavioural Conformance in Software Product Line Architectures. In ROSATEA, pages 39--48. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Gondal, M. Poppleton, and M. Butler. Composing Event-B Specifications: Case-Study Experience. In SC, pages 100--115. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Gruler, M. Leucker, and K. Scheidemann. Modeling and Model Checking Software Product Lines. In FMOODS, pages 113--131. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Hähnle and I. Schaefer. A Liskov Principle for Delta-Oriented Programming. In ISOLA, pages 32--46. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. J. Y. Halpern and M. Y. Vardi. Model Checking vs. Theorem Proving: A Manifesto. In V. Lifschitz, editor, Artificial Intelligence and Mathematical Theory of Computation, pages 151--176. Academic Press Professional, Inc., 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. Hatcliff, G. T. Leavens, K. R. M. Leino, P. Müller, and M. Parkinson. Behavioral Interface Specification Languages. CSUR, 44(3):16:1--16:58, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. K. Havelund and T. Pressburger. Model Checking Java Programs using Java PathFinder. STTT, 2(4):366--381, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  30. M. Ismail, O. Hasan, T. Ebi, M. Shafique, and J. Henkel. Formal Verification of Distributed Dynamic Thermal Management. In ICCAD, pages 248--255. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Jia and M. Harman. An Analysis and Survey of the Development of Mutation Testing. TSE, 37(5):649--678, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. C. Kästner, S. Apel, T. Thüm, and G. Saake. Type Checking Annotation-Based Product Lines. TOSEM, 21(3):14:1--14:39, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. C. Kästner, A. von Rhein, S. Erdweg, J. Pusch, S. Apel, T. Rendel, and K. Ostermann. Toward Variability-Aware Testing. In FOSD, pages 1--8. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. S. Kolesnikov, A. von Rhein, C. Hunsen, and S. Apel. A Comparison of Product-based, Feature-based, and Family-based Type Checking. In GPCE, pages 115--124. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Liebig, A. von Rhein, C. Kästner, S. Apel, J. Dörre, and C. Lengauer. Scalable Analysis of Variable Software. In ESECFSE, pages 81--91. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. Meinicke. JML-Based Verification for Feature-Oriented Programming. Bachelor's thesis, University of Magdeburg, Germany, 2013.Google ScholarGoogle Scholar
  37. J. Meinicke, T. Thüm, R. Schöter, F. Benduhn, and G. Saake. An Overview on Analysis Tools for Software Product Lines. In SPLat. ACM, 2014. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., 1st edition, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. S. Owre, S. P. Rajan, J. M. Rushby, N. Shankar, and M. K. Srivas. PVS: Combining Specification, Proof Checking, and Model Checking. In R. Alur and T. A. Henzinger, editors, CAV, pages 411--414. Springer, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. B. C. Pierce. Types and Programming Languages. MIT Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. K. Pohl, G. Böckle, and F. J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. M. Poppleton. Towards Feature-Oriented Specification and Development with Event-B. In REFSQ, pages 367--381. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. H. Post and C. Sinz. Configuration Lifting: Software Verification meets Software Configuration. In ASE, pages 347--350. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In ECOOP, pages 419--443. Springer, 1997.Google ScholarGoogle Scholar
  46. Robby, E. Rodríguez, M. B. Dwyer, and J. Hatcliff. Checking JML Specifications using an Extensible Software Model Checking Framework. STTT, 8(3):280--299, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. J. Rubin and M. Chechik. A Framework for Managing Cloned Product Variants. In ICSE, pages 1233--1236. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. W. Scholz, T. Thüm, S. Apel, and C. Lengauer. Automatic Detection of Feature Interactions using the Java Modeling Language: An Experience Report. In FOSD, pages 7:1--7:8. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. R. Schröter, N. Siegmund, and T. Thüm. Towards Modular Analysis of Multi Product Lines. In MultiPLE, pages 96--99. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. J. Schumann. Automated Theorem Proving in Software Engineering. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. J. Sorge, M. Poppleton, and M. Butler. A Basis for Feature-Oriented Modelling in Event-B. In ABZ, pages 409--409. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. O. Strichman and B. Godlin. Verified Software: Theories, Tools, Experiments. In B. Meyer and J. Woodcock, editors, Regression Verification - A Practical Way to Verify Programs, pages 496--501. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In ICSE, pages 107--119. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In GPCE, pages 95--104. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. T. Thüm, S. Apel, C. Kästner, I. Schaefer, and G. Saake. A Classification and Survey of Analysis Strategies for Software Product Lines. CSUR, 47(1):6:1--6:45, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. T. Thüm, S. Apel, A. Zelend, R. Schröter, and B. Möller. Subclack: Feature-Oriented Programming with Behavioral Feature Interfaces. In MASPEGHI, pages 1--8. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. T. Thüm, C. Kästner, F. Benduhn, J. Meinicke, G. Saake, and T. Leich. FeatureIDE: An Extensible Framework for Feature-Oriented Software Development. SCP, 79(0):70--85, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. T. Thüm, I. Schaefer, S. Apel, and M. Hentschel. Family-Based Deductive Verification of Software Product Lines. In GPCE, pages 11--20. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. T. Thüm, I. Schaefer, M. Kuhlemann, and S. Apel. Proof Composition for Deductive Verification of Software Product Lines. In VAST, pages 270--277. IEEE, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. T. Thüm, I. Schaefer, M. Kuhlemann, S. Apel, and G. Saake. Applying Design by Contract to Feature-Oriented Programming. In FASE, pages 255--269. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. D. M. Weiss. The Product Line Hall of Fame. In SPLC, page 395. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Y. Xue, Z. Xing, and S. Jarzabek. Feature Location in a Collection of Product Variants. In WCRE, pages 145--154. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Potential synergies of theorem proving and model checking 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

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader