@Inbook{Knüppel2020, author="Kn{\"u}ppel, Alexander and Kr{\"u}ger, Stefan and Th{\"u}m, Thomas and Bubel, Richard and Krieter, Sebastian and Bodden, Eric and Schaefer, Ina", editor="Ahrendt, Wolfgang and Beckert, Bernhard and Bubel, Richard and H{\"a}hnle, Reiner and Ulbrich, Mattias", title="Using Abstract Contracts for Verifying Evolving Features and Their Interactions", bookTitle="Deductive Software Verification: Future Perspectives: Reflections on the Occasion of 20 Years of KeY", year="2020", publisher="Springer International Publishing", address="Cham", pages="122--148", 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.", isbn="978-3-030-64354-6", doi="10.1007/978-3-030-64354-6_5", url="https://doi.org/10.1007/978-3-030-64354-6_5" }