skip to main content
10.1145/1960275.1960283acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Compositional type-checking for delta-oriented programming

Published: 21 March 2011 Publication History

Abstract

Delta-oriented programming is a compositional approach to flexibly implementing software product lines. A product line is represented by a code base and a product line declaration. The code base consists of a set of delta modules specifying modifications to object-oriented programs. The product line declaration provides the connection of the delta modules with the product features. This separation increases the reusability of delta modules. In this paper, we provide a foundation for compositional type checking of delta-oriented product lines of Java programs by presenting a minimal core calculus for delta-oriented programming. The calculus is equipped with a constraint-based type system that allows analyzing each delta module in isolation, such that that also the results of the analysis can be reused. By combining the analysis results for the delta modules with the product line declaration it is possible to establish that all the products of the product line are well-typed according to the Java type system.

References

[1]
D. Ancona, F. Damiani, S. Drossopoulou, and E. Zucca. Polymorphic Bytecode: Compositional Compilation for Java-like Languages. In Proc. of POPL, pages 26--37. ACM, 2005.
[2]
S. Apel, C. Kästner, A. Grösslinger, and C. Lengauer. Type safety for feature-oriented product lines. Automated Software Engineering, 17(3):251--300, 2010.
[3]
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.
[4]
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An overview of CaesarJ. Transactions on Aspect-Oriented Software Development, 3880:135--173, 2006.
[5]
D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, volume 3714 of LNCS, pages 7--20. Springer, 2005.
[6]
D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. Software Eng., 30(6):355--371, 2004.
[7]
L. Bettini, F. Damiani, and I. Schaefer. IFJ: a Minimal Imperative Variant of FJ. Technical Report 133/2010, Dipartimento di Informatica, Università di Torino, 2010. Available from http://www.di.unito.it/~damiani/papers/tr-133-2010.pdf.
[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, pages 129--138. ACM, 2010.
[10]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison Wesley Longman, 2001.
[11]
C. Clifton and G. T. Leavens. MiniMAO1: Investigating the Semantics of Proceed. SCP, 63(3):321--374, Dec. 2006.
[12]
B. Delaware, W. Cook, and D. Batory. A Machine-Checked Model of Safe Composition. In FOAL, pages 31--35. ACM, 2009.
[13]
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.
[14]
B. D. Fraine, E. Ernst, and M. Südholt. Essential AOP: The A Calculus. In ECOOP, volume 6183 of LNCS, pages 101--125. Springer, 2010.
[15]
B. D. Fraine, M. Südholt, and V. Jonckers. StrongAspectJ: flexible and safe pointcut/advice bindings. In AOSD, pages 60--71. ACM, 2008.
[16]
A. Igarashi, B. Pierce, and P. Wadler. Featherweight Java: A minimal core calculus for Java and GJ. ACM TOPLAS, 23(3):396--450, 2001.
[17]
E. B. Johnsen, M. Kyas, and I. C. Yu. Dynamic classes: Modular asynchronous evolution of distributed concurrent objects. In FM, volume 5850 of LNCS, pages 596--611. Springer, 2009.
[18]
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.
[19]
C. Kästner, S. Apel, and D. Batory. A Case Study Implementing Features Using AspectJ. In SPLC, pages 223--232. IEEE, 2007.
[20]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In ICSE, pages 311--320. ACM, 2008.
[21]
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, pages 181--190. ACM, 2009.
[22]
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.
[23]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP, volume 1241 of LNCS, pages 220--242. Springer, 1997.
[24]
C. Krueger. Eliminating the Adoption Barrier. IEEE Software, 19(4):29--31, 2002.
[25]
M. Kuhlemann, D. Batory, and C. Kästner. Safe composition of non-monotonic features. In GPCE, pages 177--186. ACM, 2009.
[26]
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.
[27]
K. Ostermann. Dynamically composable collaborations with delegation layers. In ECOOP, volume 2374 of LNCS, pages 89--110. Springer, 2002.
[28]
M. Rosenmüller, N. Siegmund, G. Saake, and S. Apel. Code generation to support static and dynamic composition of software product lines. In GPCE, pages 3--12. ACM, 2008.
[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, pages 77--91. Springer, 2010.
[30]
I. Schaefer, L. Bettini, and F. Damiani. Compositional Type-Checking for Delta-Oriented Programming (version with Appendix). Technical Report 134/2010, Dipartimento di Informatica, Università di Torino, 2010. Available from http://www.di.unito.it/~damiani/papers/tr-134-2010.pdf.
[31]
I. Schaefer and F. Damiani. Pure Delta-oriented Programming. In FOSD 2010, 2010. Available from http://www.fosd.de/2010.
[32]
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.
[33]
R. Strniša, P. Sewell, and M. Parkinson. The Java module system: core design and semantic definition. In OOPSLA, pages 499--514. ACM, 2007.
[34]
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.
[35]
S. Thaker, D. Batory, D. Kitchin, and W. Cook. Safe Composition of Product Lines. In GPCE, pages 95--104. ACM, 2007.
[36]
M. Torgersen. The Expression Problem Revisited. In ECOOP, volume 3086 of LNCS, pages 123--146. Springer, 2004.

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)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
  • (2021)From pairwise to family-based generic analysis of delta-oriented model-based SPLsProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471150(13-24)Online publication date: 6-Sep-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development
March 2011
326 pages
ISBN:9781450306058
DOI:10.1145/1960275
  • General Chair:
  • Paulo Borba,
  • Program Chair:
  • Shigeru Chiba
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

In-Cooperation

  • Centro de Informatica - UFPE: Centro de Informatica - UFPE
  • CAPES: Coordençãao de Aperfeiçoamento de Pessoal de Nível Superior
  • CNPq: Conselho Nacional de Desenvolvimento Cientifico e Tecn
  • FINEP: Financiadora de Estudos e Projetos
  • PUC-Rio
  • FACEPE: Fundacao de Amparo a Ciencia e Tecnologia do Estado de Pernambuco

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. java
  2. software product line
  3. type system

Qualifiers

  • Research-article

Conference

AOSD'11

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
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)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
  • (2021)From pairwise to family-based generic analysis of delta-oriented model-based SPLsProceedings of the 25th ACM International Systems and Software Product Line Conference - Volume A10.1145/3461001.3471150(13-24)Online publication date: 6-Sep-2021
  • (2021)Taming the Merge OperatorJournal of Functional Programming10.1017/S095679682100018631Online publication date: 2-Nov-2021
  • (2021)Evaluating T-wise testing strategies in a community-wide dataset of configurable software systemsJournal of Systems and Software10.1016/j.jss.2021.110990179(110990)Online publication date: Sep-2021
  • (2019)Feature-oriented contract compositionJournal of Systems and Software10.1016/j.jss.2019.01.044152:C(83-107)Online publication date: 1-Jun-2019
  • (2017)Evaluating delta-oriented programming for evolving software product linesProceedings of the 2nd International Workshop on Variability and Complexity in Software Design10.5555/3106050.3106058(27-33)Online publication date: 20-May-2017
  • (2017)Evaluating Delta-Oriented Programming for Evolving Software Product Lines2017 IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design (VACE)10.1109/VACE.2017.7(27-33)Online publication date: May-2017
  • (2017)A novel model-based testing approach for software product linesSoftware and Systems Modeling (SoSyM)10.1007/s10270-016-0516-216:4(1223-1251)Online publication date: 1-Oct-2017
  • (2016)Metrics for feature-oriented programmingProceedings of the 7th International Workshop on Emerging Trends in Software Metrics10.1145/2897695.2897701(36-42)Online publication date: 14-May-2016
  • 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