skip to main content
10.1145/1868688.1868696acmotherconferencesArticle/Chapter ViewAbstractPublication PagesfosdConference Proceedingsconference-collections
research-article

Pure delta-oriented programming

Published: 10 October 2010 Publication History

Abstract

Delta-oriented programming (DOP) is a modular approach for implementing software product lines. Delta modules generalize feature modules by allowing removal of functionality. However, DOP requires to select one particular product as core product from which all products are generated. In this paper, we propose pure delta-oriented programming (Pure DOP) that is a conceptual simplification of traditional DOP. In Pure DOP, the requirement of one designated core product is dropped. Instead, program generation only relies on delta modules comprising program modifications such that Pure DOP is more flexible than traditional DOP. Furthermore, we show that Pure DOP is a true generalization of FOP and supports proactive, reactive and extractive product line engineering.

References

[1]
V. Alves, P. Matos, L. Cole, A. Vasconcelos, P. Borba, and G. Ramalho. Extracting and evolving code in product lines with aspect-oriented programming. In Transactions on aspect-oriented software development IV, pages 117--142. Springer-Verlag, 2007.
[2]
S. Apel, C. Kästner, and C. Lengauer. Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In GPCE, pages 101--112. ACM, 2008.
[3]
S. Apel, T. Leich, and G. Saake. Aspectual feature modules. IEEE Trans. Software Eng., 34(2):162--180, 2008.
[4]
P. G. Bassett. Framing software reuse: lessons from the real world. Prentice-Hall, Inc., 1997.
[5]
D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, volume 3714 of LNCS, pages 7--20. Springer, 2005.
[6]
D. Batory. Using modern mathematics as an FOSD modeling language. In GPCE, pages 35--44. ACM, 2008.
[7]
D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. Software Eng., 30(6):355--371, 2004.
[8]
L. Bettini, F. Damiani, and I. Schaefer. Implementing Software Product Lines using Traits. In SAC, OOPS Track, pages 2096--2102. ACM, 2010.
[9]
L. Bettini, F. Damiani, I. Schaefer, and F. Strocco. A Prototypical Java-like Language with Records and Traits. In PPPJ. ACM, 2010.
[10]
G. Bracha. Executable Grammars in Newspeak. ENTCS, 193:3--18, 2007.
[11]
D. Clarke, M. Helvensteijn, and I. Schaefer. Abstract delta modeling. In Proc. of GPCE, 2010. (to appear).
[12]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison Wesley Longman, 2001.
[13]
B. Delaware, W. Cook, and D. Batory. A Machine-Checked Model of Safe Composition. In FOAL, pages 31--35. ACM, 2009.
[14]
S. Ducasse, O. Nierstrasz, N. Schärli, R. Wuyts, and A. Black. Traits: A mechanism for fine-grained reuse. ACM TOPLAS, 28(2):331--388, 2006.
[15]
A. Igarashi, B. Pierce, and P. Wadler. Featherweight Java: A minimal core calculus for Java and GJ. ACM TOPLAS, 23(3):396--450, 2001.
[16]
K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, Carnegie Mellon Software Engineering Institute, 1990.
[17]
C. Kästner and S. Apel. Type-Checking Software Product Lines - A Formal Approach. In ASE, pages 258--267. IEEE, 2008.
[18]
C. Kästner, S. Apel, and D. Batory. A Case Study Implementing Features Using AspectJ. In SPLC, pages 223--232. IEEE, 2007.
[19]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In ICSE, pages 311--320. ACM, 2008.
[20]
C. Kästner, S. Apel, S. S. ur Rahman, M. Rosenmüller, D. Batory, and G. Saake. On the Impact of the Optional Feature Problem: Analysis and Case Studies. In SPLC. IEEE, 2009.
[21]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In ECOOP, volume 2072 of LNCS, pages 327--353. Springer, 2001.
[22]
C. Krueger. Eliminating the Adoption Barrier. IEEE Software, 19(4):29--31, 2002.
[23]
R. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating Support for Features in Advanced Modularization Technologies. In ECOOP, volume 3586 of LNCS, pages 169--194. Springer, 2005.
[24]
N. Loughran and A. Rashid. Framed aspects: Supporting variability and configurability for aop. In ICSR, volume 3107 of LNCS, pages 127--140. Springer, 2004.
[25]
M. Mezini and K. Ostermann. Variability management with feature-oriented programming and aspects. In SIGSOFT FSE, pages 127--136. ACM, 2004.
[26]
M. Odersky. The Scala Language Specification, version 2.4. Technical report, Programming Methods Laboratory, EPFL, 2007.
[27]
K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering - Foundations, Principles, and Techniques. Springer, 2005.
[28]
I. Schaefer. Variability Modelling for Model-Driven Development of Software Product Lines. In Intl. Workshop on Variability Modelling of Software-intensive Systems, 2010.
[29]
I. Schaefer, L. Bettini, V. Bono, F. Damiani, and N. Tanzarella. Delta-oriented Programming of Software Product Lines. In SPLC, volume 6287 of LNCS. Springer, 2010.
[30]
I. Schaefer, A. Worret, and A. Poetzsch-Heffter. A Model-Based Framework for Automated Product Derivation. In Proc. of MAPLE, 2009.
[31]
Y. Smaragdakis and D. Batory. Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol., 11(2):215--255, 2002.
[32]
R. Strniša, P. Sewell, and M. Parkinson. The Java module system: core design and semantic definition. In OOPSLA, pages 499--514. ACM, 2007.
[33]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N degrees of separation: multi-dimensional separation of concerns. In ICSE, pages 107--119, 1999.
[34]
S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In GPCE, pages 95--104. ACM, 2007.
[35]
M. Torgersen. The Expression Problem Revisited. In ECOOP, volume 3086 of LNCS, pages 123--146. Springer, 2004.
[36]
H. Zhang and S. Jarzabek. An XVCL-based Approach to Software Product Line Development. In Software Engineering and Knowledge Engineering, pages 267--275, 2003.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FOSD '10: Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
October 2010
94 pages
ISBN:9781450302081
DOI:10.1145/1868688
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Metop GmbH

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. delta-oriented programming
  2. feature-oriented programming
  3. program generation
  4. software product line

