Abstraction Refinement for the Analysis of Software Product Lines

  • Ferruccio Damiani
  • Reiner HähnleEmail author
  • Michael Lienhardt
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10375)


We generalize the principle of counter example-guided data abstraction refinement (CEGAR) to guided refinement of Software Product Lines (SPL) and of analysis tools. We also add a problem decomposition step. The result is a framework for formal SPL analysis via guided refinement and divide-and-conquer, through sound orchestration of multiple tools.


Software Product Line Formal Verification Symbolic Execution Meta Variant Verification Tool 
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.



The authors gratefully acknowledge the help of Antonio Flores Montoya who ran a number of experiments with SACO for us and helped with their analysis.


  1. 1.
    Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P., Ulbrich, M. (eds.): Deductive Software Verification—The KeY Book: From Theory to Practice. Programming and Software Engineering, vol. 10001. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-49812-6 Google Scholar
  2. 2.
    Albert, E., Arenas, P., Flores-Montoya, A., Genaim, S., Gómez-Zamalloa, M., Martin-Martin, E., Puebla, G., Román-Díez, G.: SACO: static analyzer for concurrent objects. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014. LNCS, vol. 8413, pp. 562–567. Springer, Heidelberg (2014). doi: 10.1007/978-3-642-54862-8_46 CrossRefGoogle Scholar
  3. 3.
    Albert, E., Bubel, R., Genaim, S., Hähnle, R., Díez, G.R.: A formal verification framework for static analysis – as well as its instantiation to the resource analyzer COSTA and formal verification tool KeY. Softw. Syst. Model. 15(4), 987–1012 (2016)CrossRefGoogle Scholar
  4. 4.
    Albert, E., Flores-Montoya, A., Genaim, S., Martin-Martin, E.: May-happen-in-parallel analysis for actor-based concurrency. ACM Trans. Comput. Log. 17(2), 11:1–11:39 (2016)MathSciNetGoogle Scholar
  5. 5.
    Albert, E., Gómez-Zamalloa, M., Isabel, M.: Combining static analysis and testing for deadlock detection. In: Ábrahám, E., Huisman, M. (eds.) IFM 2016. LNCS, vol. 9681, pp. 409–424. Springer, Cham (2016). doi: 10.1007/978-3-319-33693-0_26 CrossRefGoogle Scholar
  6. 6.
    Apel, S., Batory, D.S., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  7. 7.
    Apel, S., Speidel, H., Wendler, P., von Rhein, A., Beyer, D.: Detection of feature interactions using feature-aware verification. In: Alexander, P., Pasareanu, C.S., Hosking, J.G. (eds.) 26th IEEE/ACM International Conference on Automated Software Engineering (ASE), Lawrence, KS, USA, pp. 372–375. IEEE Computer Society (2011)Google Scholar
  8. 8.
    Bak, K.: Modeling and analysis of software product line variability in clafer. Ph.D. thesis, University of Waterloo (2013)Google Scholar
  9. 9.
    Bak, K., Diskin, Z., Antkiewicz, M., Czarnecki, K., Wasowski, A.: Clafer: unifying class and feature modeling. Softw. Syst. Model. 15(3), 811–845 (2016)CrossRefGoogle Scholar
  10. 10.
    Batory, D.S.: A theory of modularity for automated software development. In: France, R.B., Ghosh, S., Leavens, G.T. (eds.) Companion Proceedings of 14th International Conference on Modularity, Fort Collins, CO, USA, pp. 1–10. ACM (2015)Google Scholar
  11. 11.
    Batory, D.S., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6), 355–371 (2004)CrossRefGoogle Scholar
  12. 12.
    Beckert, B., Hähnle, R.: Reasoning and verification. IEEE Intell. Syst. 29(1), 20–29 (2014)CrossRefGoogle Scholar
  13. 13.
    Bettini, L., Damiani, F., Schaefer, I.: Compositional type checking of delta-oriented software product lines. Acta Inform. 50(2), 77–122 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Beyer, D., Dangl, M., Dietsch, D., Heizmann, M.: Correctness witnesses: exchanging verification results between verifiers. In: Zimmermann, T., Cleland-Huang, J., Su, Z. (eds.) Proceedings of 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE, Seattle, WA, USA, pp. 326–337. ACM (2016)Google Scholar
  15. 15.
    Beyer, D., Keremoglu, M.E.: CPAchecker: a tool for configurable software verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-22110-1_16 CrossRefGoogle Scholar
  16. 16.
    Beyer, D., Lemberger, T.: Symbolic execution with CEGAR. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 195–211. Springer, Cham (2016). doi: 10.1007/978-3-319-47166-2_14 CrossRefGoogle Scholar
  17. 17.
    Bodden, E., Tolêdo, T., Ribeiro, M., Brabrand, C., Borba, P., Mezini, M.: Spl\(^{\text{lift}}\): statically analyzing software product lines in minutes instead of years. In: Boehm, H., Flanagan, C. (eds.) ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, Seattle, WA, USA, pp. 355–364. ACM (2013)Google Scholar
  18. 18.
    Bubel, R., Damiani, F., Hähnle, R., Johnsen, E.B., Owe, O., Schaefer, I., Yu, I.C.: 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). doi: 10.1007/978-3-319-46508-1_8 CrossRefGoogle Scholar
  19. 19.
    Bubel, R., Din, C., Hähnle, R.: Verification of variable software: an experience report. In: Beckert, B., Marché, C. (eds.) Pre-Proceedings International Conference on Formal Verification of Object-Oriented Software (FoVeOOS), Paris, France (2010)Google Scholar
  20. 20.
    Chimento, J.M., Ahrendt, W., Pace, G.J., Schneider, G.: StaRVOOrS : a tool for combined static and runtime verification of Java. In: Bartocci, E., Majumdar, R. (eds.) RV 2015. LNCS, vol. 9333, pp. 297–305. Springer, Cham (2015). doi: 10.1007/978-3-319-23820-3_21 CrossRefGoogle Scholar
  21. 21.
    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). doi: 10.1007/978-3-642-21455-4_13 CrossRefGoogle Scholar
  22. 22.
    Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 154–169. Springer, Heidelberg (2000). doi: 10.1007/10722167_15 CrossRefGoogle Scholar
  23. 23.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman, Boston (2001)Google Scholar
  24. 24.
    Damiani, F., Lienhardt, M.: On type checking delta-oriented product lines. In: Ábrahám, E., Huisman, M. (eds.) IFM 2016. LNCS, vol. 9681, pp. 47–62. Springer, Cham (2016). doi: 10.1007/978-3-319-33693-0_4 CrossRefGoogle Scholar
  25. 25.
    Damiani, F., Owe, O., Dovland, J., Schaefer, I., Johnsen, E.B., Yu, I.C.: A transformational proof system for delta-oriented programming. In: SPLC (2), pp. 53–60 (2012)Google Scholar
  26. 26.
    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). doi: 10.1007/978-3-642-34026-0_15 CrossRefGoogle Scholar
  27. 27.
    Darvas, Á., Hähnle, R., Sands, D.: A theorem proving approach to analysis of secure information flow. In: Hutter, D., Ullmann, M. (eds.) SPC 2005. LNCS, vol. 3450, pp. 193–209. Springer, Heidelberg (2005). doi: 10.1007/978-3-540-32004-3_20 CrossRefGoogle Scholar
  28. 28.
    Dimovski, A.S., Wąsowski, A.: Variability-specific abstraction refinement for family-based model checking. In: Huisman, M., Rubin, J. (eds.) FASE 2017. LNCS, vol. 10202, pp. 406–423. Springer, Heidelberg (2017). doi: 10.1007/978-3-662-54494-5_24 CrossRefGoogle Scholar
  29. 29.
    Dziobek, C., Weiland, J.: Variantenmodellierung und -konfiguration eingebetteter automotive Software mit Simulink. In: Giese, H., Huhn, M., Nickel, U., Schätz, B. (eds.) Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme V. Schloss Dagstuhl, Germany. Informatik-Bericht, vol. 2009-01, pp. 36–45. TU Braunschweig, Institut für Software Systems Engineering (2009)Google Scholar
  30. 30.
    Giachino, E., Laneve, C., Lienhardt, M.: A framework for deadlock detection in core ABS. Softw. Syst. Model. 15(4), 1013–1048 (2016)CrossRefGoogle Scholar
  31. 31.
    Grönniger, H., Hartmann, J., Krahn, H., Kriebel, S., Rothhardt, L., Rumpe, B.: View-centric modeling of automotive logical architectures. In: Giese, H., Huhn, M., Nickel, U., Schätz, B. (eds.) Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme IV, Schloss Dagstuhl, Germany. Informatik-Bericht, vol. 2008-2, pp. 3–12. TU Braunschweig, Institut für Software Systems Engineering (2008)Google Scholar
  32. 32.
    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). doi: 10.1007/978-3-642-34026-0_4 CrossRefGoogle Scholar
  33. 33.
    Hammer, C., Krinke, J., Snelting, G.: Information flow control for Java based on path conditions in dependence graphs. In: IEEE International Symposium on Secure Software Engineering (ISSSE), pp. 87–96. IEEE, March 2006Google Scholar
  34. 34.
    Jackson, M., Zave, P.: Distributed feature composition: a virtual architecture for telecommunications services. IEEE Trans. Softw. Eng. 24(10), 831–847 (1998)CrossRefGoogle Scholar
  35. 35.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-25271-6_8 CrossRefGoogle Scholar
  36. 36.
    Küsters, R., Truderung, T., Beckert, B., Bruns, D., Kirsten, M., Mohr, M.: A hybrid approach for proving noninterference of Java programs. In: Fournet, C., Hicks, M.W., Viganò, L. (eds.) IEEE 28th Computer Security Foundations Symposium, CSF, Verona, Italy, pp. 305–319. IEEE Computer Society (2015)Google Scholar
  37. 37.
    Sabelfeld, A., Myers, A.C.: Language-based information-flow security. IEEE J. Sel. Areas Commun. 21(1), 5–19 (2003)CrossRefGoogle Scholar
  38. 38.
    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). doi: 10.1007/978-3-642-15579-6_6 CrossRefGoogle Scholar
  39. 39.
    Schaefer, I., Damiani, F.: Pure delta-oriented programming. In: Apel, S., Batory, D., Czarnecki, K., Heidenreich, F., Kästner, C., Nierstrasz, O. (eds.) Proceedings of 2nd International Workshop on Feature-Oriented Software Development (FOSD 2010), Eindhoven, The Netherlands, pp. 49–56. ACM Press (2010)Google Scholar
  40. 40.
    Schaefer, I., Rabiser, R., Clarke, D., Bettini, L., Benavides, D., Botterweck, G., Pathak, A., Trujillo, S., Villela, K.: Software diversity: state of the art and perspectives. Int. J. Softw. Tools Technol. Transf. 14(5), 477–495 (2012)CrossRefGoogle Scholar
  41. 41.
    Scheben, C., Greiner, S.: Information flow analysis. In: Ahrendt et al. [1], chap. 13, pp. 453–472 (2016)Google Scholar
  42. 42.
    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)CrossRefGoogle Scholar
  43. 43.
    Thüm, T., Schaefer, I., Hentschel, M., Apel, S.: Family-based deductive verification of software product lines. In: Ostermann, K., Binder, W. (eds.) Generative Programming and Component Engineering, GPCE 2012, Dresden, Germany, pp. 11–20. ACM (2012)Google Scholar
  44. 44.
    Thüm, T., Schaefer, I., Kuhlemann, M., Apel, S.: Proof composition for deductive verification of software product lines. In: Proceedings of International Workshop Variability-Intensive Systems Testing, Validation and Verification (VAST), pp. 270–277. IEEE Computer Society (2011)Google Scholar
  45. 45.
    von Rhein, A., Thüm, T., Schaefer, I., Liebig, J., Apel, S.: Variability encoding: from compile-time to load-time variability. J. Log. Algebr. Methods Program. 85(1), 125–145 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  46. 46.
    Wasser, N., Bubel, R., Hähnle, R.: Abstract interpretation. In: Ahrendt et al. [1], chap. 6, pp. 167–189 (2016)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Ferruccio Damiani
    • 1
  • Reiner Hähnle
    • 2
    Email author
  • Michael Lienhardt
    • 1
  1. 1.University of TorinoTorinoItaly
  2. 2.University of DarmstadtDarmstadtGermany

Personalised recommendations