ABSTRACT
Delta-oriented programming (DOP) is a flexible approach for implementing software product lines (SPLs). DOP SPLs are implemented by a code base (a set of delta modules encapsulating changes to object-oriented programs) and a product line declaration (providing the connection of the delta modules with the product features). In this paper, we extend DOP by the capability to switch the implemented product configuration at runtime and present a formal foundation for dynamic DOP. A dynamic DOP SPL is a DOP SPL with a dynamic reconfiguration graph that specifies how to switch between different feature configurations. Dynamic DOP supports (unanticipated) software evolution such that at runtime, the product line declaration, the code base and the dynamic reconfiguration graph can be changed in any (unanticipated) way that preserves the currently running product. The type system of our dynamic DOP core calculus ensures that the dynamic reconfigurations lead to type safe products and do not cause runtime type errors.
- 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. Google ScholarDigital Library
- S. Apel, T. Leich, M. Rosenmüller, and G. Saake. FeatureC++: On the symbiosis of feature-oriented and aspect-oriented programming. In GPCE, pages 125--140, 2005. Google ScholarDigital Library
- I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An overview of CaesarJ. Transactions on Aspect-Oriented Software Development, 3880: 135--173, 2006. Google ScholarDigital Library
- D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, LNCS 3714, pages 7--20. Springer, 2005. Google ScholarDigital Library
- D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE Trans. Software Eng., 30(6): 355--371, 2004. Google ScholarDigital Library
- S. Cech Previtali and T. R. Gross. Aspect-based dynamic software updating: a model and its empirical evaluation. In AOSD, pages 105--116. ACM, 2011. Google ScholarDigital Library
- R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst., 13(4): 451--490, 1991. Google ScholarDigital Library
- F. Damiani, L. Padovani, and I. Schaefer. A Formal Foundation for Dynamic Delta-Oriented Software Product Lines. Technical Report 2/2012, Università di Torino, Dipartimento di Informatica, 2012. Url: http://www.di.unito.it/~damiani/papers/tr-2-2012.pdf.Google ScholarDigital Library
- F. Damiani and I. Schaefer. Dynamic delta-oriented programming. In DSPL (Proc. of SPLC, Vol. 2). ACM, 2011. doi: 10.1145/2019136.2019175. Google ScholarDigital Library
- E. Ernst. gbeta -- a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Department of Computer Science, University of Århus, Denmark, 1999. Url: http://www.daimi.au.dk/~eernst/gbeta/.Google Scholar
- S. Hallsteinsen, M. Hinchey, S. Park, and K. Schmid. Dynamic software product lines. IEEE Computer, 41: 93--95, 2008. Google ScholarDigital Library
- S. Herrmann. A precise model for contextual roles: The programming language ObjectTeams/Java. Applied Ontology, 2(2): 181--207, 2007. Google ScholarDigital Library
- R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-oriented programming. Journal of Object Technology, 7(3): 125--151, 2008.Google ScholarCross Ref
- A. Igarashi, B. Pierce, and P. Wadler. Featherweight Java: A minimal core calculus for Java and GJ. ACM TOPLAS, 23(3): 396--450, 2001. Google ScholarDigital Library
- E. B. Johnsen, M. Kyas, and I. C. Yu. Dynamic classes: Modular asynchronous evolution of distributed concurrent objects. In FM, LNCS 5850, pages 596--611. Springer, 2009. Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In ECOOP, LNCS 2072, pages 327--353. Springer, 2001. Google ScholarDigital Library
- C. Krueger. Eliminating the Adoption Barrier. IEEE Software, 19(4): 29--31, 2002. Google ScholarDigital Library
- R. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating Support for Features in Advanced Modularization Technologies. In ECOOP, LNCS 3586, pages 169--194. Springer, 2005. Google ScholarDigital Library
- M. Rosenmüller, N. Siegmund, S. Apel, and G. Saake. Flexible feature binding in software product lines. Autom. Softw. Eng., 18(2): 163--197, 2011. Google ScholarDigital Library
- I. Schaefer, L. Bettini, V. Bono, F. Damiani, and N. Tanzarella. Delta-oriented Programming of Software Product Lines. In SPLC, LNCS 6287, pages 77--91. Springer, 2010. Google ScholarDigital Library
- I. Schaefer, L. Bettini, and F. Damiani. Compositional Type-Checking for Delta-Oriented Programming. In AOSD. ACM, 2011. Google ScholarDigital Library
- I. Schaefer and F. Damiani. Pure Delta-oriented Programming. In FOSD. ACM, 2010. doi: 10.1145/1868688.1868696. Google ScholarDigital Library
- M. Torgersen. The Expression Problem Revisited. In ECOOP, LNCS 3086, pages 123--146. Springer, 2004.Google Scholar
Index Terms
- A formal foundation for dynamic delta-oriented software product lines
Recommendations
Dynamic delta-oriented programming
SPLC '11: Proceedings of the 15th International Software Product Line Conference, Volume 2Modern software systems should be designed to dynamically adapt to changing user requirements or resource constraints. Delta-oriented programming (DOP) is a compositional approach to flexibly implement software product lines. In DOP, a product line is ...
A formal foundation for dynamic delta-oriented software product lines
GPCE '12Delta-oriented programming (DOP) is a flexible approach for implementing software product lines (SPLs). DOP SPLs are implemented by a code base (a set of delta modules encapsulating changes to object-oriented programs) and a product line declaration (...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Comments