Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 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
From custom applications to domain-specific frameworks
Communications of the ACM
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)
Footprint and feature management using aspect-oriented programming techniques
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Feature-Oriented Project Line Engineering
IEEE Software
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Object Teams: Improving Modularity for Crosscutting Collaborations
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
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
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
SPLC '06 Proceedings of the 10th International on Software Product Line Conference
Feature-oriented variability management in product line engineering
Communications of the ACM - Software product line
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
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
FAME-DBMS: tailor-made data management solutions for embedded systems
SETMDM '08 Proceedings of the 2008 EDBT workshop on Software engineering for tailor-made data management
IEEE Transactions on Software Engineering
Streamlining feature-oriented designs
SC'07 Proceedings of the 6th international conference on Software composition
Efficient layer activation for switching context-dependent behavior
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Feature models, grammars, and propositional formulas
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Transactions on Aspect-Oriented Software Development I
Using software product lines for runtime interoperability
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Feature-oriented runtime adaptation
Proceedings of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime
Tailor-made data management for embedded systems: A case study on Berkeley DB
Data & Knowledge Engineering
Type safety for feature-oriented product lines
Automated Software Engineering
Using reified contextual information for safe run-time adaptation of software product lines
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Compositional type-checking for delta-oriented programming
Proceedings of the tenth international conference on Aspect-oriented software development
Flexible feature binding in software product lines
Automated Software Engineering
rbFeatures: Feature-oriented programming with Ruby
Science of Computer Programming
Object-oriented design in feature-oriented programming
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Supporting multiple feature binding strategies in NX
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Autogenerator: Generation and execution of programming code on demand
Expert Systems with Applications: An International Journal
Using document-oriented GUIs in dynamic software product lines
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Staged configuration of dynamic software product lines with complex binding time constraints
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Structural feature interaction patterns: case studies and guidelines
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.00 |
Software product lines (SPLs) are used to create tailor-made software products by managing and composing reusable assets. Generating a software product from the assets of an SPL is possible statically before runtime or dynamically at load-time or runtime. Both approaches have benefits and drawbacks with respect to composition flexibility, performance, and resource consumption. Which type of composition is preferable should be decided by taking the application scenario into account. Current tools and languages, however, force a programmer to decide between static and dynamic composition during development. In this paper, we present an approach that employs code generation to support static and dynamic composition of features of a single code base. We offer an implementation on top of FeatureC++, an extension of the C++ programming language that supports software composition based on features. To simplify dynamic composition and to avoid creation of invalid products we furthermore provide means to (1) validate the correctness of a composition at runtime, (2) automatically instantiate SPLs in case of stand-alone applications, and (3) automatically apply interaction code of crosscutting concerns.