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.
Keywords
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Expression Problem Product Line, Webversion, http://www.cs.utexas.edu/users/schwartz/ATS/EPL/
Apel, S., Kästner, C., Grösslinger, A., Lengauer, C.: Type safety for feature-oriented product lines. Automated Software Engineering An International Journal (2010)
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)
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)
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)
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)
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)
Batory, D.: Using modern mathematics as an FOSD modeling language. In: GPCE, pp. 35–44. ACM, New York (2008)
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)
Batory, D., Sarvela, J., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Software Eng. 30(6), 355–371 (2004)
Bettini, L., Damiani, F., Schaefer, I.: Implementing Software Product Lines using Traits. In: SAC, OOPS Track, pp. 2096–2102. ACM, New York (2010)
Bracha, G.: Executable Grammars in Newspeak. ENTCS 193, 3–18 (2007)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison Wesley Longman, Amsterdam (2001)
Delaware, B., Cook, W., Batory, D.: A Machine-Checked Model of Safe Composition. In: FOAL, pp. 31–35. ACM, New York (2009)
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)
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)
Kästner, C., Apel, S.: Type-Checking Software Product Lines - A Formal Approach. In: ASE, pp. 258–267. IEEE, Los Alamitos (2008)
Kästner, C., Apel, S., Batory, D.: A Case Study Implementing Features Using AspectJ. In: SPLC, pp. 223–232. IEEE, Los Alamitos (2007)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: ICSE, pp. 311–320. ACM, New York (2008)
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)
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)
Kuhlemann, M., Batory, D., Kästner, C.: Safe composition of non-monotonic features. In: GPCE, pp. 177–186. ACM, New York (2009)
Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: ICSE, pp. 112–121. ACM, New York (2006)
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)
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)
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)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, pp. 127–136. ACM, New York (2004)
Odersky, M.: The Scala Language Specification, version 2.4. Technical report, Programming Methods Laboratory, EPFL (2007)
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering - Foundations, Principles, and Techniques. Springer, Heidelberg (2005)
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)
Schaefer, I.: Variability Modelling for Model-Driven Development of Software Product Lines. In: Intl. Workshop on Variability Modelling of Software-Intensive Systems (2010)
Schaefer, I., Worret, A., Poetzsch-Heffter, A.: A Model-Based Framework for Automated Product Derivation. In: Proc. of MAPLE (2009)
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)
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)
Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe Composition of Product Lines. In: GPCE, pp. 95–104. ACM, New York (2007)
Zhang, H., Jarzabek, S.: An XVCL-based Approach to Software Product Line Development. In: Software Engineering and Knowledge Engineering, pp. 267–275 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)