Skip to main content

Using Abstract Contracts for Verifying Evolving Features and Their Interactions

  • Chapter
  • First Online:
Deductive Software Verification: Future Perspectives

Abstract

Today, software systems are rarely developed monolithically, but may be composed of numerous individually developed features. Their modularization facilitates independent development and verification. While feature-based strategies to verify features in isolation have existed for years, they cannot address interactions between features. The problem with feature interactions is that they are typically unknown and may involve any subset of the features. Contrary, a family-based verification strategy captures feature interactions, but does not scale well when features evolve frequently. To the best of our knowledge, there currently exists no approach with focus on evolving features that combines both strategies and aims at eliminating their respective drawbacks. To fill this gap, we introduce Fefalution, a feature-family-based verification approach based on abstract contracts to verify evolving features and their interactions. Fefalution builds partial proofs for each evolving feature and then reuses the resulting partial proofs in verifying feature interactions, yielding a full verification of the complete software system. Moreover, to investigate whether a combination of both strategies is fruitful, we present the first empirical study for the verification of evolving features implemented by means of feature-oriented programming and by comparing Fefalution with another five family-based approaches varying in a set of optimizations. Our results indicate that partial proofs based on abstract contracts exhibit huge reuse potential, but also come with a substantial overhead for smaller evolution scenarios.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Adapted FeatureHouse: https://github.com/kruegers/featurehouse.

  2. 2.

    Adapted FeatureIDE: https://github.com/kruegers/featureide.

