Delta-Oriented Programming of Software Product Lines

  • Ina Schaefer
  • Lorenzo Bettini
  • Viviana Bono
  • Ferruccio Damiani
  • Nico Tanzarella
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6287)


Feature-oriented programming (FOP) implements software product lines by composition of feature modules. It relies on the principles of stepwise development. Feature modules are intended to refer to exactly one product feature and can only extend existing implementations. To provide more flexibility for implementing software product lines, we propose delta-oriented programming (DOP) as a novel programming language approach. A product line is represented by a core module and a set of delta modules. The core module provides an implementation of a valid product that can be developed with well-established single application engineering techniques. Delta modules specify changes to be applied to the core module to implement further products by adding, modifying and removing code. Application conditions attached to delta modules allow handling combinations of features explicitly. A product implementation for a particular feature configuration is generated by applying incrementally all delta modules with valid application condition to the core module. In order to evaluate the potential of DOP, we compare it to FOP, both conceptually and empirically.


Feature Module Core Module Software Product Line Domain Feature Valid Feature 
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.
    Expression Problem Product Line, Webversion,
  2. 2.
    Apel, S., Kästner, C., Grösslinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Automated Software Engineering An International Journal (2010)Google Scholar
  3. 3.
    Apel, S., Kästner, C., Lengauer, C.: Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In: GPCE, pp. 101–112. ACM, New York (2008)CrossRefGoogle Scholar
  4. 4.
    Apel, S., Leich, T., Rosenmüller, M., Saake, G.: Featurec++: On the symbiosis of feature-oriented and aspect-oriented programming. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 125–140. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Apel, S., Lengauer, C.: Superimposition: A language-independent approach to software composition. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 20–35. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    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
  7. 7.
    Batory, D.: A Tutorial on Feature Oriented Programming and the AHEAD Tool Suite (ATS). In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 3–35. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Batory, D.: Using modern mathematics as an FOSD modeling language. In: GPCE, pp. 35–44. ACM, New York (2008)CrossRefGoogle Scholar
  9. 9.
    Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol. 1(4), 355–398 (1992)CrossRefGoogle Scholar
  10. 10.
    Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Eng. 30(6), 355–371 (2004)CrossRefGoogle Scholar
  11. 11.
    Bettini, L., Damiani, F., Schaefer, I.: Implementing Software Product Lines using Traits. In: SAC, OOPS Track, pp. 2096–2102. ACM, New York (2010)Google Scholar
  12. 12.
    Bracha, G.: Executable Grammars in Newspeak. ENTCS 193, 3–18 (2007)Google Scholar
  13. 13.
    Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman, Amsterdam (2001)Google Scholar
  14. 14.
    Delaware, B., Cook, W., Batory, D.: A Machine-Checked Model of Safe Composition. In: FOAL, pp. 31–35. ACM, New York (2009)CrossRefGoogle Scholar
  15. 15.
    Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R., Black, A.: Traits: A mechanism for fine-grained reuse. ACM TOPLAS 28(2), 331–388 (2006)CrossRefGoogle Scholar
  16. 16.
    Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Peterson, A.S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, Carnegie Mellon Software Engineering Institute (1990)Google Scholar
  17. 17.
    Kästner, C., Apel, S.: Type-Checking Software Product Lines - A Formal Approach. In: ASE, pp. 258–267. IEEE, Los Alamitos (2008)Google Scholar
  18. 18.
    Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features Using AspectJ. In: SPLC, pp. 223–232. IEEE, Los Alamitos (2007)Google Scholar
  19. 19.
    Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: ICSE, pp. 311–320. ACM, New York (2008)CrossRefGoogle Scholar
  20. 20.
    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: SPLC. IEEE, Los Alamitos (2009)Google Scholar
  21. 21.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Kuhlemann, M., Batory, D., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186. ACM, New York (2009)CrossRefGoogle Scholar
  23. 23.
    Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: ICSE, pp. 112–121. ACM, New York (2006)Google Scholar
  24. 24.
    Lopez-Herrejon, R., Batory, D.: A standard problem for evaluating product-line methodologies. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  25. 25.
    Lopez-Herrejon, R., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)Google Scholar
  26. 26.
    Loughran, N., Rashid, A.: Framed aspects: Supporting variability and configurability for aop. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 127–140. Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, pp. 127–136. ACM, New York (2004)Google Scholar
  28. 28.
    Odersky, M.: The Scala Language Specification, version 2.4. Technical report, Programming Methods Laboratory, EPFL (2007)Google Scholar
  29. 29.
    Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering - Foundations, Principles, and Techniques. Springer, Heidelberg (2005)zbMATHGoogle Scholar
  30. 30.
    Prehofer, C.: Feature-oriented programming: A fresh look at objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  31. 31.
    Schaefer, I.: Variability Modelling for Model-Driven Development of Software Product Lines. In: Intl. Workshop on Variability Modelling of Software-Intensive Systems (2010)Google Scholar
  32. 32.
    Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A Model-Based Framework for Automated Product Derivation. In: Proc. of MAPLE (2009)Google Scholar
  33. 33.
    Smaragdakis, Y., Batory, D.: Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol. 11(2), 215–255 (2002)CrossRefGoogle Scholar
  34. 34.
    Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.M.: N degrees of separation: multi-dimensional separation of concerns. In: ICSE, pp. 107–119 (1999)Google Scholar
  35. 35.
    Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe Composition of Product Lines. In: GPCE, pp. 95–104. ACM, New York (2007)CrossRefGoogle Scholar
  36. 36.
    Zhang, H., Jarzabek, S.: An XVCL-based Approach to Software Product Line Development. In: Software Engineering and Knowledge Engineering, pp. 267–275 (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Ina Schaefer
    • 1
  • Lorenzo Bettini
    • 2
  • Viviana Bono
    • 2
  • Ferruccio Damiani
    • 2
  • Nico Tanzarella
    • 2
  1. 1.Chalmers University of TechnologyGothenburgSweden
  2. 2.Dipartimento di InformaticaUniversità di TorinoTorinoItaly

Personalised recommendations