Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Inside the C++ object model
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Implementing product line variabilities
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Comparing frameworks and layered refinement
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Implementing Product-Line Features with Component Reuse
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
On the Notion of Variability in Software Product Lines
WICSA '01 Proceedings of the Working IEEE/IFIP Conference on Software Architecture
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Virtual machine support for dynamic join points
Proceedings of the 3rd international conference on Aspect-oriented software development
IEEE Transactions on Software Engineering
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
SPLC '06 Proceedings of the 10th International on Software Product Line Conference
Proceedings of the 5th international conference on Generative programming and component engineering
Object-based and class-based composition of transitive mixins
Information and Software Technology
Controlled, systematic, and efficient code replacement for running java programs
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
Edicts: implementing features with flexible binding times
Proceedings of the 7th international conference on Aspect-oriented software development
Dynamic Software Product Lines
Computer
IEEE Transactions on Software Engineering
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
Program refactoring using functional aspects
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
HotWave: creating adaptive tools with dynamic aspect-oriented programming in Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Tailor-made data management for embedded systems: A case study on Berkeley DB
Data & Knowledge Engineering
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Feature cohesion in software product lines: an exploratory study
Proceedings of the 33rd International Conference on Software Engineering
Transactions on Aspect-Oriented Software Development I
Dynamic delta-oriented programming
Proceedings of the 15th International Software Product Line Conference, Volume 2
Tailoring dynamic software product lines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
A formal foundation for dynamic delta-oriented software product lines
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Supporting multiple feature binding strategies in NX
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Using document-oriented GUIs in dynamic software product lines
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
A software product line (SPL) is a family of programs that share assets from a common code base. The programs of an SPL can be distinguished in terms of features, which represent units of program functionality that satisfy stakeholders' requirements. The features of an SPL can be bound either statically at program compile time or dynamically at run time. Both binding times are used in SPL development and have different advantages. For example, dynamic binding provides high flexibility whereas static binding supports fine-grained customizability without any impact on performance (e.g., for use on embedded systems). However, contemporary techniques for implementing SPLs force a programmer to choose the binding time already when designing an SPL and to mix different implementation techniques when multiple binding times are needed. We present an approach that integrates static and dynamic feature binding seamlessly. It allows a programmer to implement an SPL once and to decide per feature at deployment time whether it should be bound statically or dynamically. Dynamic binding usually introduces an overhead regarding resource consumption and performance. We reduce this overhead by statically merging features that are used together into dynamic binding units. A program can be configured at run time by composing binding units on demand. We use feature models to ensure that only valid feature combinations can be selected at compile and at run time. We provide a compiler and evaluate our approach on the basis of two non-trivial SPLs.