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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Adapted FeatureHouse: https://github.com/kruegers/featurehouse.
- 2.
Adapted FeatureIDE: https://github.com/kruegers/featureide.
References
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
Apel, S., Hutchins, D.: A calculus for uniform feature composition. ACM Trans. Program. Lang. Syst. (TOPLAS) 32(5), 19:1–19:33 (2010)
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
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
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)
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)
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
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)
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
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
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
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
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)
Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. ACM/Addison-Wesley, New York (2000)
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)
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
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
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)
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
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
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)
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
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
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
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
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
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
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)
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
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
Leavens, G.T., Cheon, Y.: Design by contract with JML, September 2006. http://www.jmlspecs.org/jmldbc.pdf
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)
Meyer, B.: Applying design by contract. IEEE Comput. 25(10), 40–51 (1992)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
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
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)
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
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
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)
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)
Thüm, T., Knüppel, A., Krüger, S., Bolle, S., Schaefer, I.: Feature-oriented contract composition. J. Syst. Softw. 152, 83–107 (2019)
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)
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)
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
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)