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
Variability management with feature models
Science of Computer Programming - Special issue: Software variability management
XVCL: a mechanism for handling variants in software product lines
Science of Computer Programming - Special issue: Software variability management
A Case Study Implementing Features Using AspectJ
SPLC '07 Proceedings of the 11th International Software Product Line Conference
On the Design and Development of Program Families
IEEE Transactions on Software Engineering
A precise model for contextual roles: The programming language ObjectTeams/Java
Applied Ontology - Roles, an interdisciplinary perspective
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
FeatureIDE: A tool framework for feature-oriented software development
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Agile Web Development with Rails, Third Edition
Agile Web Development with Rails, Third Edition
Feature-oriented programming with Ruby
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Multi-DSL Applications with Ruby
IEEE Software
Tag and prune: a pragmatic approach to software product line implementation
Proceedings of the IEEE/ACM international conference on Automated software engineering
Dynamically adaptable software product lines using Ruby metaprogramming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Access control in feature-oriented programming
Science of Computer Programming
Evaluating support for features in advanced modularization technologies
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
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
Hi-index | 0.00 |
To enhance software variability, feature-oriented programming approaches can be used to identify, express, and compose programs with different behavior. One implementation for feature-oriented programming is rbFeatures. This Ruby-based implementation allows to define features as first-class entities, uses semantic annotations to indicate where coarse or fine-grained feature-specific source code is expressed, and allows runtime modification of the program behavior. In this paper, we add two more capabilities to rbFeatures. First, the Variant Generator uses the annotations in a preprocessor style to generate program variants with a fixed behavior. Both Ruby and non-Ruby files are processed, and all source code that does not belong to the current feature configuration is pruned. Second, the Feature Aggregator helps to better edit features that are scattered over different artifacts of a program. It extracts all feature-specific code from the codebase, adds metadata, and allows the generated file to be edited by developers and the changes to be merged back to the codebase. We explain the concept and implementation of both tools, and illustrate the applicability with the Redmine project management application.