Nothing Special   »   [go: up one dir, main page]

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 2014 Publication 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.
[2]
S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013.
[3]
S. Apel, C. Kästner, and C. Lengauer. Language-Independent and Automated Software Composition: The FeatureHouse Experience. TSE, 39(1):63--79, 2013.
[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.
[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.
[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.
[7]
L. Aversano, M. D. Penta, and I. D. Baxter. Handling Preprocessor-Conditioned Declarations. In SCAM, pages 83--92. IEEE, 2002.
[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.
[9]
D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, pages 7--20. Springer, 2005.
[10]
D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. TSE, 30(6):355--371, 2004.
[11]
B. Beckert, R. Hähnle, and P. Schmitt. Verification of Object-Oriented Software: The KeY Approach. Springer, 2007.
[12]
F. Benduhn. Contract-Aware Feature Composition. Bachelor's thesis, University of Magdeburg, Germany, 2012.
[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.
[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.
[15]
D. Bruns, V. Klebanov, and I. Schaefer. Verification of Software Product Lines with Delta-Oriented Slicing. In FoVeOOS, pages 61--75. Springer, 2011.
[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.
[17]
E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. MIT Press, 1999.
[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.
[19]
D. R. Cok. OpenJML: JML for Java 7 by Extending OpenJDK. In NFM, pages 472--479. Springer, 2011.
[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.
[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.
[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.
[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.
[24]
A. Gondal, M. Poppleton, and M. Butler. Composing Event-B Specifications: Case-Study Experience. In SC, pages 100--115. Springer, 2011.
[25]
A. Gruler, M. Leucker, and K. Scheidemann. Modeling and Model Checking Software Product Lines. In FMOODS, pages 113--131. Springer, 2008.
[26]
R. Hähnle and I. Schaefer. A Liskov Principle for Delta-Oriented Programming. In ISOLA, pages 32--46. Springer, 2012.
[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.
[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.
[29]
K. Havelund and T. Pressburger. Model Checking Java Programs using Java PathFinder. STTT, 2(4):366--381, 2000.
[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.
[31]
Y. Jia and M. Harman. An Analysis and Survey of the Development of Mutation Testing. TSE, 37(5):649--678, 2011.
[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.
[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.
[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.
[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.
[36]
J. Meinicke. JML-Based Verification for Feature-Oriented Programming. Bachelor's thesis, University of Magdeburg, Germany, 2013.
[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.
[38]
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., 1st edition, 1988.
[39]
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer, 2010.
[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.
[41]
B. C. Pierce. Types and Programming Languages. MIT Press, 2002.
[42]
K. Pohl, G. Böckle, and F. J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005.
[43]
M. Poppleton. Towards Feature-Oriented Specification and Development with Event-B. In REFSQ, pages 367--381. Springer, 2007.
[44]
H. Post and C. Sinz. Configuration Lifting: Software Verification meets Software Configuration. In ASE, pages 347--350. IEEE, 2008.
[45]
C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In ECOOP, pages 419--443. Springer, 1997.
[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.
[47]
J. Rubin and M. Chechik. A Framework for Managing Cloned Product Variants. In ICSE, pages 1233--1236. IEEE, 2013.
[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.
[49]
R. Schröter, N. Siegmund, and T. Thüm. Towards Modular Analysis of Multi Product Lines. In MultiPLE, pages 96--99. ACM, 2013.
[50]
J. Schumann. Automated Theorem Proving in Software Engineering. Springer, 2001.
[51]
J. Sorge, M. Poppleton, and M. Butler. A Basis for Feature-Oriented Modelling in Event-B. In ABZ, pages 409--409. Springer, 2010.
[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.
[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.
[54]
S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In GPCE, pages 95--104. ACM, 2007.
[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.
[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.
[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.
[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.
[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.
[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.
[61]
D. M. Weiss. The Product Line Hall of Fame. In SPLC, page 395. IEEE, 2008.
[62]
Y. Xue, Z. Xing, and S. Jarzabek. Feature Location in a Collection of Product Variants. In WCRE, pages 145--154. IEEE, 2012.

Cited By

View all
  • (2024)Verifying consistency of software product line architectures with product architecturesSoftware and Systems Modeling (SoSyM)10.1007/s10270-023-01114-423:1(195-221)Online publication date: 1-Feb-2024
  • (2020)Variational correctness-by-constructionProceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3377024.3377038(1-9)Online publication date: 5-Feb-2020
  • (2019)Feature-oriented contract compositionJournal of Systems and Software10.1016/j.jss.2019.01.044152:C(83-107)Online publication date: 1-Jun-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1
September 2014
377 pages
ISBN:9781450327404
DOI:10.1145/2648511
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]

Sponsors

  • University of Florence: University of Florence
  • CNR: Istituto di Scienza e Tecnologie dell Informazione

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. design by contract
  2. family-based verification
  3. feature-based specification
  4. feature-oriented contracts
  5. model checking
  6. software product lines
  7. theorem proving
  8. variability encoding

Qualifiers

  • Research-article

Conference

SPLC '14
Sponsor:
  • University of Florence
  • CNR

Acceptance Rates

SPLC '14 Paper Acceptance Rate 36 of 97 submissions, 37%;
Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Verifying consistency of software product line architectures with product architecturesSoftware and Systems Modeling (SoSyM)10.1007/s10270-023-01114-423:1(195-221)Online publication date: 1-Feb-2024
  • (2020)Variational correctness-by-constructionProceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3377024.3377038(1-9)Online publication date: 5-Feb-2020
  • (2019)Feature-oriented contract compositionJournal of Systems and Software10.1016/j.jss.2019.01.044152:C(83-107)Online publication date: 1-Jun-2019
  • (2018)Reasoning About JML: Differences Between KeY and OpenJMLIntegrated Formal Methods10.1007/978-3-319-98938-9_3(30-46)Online publication date: 9-Aug-2018
  • (2018)Understanding Parameters of Deductive Verification: An Empirical Investigation of KeYInteractive Theorem Proving10.1007/978-3-319-94821-8_20(342-361)Online publication date: 4-Jul-2018
  • (2017)Improving quality of software product line by analysing inconsistencies in feature models using an ontological rule‐based approachExpert Systems10.1111/exsy.1225635:3Online publication date: 23-Nov-2017
  • (2016)Tool demo: testing configurable systems with FeatureIDEACM SIGPLAN Notices10.1145/3093335.299325452:3(173-177)Online publication date: 20-Oct-2016
  • (2016)Tool demo: testing configurable systems with FeatureIDEProceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/2993236.2993254(173-177)Online publication date: 20-Oct-2016
  • (2016)Variability Hiding in Contracts for Dependent Software Product LinesProceedings of the 10th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/2866614.2866628(97-104)Online publication date: 27-Jan-2016
  • (2016)Mutation Operators for Preprocessor-Based VariabilityProceedings of the 10th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/2866614.2866626(81-88)Online publication date: 27-Jan-2016
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media