References

  1. Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P.H., Ulbrich, M.: Deductive Software Verification-The Key Book. LNCS, vol. 10001. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-49812-6

    Book  Google Scholar 

  2. Apel, S., Hutchins, D.: A calculus for uniform feature composition. ACM Trans. Program. Lang. Syst. (TOPLAS) 32(5), 19:1–19:33 (2010)

    Article  Google Scholar 

  3. Apel, S., Lengauer, C.: Superimposition: a language-independent approach to software composition. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 20–35. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78789-1_2

    Chapter  Google Scholar 

  4. Apel, S., Kästner, C., Lengauer, C.: Featurehouse: language-independent, automated software composition. In: Proceedings International Conference Software Engineering (ICSE), Washington, DC, USA, pp. 221–231. IEEE (2009). ISBN 978-1-4244-3453-4

    Google Scholar 

  5. Apel, S., Lengauer, C., Möller, B., Kästner, C.: An algebraic foundation for automatic feature-based program synthesis. Sci. Comput. Program. (SCP) 75(11), 1022–1047 (2010)

    Article  Google Scholar 

  6. Apel, S., Kolesnikov, S., Liebig, J., Kästner, C., Kuhlemann, M., Leich, T.: Access control in feature-oriented programming. Sci. Comput. Program. (SCP) 77(3), 174–187 (2012)

    Article  Google Scholar 

  7. Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Concepts and Implementation. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37521-7

    Book  Google Scholar 

  8. Apel, S., Kästner, C., Lengauer, C.: Language-independent and automated software composition: the featurehouse experience. IEEE Trans. Softw. Eng. (TSE) 39(1), 63–79 (2013)

    Article  Google Scholar 

  9. Apel, S., von Rhein, A., Wendler, P., Größlinger, A., Beyer, D.: Strategies for product-line verification: case studies and experiments. In: Proceedings International Conference Software Engineering (ICSE), Piscataway, pp. 482–491. IEEE (2013). ISBN 978-1-4673-3076-3

    Google Scholar 

  10. Aversano, L., Di Penta, M., Baxter, I.D.: Handling preprocessor-conditioned declarations. In: Proceedings International Working Conference Source Code Analysis and Manipulation (SCAM), Washington, DC, USA, pp. 83–92. IEEE, October 2002. ISBN 0-7695-1793-5

    Google Scholar 

  11. Bubel, R., Hähnle, R., Pelevina, M.: Fully abstract operation contracts. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8803, pp. 120–134. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45231-8_9

    Chapter  Google Scholar 

  12. Bubel, R., et al.: Proof repositories for compositional verification of evolving software systems. In: Steffen, B. (ed.) Transactions on Foundations for Mastering Change I. LNCS, vol. 9960, pp. 130–156. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-46508-1_8

    Chapter  Google Scholar 

  13. Calder, M., Kolberg, M., Magill, E.H., Reiff-Marganiec, S.: Feature interaction: a critical review and considered forecast. Comput. Netw. 41(1), 115–141 (2003)

    Article  Google Scholar 

  14. Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. ACM/Addison-Wesley, New York (2000)

    Google Scholar 

  15. Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Proceedings International Conference Generative Programming and Component Engineering (GPCE), New York, NY, USA, pp. 211–220. ACM (2006)

    Google Scholar 

  16. Damiani, F., Schaefer, I.: Family-based analysis of type safety for delta-oriented software product lines. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012. LNCS, vol. 7609, pp. 193–207. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34026-0_15

    Chapter  Google Scholar 

  17. Damiani, F., Dovland, J., Johnsen, E.B., Owe, O., Schäfer, I., Yu, I.C.: A transformational proof system for delta-oriented programming. In: de Almeida, E.S. (ed.) Proceedings International Software Product Line Conference (SPLC), New York, NY, USA, vol. 2, pp. 53–60. ACM (2012). ISBN 978-1-4503-1095-6

    Google Scholar 

  18. Delaware, B., Cook, W.R., Batory, D.: Fitting the pieces together: a machine-checked model of safe composition. In: Proceedings European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), pp. 243–252. ACM (2009)

    Google Scholar 

  19. Delaware, B., Cook, W., Batory, D.: Product lines of theorems. In: Proceedings Conference Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), New York, NY, USA, pp. 595–608. ACM (2011). ISBN 978-1-4503-0940-0

    Google Scholar 

  20. Delaware, B.D.S., Oliveira, B.C., Schrijvers, T.: Meta-theory à la carte. In: Proceedings Symposium Principles of Programming Languages (POPL), New York, NY, USA, pp. 207–218. ACM (2013). ISBN 978-1-4503-1832-7

    Google Scholar 

  21. Fischbein, D., Uchitel, S., Braberman, V.: A foundation for behavioural conformance in software product line architectures. In: Proceedings International Workshop Role of Software Architecture for Testing and Analysis (ROSATEA), New York, NY, USA, pp. 39–48. ACM (2006)

    Google Scholar 

  22. Gondal, A., Poppleton, M., Butler, M.: Composing event-b specifications - case-study experience. In: Apel, S., Jackson, E. (eds.) SC 2011. LNCS, vol. 6708, pp. 100–115. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22045-6_7

    Chapter  Google Scholar 

  23. Gruler, A., Leucker, M., Scheidemann, K.: Modeling and model checking software product lines. In: Barthe, G., de Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 113–131. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-68863-1_8

    Chapter  Google Scholar 

  24. Hähnle, R., Schaefer, I.: A Liskov principle for delta-oriented programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012. LNCS, vol. 7609, pp. 32–46. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34026-0_4

    Chapter  Google Scholar 

  25. Hähnle, R., Schaefer, I., Bubel, R.: Reuse in software verification by abstract method calls. In: Bonacina, M.P. (ed.) CADE 2013. LNCS (LNAI), vol. 7898, pp. 300–314. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-38574-2_21

    Chapter  Google Scholar 

  26. Harhurin, A., Hartmann, J.: Towards consistent specifications of product families. In: Cuellar, J., Maibaum, T., Sere, K. (eds.) FM 2008. LNCS, vol. 5014, pp. 390–405. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-68237-0_27

    Chapter  Google Scholar 

  27. Höfner, P., Möller, B., Zelend, A.: Foundations of coloring algebra with consequences for feature-oriented programming. In: Kahl, W., Griffin, T.G. (eds.) RAMiCS 2012. LNCS, vol. 7560, pp. 33–49. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33314-9_3

    Chapter  Google Scholar 

  28. Kang, K.C, Cohen, S.G, Hess, J.A, Novak, W.E., Peterson, A.S.: Feature-oriented domain analysis (FODA) feasibility study. Technical report CMU/SEI-90-TR-21, Software Engineering Institute (1990)

    Google Scholar 

  29. Knüppel, A., Thüm, T., Padylla, C., Schaefer, I.: Scalability of deductive verification depends on method call treatment. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11247, pp. 159–175. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03427-6_15

    Chapter  Google Scholar 

  30. Kolesnikov, S., von Rhein, A., Hunsen, C., Apel, S.: A comparison of product-based, feature-based, and family-based type checking. In: Proceedings International Conference Generative Programming and Component Engineering (GPCE), New York, NY, USA, pp. 115–124. ACM (2013). ISBN 978-1-4503-2373-4

    Google Scholar 

  31. Leavens, G.T., Cheon, Y.: Design by contract with JML, September 2006. http://www.jmlspecs.org/jmldbc.pdf

  32. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: a behavioral interface specification language for Java. SIGSOFT Softw. Eng. Notes 31(3), 1–38 (2006)

    Article  Google Scholar 

  33. Meyer, B.: Applying design by contract. IEEE Comput. 25(10), 40–51 (1992)

    Article  Google Scholar 

  34. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  35. Steinhöfel, D., Hähnle, R.: Abstract execution. In: ter Beek, M.H., McIver, A., Oliveira, J.N. (eds.) FM 2019. LNCS, vol. 11800, pp. 319–336. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-30942-8_20

    Chapter  Google Scholar 

  36. Thüm, T., Schaefer, I., Kuhlemann, M., Apel, S.: Proof composition for deductive verification of software product lines. In: Proceedings International Workshop Variability-intensive Systems Testing, Validation and Verification (VAST), Washington, pp. 270–277. IEEE Computer (2011)

    Google Scholar 

  37. Thüm, T., Schaefer, I., Apel, S., Hentschel, M.: Family-based deductive verification of software product lines. In: Proceedings International Conference Generative Programming and Component Engineering (GPCE), New York, NY, USA, pp. 11–20. ACM, September 2012. ISBN 978-1-4503-1129-8

    Google Scholar 

  38. Thüm, T., Schaefer, I., Kuhlemann, M., Apel, S., Saake, G.: Applying design by contract to feature-oriented programming. In: de Lara, J., Zisman, A. (eds.) FASE 2012. LNCS, vol. 7212, pp. 255–269. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-28872-2_18

    Chapter  Google Scholar 

  39. Thüm, T., Apel, S., Kästner, C., Schaefer, I., Saake, G.: A classification and survey of analysis strategies for software product lines. ACM Comput. Surv. 47(1), 6:1–6:45 (2014)

    Article  Google Scholar 

  40. Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. (SCP) 79, 70–85 (2014)

    Article  Google Scholar 

  41. Thüm, T., Knüppel, A., Krüger, S., Bolle, S., Schaefer, I.: Feature-oriented contract composition. J. Syst. Softw. 152, 83–107 (2019)

    Article  Google Scholar 

  42. von Rhein, A., Thüm, T., Schaefer, I., Liebig, J., Apel, S.: Variability encoding: from compile-time to load-time variability. J. Logic a Algebraic Methods Program. (JLAMP) 85(1, Part 2), 125–145 (2016)

    Article  MathSciNet  Google Scholar 

  43. von Rhein, A., Thüm, T., Schaefer, I., Liebig, J., Apel, S.: Variability encoding: from compile-time to load-time variability. J. Logic a Algebraic Methods Program. 85(1), 125–145 (2016)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgements

We are grateful to Stefanie Bolle for her help with the implementation and evaluation, and also to Dominic Steinhöffel for his support with KeY and abstract contracts. This work was supported by the DFG (German Research Foundation) under the Researcher Unit FOR1800: Controlling Concurrent Change (CCC).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexander Knüppel .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Knüppel, A. et al. (2020). Using Abstract Contracts for Verifying Evolving Features and Their Interactions. In: Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Ulbrich, M. (eds) Deductive Software Verification: Future Perspectives. Lecture Notes in Computer Science(), vol 12345. Springer, Cham. https://doi.org/10.1007/978-3-030-64354-6_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-64354-6_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-64353-9

  • Online ISBN: 978-3-030-64354-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics