Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Feature-Oriented Programming and the AHEAD Tool Suite
Proceedings of the 26th International Conference on Software Engineering
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
The JastAdd system — modular extensible compiler construction
Science of Computer Programming
Dynamic Software Product Lines
Computer
Groovy AOP: a dynamic AOP system for a JVM-based language
Proceedings of the 2008 AOSD workshop on Software engineering properties of languages and aspect technologies
Feature-Oriented Analysis and Specification of Dynamic Product Reconfiguration
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Code generation to support static and dynamic composition of software product lines
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Towards Unanticipated Runtime Adaptation of Java Applications
APSEC '08 Proceedings of the 2008 15th Asia-Pacific Software Engineering Conference
Towards a dynamic-update-enabled JVM
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Hi-index | 0.06 |
Software product lines (SPLs) is a paradigm to implement software products based on features. Contemporary SPL implementation techniques provide support for compile-time composition of features. Many approaches have been suggested for run-time adaptation of product lines which do not consider safe composition properties. This paper presents FeatureJ which enables safe compile-time and run-time composition of multiple product lines. We identify four compilation techniques necessary to achieve safe run-time adaptation of product lines in FeatureJ: (a) type checking of feature modules, (b) availability of contextual information at runtime, (c) resolving class-loading issues for multiple updated variants, and (d) an application container for executing and updating multiple variants. Accordingly, we show how an existing approach can be integrated with FeatureJ to support safe run-time adaptation.