In formal verification of software product families one not only analyses programs, but must act on the artifacts and components which are reused to obtain software products. As the number of products is exponential in the number of artifacts, it is crucial to perform verification in a modular way. When code reuse is based on class inheritance in OO programming, Liskov’s principle is a standard device to achieve modular verification. Software families, however, employ other variability modeling techniques than inheritance. Delta-oriented programming is an approach to implement a family of programs where code reuse is achieved via gradual transformation of a core program. We define a Liskov principle for delta-oriented programming and show that it achieves modular verification of software families developed in that paradigm.


Model Check Product Family Software Product Line Program Variant Proof Obligation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apel, S., Kästner, C., Grösslinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Automated Software Engineering 17(3), 251–300 (2010)CrossRefGoogle Scholar
  2. 2.
    Batory, D.S., Börger, E.: Modularizing theorems for software product lines: The Jbook case study. J. UCS 14(12), 2059–2082 (2008)Google Scholar
  3. 3.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software. LNCS, vol. 4334. Springer (2007)Google Scholar
  4. 4.
    Bruns, D., Klebanov, V., Schaefer, I.: Verification of Software Product Lines with Delta-Oriented Slicing. In: Beckert, B., Marché, C. (eds.) FoVeOOS 2010. LNCS, vol. 6528, pp. 61–75. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  5. 5.
    Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Schaefer, I., Schäfer, J., Schlatte, R., Wong, P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  6. 6.
    Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A., Raskin, J.-F.: Model checking lots of systems: Efficient verification of temporal properties in software product lines. In: ICSE. IEEE (2010)Google Scholar
  7. 7.
    Delaware, B., Cook, W., Batory, D.: A Machine-Checked Model of Safe Composition. In: FOAL, pp. 31–35. ACM (2009)Google Scholar
  8. 8.
    Delaware, B., Cook, W., Batory, D.: Theorem Proving for Product Lines. In: OOPSLA 2011 (to appear, 2011)Google Scholar
  9. 9.
    Dovland, J., Damiani, F., Johnsen, E.B., Schaefer, I.: Verifying Traits: A Proof System for Fine-Grained Reuse. In: Workshop on Formal Techniques for Java-like Programs, FTfJP 2011 (2011)Google Scholar
  10. 10.
    Dovland, J., Johnsen, E.B., Owe, O., Steffen, M.: Lazy behavioral subtyping. Journal of Logic and Algebraic Programming 79(7), 578–607 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  11. 11.
    Engel, C., Roth, A., Schmitt, P.H., Weiß, B.: Verification of modifies clauses in dynamic logic with non-rigid functions. Technical Report 2009-9, Department of Computer Science, University of Karlsruhe (2009)Google Scholar
  12. 12.
    Kang, K., Lee, J., Donohoe, P.: Feature-Oriented Project Line Engineering. IEEE Software 19(4) (2002)Google Scholar
  13. 13.
    Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE, pp. 49–58. ACM (2005)Google Scholar
  14. 14.
    Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: ASE, pp. 269–280 (2009)Google Scholar
  15. 15.
    Leavens, G.T., Poll, E., Clifton, C., Cheon, Y., Ruby, C., Cok, D., Müller, P., Kiniry, J., Chalin, P., Zimmerman, D.M.: JML Reference Manual (September 2009)Google Scholar
  16. 16.
    Li, H., Krishnamurthi, S., Fisler, K.: Modular Verification of Open Features Using Three-Valued Model Checking. Autom. Softw. Eng. 12(3) (2005)Google Scholar
  17. 17.
    Liskov, B., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  18. 18.
    Meyer, B.: Applying design by contract. IEEE Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  19. 19.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-Oriented Programming of Software Product Lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Schaefer, I., Bettini, L., Damiani, F.: Compositional type-checking for delta-oriented programming. In: 10th International Conference on Aspect-Oriented Software Development, AOSD 2011, pp. 43–56. ACM (2011)Google Scholar
  21. 21.
    Soundarajan, N., Fridella, S.: Inheritance: From code reuse to reasoning reuse. In: Proc. 5th Intl Conf. on Software Reuse, pp. 206–215. IEEE Comp. Soc. (1998)Google Scholar
  22. 22.
    Soundarajan, N., Fridella, S.: Incremental Reasoning for Object Oriented Systems. In: Owe, O., Krogdahl, S., Lyche, T. (eds.) From Object-Orientation to Formal Methods. LNCS, vol. 2635, pp. 302–333. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  23. 23.
    Thüm, T., Schaefer, I., Kuhlemann, M., Apel, S.: Proof composition for deductive verification of software product lines. In: Proc. Int’l Workshop Variability-Intensive Systems Testing, Validation and Verification, pp. 270–277. IEEE CS (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Reiner Hähnle
    • 1
  • Ina Schaefer
    • 2
  1. 1.Department of Computer ScienceTechnische Universität DarmstadtDarmstadtGermany
  2. 2.Institute for Software Systems EngineeringTechnical University of BraunschweigBraunschweigGermany

Personalised recommendations