Qualifiers

  • Research-article

Funding Sources

Conference

FOSD '10
Sponsor:

Acceptance Rates

FOSD '10 Paper Acceptance Rate 11 of 20 submissions, 55%;
Overall Acceptance Rate 17 of 28 submissions, 61%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)2
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Migrating Individual Applications into Software Product Lines Using the Mobioos Forge Platform2023 30th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC60848.2023.00060(483-492)Online publication date: 4-Dec-2023
  • (2023)Variability modulesJournal of Systems and Software10.1016/j.jss.2022.111510195:COnline publication date: 1-Jan-2023
  • (2023)Compilation Semantics for a Programming Language with VersionsProgramming Languages and Systems10.1007/978-981-99-8311-7_1(3-23)Online publication date: 26-Nov-2023
  • (2022)Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment ModelAlgorithms10.3390/a1510038215:10(382)Online publication date: 19-Oct-2022
  • (2021)FeatureVistaProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471154(196-201)Online publication date: 6-Sep-2021
  • (2021)Variability modules for Java-like languagesProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471143(1-12)Online publication date: 6-Sep-2021
  • (2020)On Slicing Software Product Line SignaturesLeveraging Applications of Formal Methods, Verification and Validation: Verification Principles10.1007/978-3-030-61362-4_5(81-102)Online publication date: 29-Oct-2020
  • (2019)Automatic refactoring of delta-oriented SPLs to remove-free form and replace-free formInternational Journal on Software Tools for Technology Transfer10.1007/s10009-019-00534-221:6(691-707)Online publication date: 23-Sep-2019
  • (2018)CIAhelperProceedings of the 22nd International Systems and Software Product Line Conference - Volume 110.1145/3233027.3233036(31-42)Online publication date: 10-Sep-2018
  • (2018)A core calculus for dynamic delta-oriented programmingActa Informatica10.1007/s00236-017-0293-655:4(269-307)Online publication date: 1-Jun-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media