Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Standard Problem for Evaluating Product-Line Methodologies
GCSE '01 Proceedings of the Third International Conference on Generative and Component-Based Software Engineering
Proceedings of the 25th International Conference on Software Engineering
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Chapter I: Notes on structured programming
Structured programming
Supporting Runtime System Adaptation through Product Line Engineering and Plug-in Techniques
ICCBSS '08 Proceedings of the Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008)
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
Runtime software adaptation: framework, approaches, and styles
Companion of the 30th international conference on Software engineering
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
Feature-oriented runtime adaptation
Proceedings of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime
Programming Ruby 1.9: The Pragmatic Programmers' Guide
Programming Ruby 1.9: The Pragmatic Programmers' Guide
Feature-oriented programming with Ruby
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
Context awareness for dynamic service-oriented product lines
Proceedings of the 13th International Software Product Line Conference
Multi-DSL Applications with Ruby
IEEE Software
Supporting program variant generation and feature files in rbFeatures
Proceedings of the 15th International Software Product Line Conference, Volume 2
rbFeatures: Feature-oriented programming with Ruby
Science of Computer Programming
Hi-index | 0.00 |
Software product lines (SPL) is a paradigm to structure software development assets in a common and reusable form. Out of this common asset base - which includes the application's source code, documentation, and configuration -- concrete product variants can be created. The variants are differing in terms of the features, which are basically an increment in functionality important for a stakeholder. Feature-oriented programming (FOP) provides the capability to compose those different variants. In earlier work we presented rbFeatures, a FOP implementation in Ruby. With rbFeatures, features become are first-class entities of the language that facilitate runtime changes of the program. This paper presents an extension to rbFeatures that implements product lines and their variants as first-class entities too. The entities allow powerful runtime-adaptation and configuration, like to add new features or constraints to the product line and the instantiation of several variants with different feature configurations. The particular contributions are to show how Ruby's metaprogramming capabilities are used to design first-class entities and an explanation of the usage of our approach with a common case study.