Verification of Software Product Lines with Delta-Oriented Slicing

  • Daniel Bruns
  • Vladimir Klebanov
  • Ina Schaefer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6528)


Software product line (SPL) engineering is a well-known approach to develop industry-size adaptable software systems. SPL are often used in domains where high-quality software is desirable; the overwhelming product diversity, however, remains a challenge for assuring correctness. In this paper, we present delta-oriented slicing, an approach to reduce the deductive verification effort across an SPL where individual products are Java programs and their relations are described by deltas. On the specification side, we extend the delta language to deal with formal specifications. On the verification side, we combine proof slicing and similarity-guided proof reuse to ease the verification process.


Model Check Core Module Software Product Line Proof Obligation Java Modeling Language 
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.
    Batory, D.S., Benavides, D., Ruiz-Cortés, A.: Automated analysis of feature models: Challenges ahead. Communications of the ACM 49(12) (2006)Google Scholar
  2. 2.
    Batory, D.S., Börger, E.: Modularizing theorems for software product lines: The Jbook case study. Journal of Universal Computer Science 14(12) (2008)Google Scholar
  3. 3.
    Batory, D.S., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Trans. Software Eng. 30(6), 355–371 (2004)CrossRefGoogle Scholar
  4. 4.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software. LNCS (LNAI), vol. 4334. Springer, Heidelberg (2007)Google Scholar
  5. 5.
    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: 32nd International Conference on Software Engineering, ICSE 2010, Cape Town, South Africa, May 2-8. IEEE, Los Alamitos (2010) (to appear)Google Scholar
  6. 6.
    Czarnecki, K., Pietroszek, K.: Verifying feature-based model templates against well-formedness OCL constraints. In: Conf. on Generative Programming and Component Engineering (GPCE) (2006)Google Scholar
  7. 7.
    Delaware, B., Cook, W., Batory, D.: A Machine-Checked Model of Safe Composition. In: Foundations of Aspect-Oriented Languages (FOAL), pp. 31–35. ACM, New York (2009)Google Scholar
  8. 8.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. Addison-Wesley Longman, Amsterdam (2005)zbMATHGoogle Scholar
  9. 9.
    Hatcliff, J., Dwyer, M.B., Zheng, H.: Slicing software for model construction. Higher-Order and Symbolic Computation 13(4), 315–353 (2000)CrossRefzbMATHGoogle Scholar
  10. 10.
    Hutter, D.: Management of change in structured verification. In: Automated Software Engineering (ASE), p. 23 (2000)Google Scholar
  11. 11.
    Klebanov, V.: Proof reuse. In: Beckert et al. [4]Google Scholar
  12. 12.
    Lauenroth, K., Pohl, K., Toehning, S.: Model checking of domain artifacts in product line engineering. In: Automated Software Engineering (ASE), pp. 269–280. IEEE Computer Society, Los Alamitos (2009)Google Scholar
  13. 13.
    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)CrossRefGoogle Scholar
  14. 14.
    Mannion, M.: Using First-Order Logic for Product Line Model Validation. In: Chastek, G.J. (ed.) SPLC 2002. LNCS, vol. 2379, pp. 176–187. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    McGregor, J.D.: Testing a software product line. Technical Report CMU/SEI-2001-TR-022, Software Engineering Institute, Carnegie Mellon University (December 2001)Google Scholar
  16. 16.
    Mossakowski, T.: Heterogeneous theories and the heterogeneous tool set. In: Kalfoglou, Y., Schorlemmer, W.M., Sheth, A.P., Staab, S., Uschold, M. (eds.) Semantic Interoperability and Integration. Dagstuhl Seminar Proceedings, vol. 04391, IBFI, Schloss Dagstuhl (2005)Google Scholar
  17. 17.
    Muccini, H., van der Hoek, A.: Towards testing product line architectures. Electr. Notes Theor. Comput. Sci 82(6) (2003)Google Scholar
  18. 18.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg (2005)CrossRefzbMATHGoogle Scholar
  19. 19.
    Ren, X., Shah, F., Tip, F., Ryder, B.G., Chesley, O.: Chianti: A tool for change impact analysis of Java programs. In: Vlissides, J.M., Schmidt, D.C. (eds.) Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, Vancouver, BC, Canada, October 24-28, pp. 432–448. ACM, New York (2004)CrossRefGoogle Scholar
  20. 20.
    Roth, A.: Specification and Verification of Object-oriented Software Components. PhD thesis, Universität Karlsruhe (2006)Google Scholar
  21. 21.
    Schaefer, I.: Variability modelling for model-driven development of software product lines. In: 4th Int. Workshop on Variability Modelling of Software-intensive Systems (VaMoS), Linz, Austria (January 2010)Google Scholar
  22. 22.
    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
  23. 23.
    Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A model-based framework for automated product derivation. In: Model-driven Approaches in Software Product Line Engineering (MAPLE 2009) (2009)Google Scholar
  24. 24.
    Stenzel, K.: Verification of Java Card Programs. PhD thesis, Fakultät fur angewandte Informatik, University of Augsburg (2005)Google Scholar
  25. 25.
    Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3(3) (1995)Google Scholar
  26. 26.
    Wehrheim, H.: Slicing techniques for verification re-use. Theor. Comput. Sci. 343(3), 509–528 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Weiser, M.: Program slicing. IEEE Transactions on Software Engineering 10(4), 352–357 (1984)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Daniel Bruns
    • 1
  • Vladimir Klebanov
    • 1
  • Ina Schaefer
    • 2
  1. 1.Karlsruhe Institute of TechnologyKarlsruheGermany
  2. 2.Chalmers University of TechnologyGothenburgSweden

Personalised recommendations