Skip to main content

Delta-Oriented Programming of Software Product Lines

  • Conference paper
Software Product Lines: Going Beyond (SPLC 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6287))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Expression Problem Product Line, Webversion, http://www.cs.utexas.edu/users/schwartz/ATS/EPL/

  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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  8. Batory, D.: Using modern mathematics as an FOSD modeling language. In: GPCE, pp. 35–44. ACM, New York (2008)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  10. Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Eng. 30(6), 355–371 (2004)

    Article  Google Scholar 

  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. Bracha, G.: Executable Grammars in Newspeak. ENTCS 193, 3–18 (2007)

    Google Scholar 

  13. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman, Amsterdam (2001)

    Google Scholar 

  14. Delaware, B., Cook, W., Batory, D.: A Machine-Checked Model of Safe Composition. In: FOAL, pp. 31–35. ACM, New York (2009)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. 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. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: ICSE, pp. 311–320. ACM, New York (2008)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  22. Kuhlemann, M., Batory, D., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186. ACM, New York (2009)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. 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. 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. Odersky, M.: The Scala Language Specification, version 2.4. Technical report, Programming Methods Laboratory, EPFL (2007)

    Google Scholar 

  29. Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering - Foundations, Principles, and Techniques. Springer, Heidelberg (2005)

    MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A Model-Based Framework for Automated Product Derivation. In: Proc. of MAPLE (2009)

    Google Scholar 

  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)

    Article  Google Scholar 

  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. Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe Composition of Product Lines. In: GPCE, pp. 95–104. ACM, New York (2007)

    Chapter  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N. (2010). Delta-Oriented Programming of Software Product Lines. In: Bosch, J., Lee, J. (eds) Software Product Lines: Going Beyond. SPLC 2010. Lecture Notes in Computer Science, vol 6287. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15579-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15579-6_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15578-9

  • Online ISBN: 978-3-642-15579-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics