ABSTRACT
Modern 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 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 and describes how the product for a particular feature configuration is generated. DOP has so far only been used for static variability. In this paper, we present dynamic DOP, an extension of DOP that supports changing the feature configuration of a product at runtime. A dynamic DOP product line is a standard DOP product line with a reconfiguration automaton that specifies how to switch between different feature configurations. The type system of our dynamic DOP language ensures that any reconfiguration leads to a type safe product. Dynamic DOP is an approach for realizing dynamic product lines which also supports (unanticipated) software evolution.
- 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, volume 3714 of LNCS, 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
- L. Bettini, V. Bono, and E. Turin. I-Java: An Extension of Java with Incomplete Objects and Object Composition. In Software Composition, pages 27--44, 2009. Google ScholarDigital Library
- D. Clarke, M. Helvensteijn, and I. Schaefer. Abstract delta modeling. In GPCE. ACM Press, 2010. 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.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 Transactions on Programming Languages and Systems, 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, volume 5850 of LNCS, pages 596--611. Springer, 2009. Google ScholarDigital Library
- 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.Google Scholar
- C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In ICSE, pages 311--320. ACM, 2008. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- C. Krueger. Eliminating the Adoption Barrier. IEEE Software, 19(4):29--31, 2002. Google ScholarDigital Library
- K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering - Foundations, Principles, and Techniques. 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, volume 6287 of LNCS, pages 77--91. Springer, 2010. Google ScholarDigital Library
- I. Schaefer, L. Bettini, and F. Damiani. Compositional Type-Checking for Delta-Oriented Programming. In AOSD 2011. ACM, 2011. Google ScholarDigital Library
- I. Schaefer and F. Damiani. Pure Delta-oriented Programming. In FOSD 2010, 2010. Available from http://www.fosd.de/2010. Google ScholarDigital Library
- J. White, B. Dougherty, D. C. Schmidt, and D. Benavides. Automated reasoning for multi-step feature model configuration problems. In SPLC, pages 11--20, 2009. Google ScholarDigital Library
Index Terms
- Dynamic delta-oriented programming
Recommendations
Pure delta-oriented programming
FOSD '10: Proceedings of the 2nd International Workshop on Feature-Oriented Software DevelopmentDelta-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 ...
A formal foundation for dynamic delta-oriented software product lines
GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component EngineeringDelta-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 (...
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 (...
Comments