On Type Checking Delta-Oriented Product Lines

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9681)

Abstract

A Software Product Line (SPL) is a set of similar programs generated from a common code base. Delta Oriented Programming (DOP) is a flexible approach to implement SPLs. Efficiently type checking an SPL (i.e., checking that all its programs are well-typed) is challenging. This paper proposes a novel type checking approach for DOP. Intrinsic complexity of SPL type checking is addressed by providing early detection of type errors and by reducing type checking to satisfiability of a propositional formula. The approach is tunable to exploit automatically checkable DOP guidelines for making an SPL more comprehensible and type checking more efficient. The approach and guidelines are formalized by means of a core calculus for DOP of product lines of Java programs.

References

  1. 1.
  2. 2.
  3. 3.
    Batory, D.: Feature models, grammars, and propositional formulas. In: Obbink, H., Pohl, K. (eds.) SPLC 2005. LNCS, vol. 3714, pp. 7–20. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. In: 2003 Proceedings of ICSE, pp. 187–197. IEEE (2003)Google Scholar
  5. 5.
    Bettini, L., Damiani, F., Schaefer, I.: Compositional type checking of delta-oriented software product lines. Acta Informatica 50(2), 77–122 (2013)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman, Boston (2001)Google Scholar
  7. 7.
    Damiani, F., Owe, O., Dovland, J., Schaefer, I., Johnsen, E.B., Yu, I.C.: A transformational proof system for delta-oriented programming. In: 2012 Proceedings of SPLC, vol. 2, pp. 53–60. ACM (2012)Google Scholar
  8. 8.
    Damiani, F., Schaefer, I.: Family-based analysis of type safety for delta-oriented software product lines. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 193–207. Springer, Heidelberg (2012)Google Scholar
  9. 9.
    Delaware, B., Cook, W.R., Batory, D.: Fitting the pieces together: a machine-checked model of safe composition. In: 2009 Proceedings of ESEC/FSE. ACM (2009)Google Scholar
  10. 10.
    Hähnle, R., Schaefer, I.: A Liskov principle for delta-oriented programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 32–46. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  11. 11.
    Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)CrossRefGoogle Scholar
  12. 12.
    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.) Formal Methods for Components and Objects. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    Kästner, C., Apel, S., ur Rahman, S.S., Rosenmüller, M., Batory, D., Saake, G.: On the impact of the optional feature problem: analysis and case studies. In: Proceedings of SPLC 2009, pp. 181–190 (2009)Google Scholar
  14. 14.
    Koscielny, J., Holthusen, S., Schaefer, I., Schulze, S., Bettini, L., Damiani, F.: Deltaj 1.5: delta-oriented programming for Java 1.5. In: 2014 Proceedings of PPPJ, pp. 63–74. ACM (2014)Google Scholar
  15. 15.
    Krueger, C.: Eliminating the adoption barrier. IEEE Softw. 19(4), 29–31 (2002)CrossRefGoogle Scholar
  16. 16.
    Lienhardt, M., Clarke, D.: Conflict detection in delta-oriented programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 178–192. Springer, Heidelberg (2012)Google Scholar
  17. 17.
    Lopez-Herrejon, R.E., Batory, D., Cook, W.: Evaluating support for features in advanced modularization technologies. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Schaefer, I.: Proceedings of VaMoS 2010. In: International Workshop on Variability Modelling of Software-intensive Systems (2010)Google 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., Damiani, F.: Pure delta-oriented programming. In: 2010 Proceedings of FOSD, pp. 49–56. ACM (2010)Google Scholar
  21. 21.
    Strniša, R., Sewell, P., Parkinson, M.: The Java module system: core design and semantic definition. In: 2007 Proceedings of OOPSLA, pp. 499–514. ACM (2007)Google Scholar
  22. 22.
    Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe composition of product lines. In: Proceedings of GPCE 2007, pp. 95–104. ACM (2007)Google Scholar
  23. 23.
    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

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.University of TorinoTorinoItaly

Personalised recommendations