Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2019136.2019145acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Supporting program variant generation and feature files in rbFeatures

Published: 21 August 2011 Publication History

Abstract

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.

References

[1]
S. Apel. The Role of Features and Aspects in Software Development. Ph.D. thesis, Otto-von-Guericke-Universität Magdeburg, Germany, 2007.
[2]
S. Apel, C. Kästner, and C. Lengauer. FeatureHouse: Language-independent, Automated Software Composition. In Proceedings of the 31st International Conference on Software Engineering (ICSE), pages 221--231, Washington, 2009. IEEE Computer Society.
[3]
S. Apel, S. Kolesnikov, J. Liebig, C. Kästner, M. Kuhlemann, and T. Leich. Access Control in Feature-Oriented Programming. Science of Computer Programming, page to appear, 2011.
[4]
S. Apel, T. Leich, M. Rosenmüller, and G. Saake. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In R. Glück and M. Lowry, editors, 4th International Conference on Generative Programming and Components Engineering (GPCE), volume 3676 of Lecture Notes in Computer Science, pages 125--140, Berlin, Heidelberg, Germany, 2005. Springer-Verlag.
[5]
D. Batory. Feature-Oriented Programming and the AHEAD Tool Suite. In Proceedings of the 26th International Conference on Software Engineering (ICSE), pages 702--703, Washington, 2004. IEEE Computer Society.
[6]
A. Bergel, S. Ducasse, O. Nierstrasz, and R. Wuyts. Classboxes: Controlling Visibility of Class Extensions. Computer Languages, Systems & Structures, 31(3):pp. 107--126, 2005.
[7]
D. Beuche, H. Papajewski, and W. Schröder-Preikschat. Variability Management with Feature Models. Science of Computer Programming, 53(3):pp. 333--352, 2004.
[8]
Q. Boucher, A. Classen, P. Faber, and P. Heymans. Introducing TVL, a Text-based Feature Modelling Language. In D. Benavides, D. Batory, and P. Grünbacher, editors, Proceedings of the 4th International Workshop on Variability Modelling of Software-intensive Systems (VAMOS), number 37 in ICB Research Reports, pages 159--162, Germany, 2010. University of Duisburg-Essen.
[9]
Q. Boucher, A. Classen, P. Heymans, A. Bourdoux, and L. Demonceau. Tag and Prune: A Pragmatic Approach to Software Product Line Implementation. In Proceedings of the 25th IEEE/ACM international conference on Automated software engineering (ASE), pages 333--336, New York, 2010. ACM.
[10]
K. Czarnecki and U. W. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Boston, San Franciso et al., 2000.
[11]
S. Günther. Multi-DSL Applications with Ruby. IEEE Software, 27(5):pp. 25--30, 2010.
[12]
S. Günther and S. Sunkle. Feature-Oriented Programming with Ruby. In Proceedings of the First International Workshop on Feature-Oriented Software Development (FOSD), pages 11--18, New York, 2009. ACM.
[13]
S. Günther and S. Sunkle. Dynamically Adaptable Software Product Lines using Ruby Metaprogramming. In Proceedings of the 2nd International Workshop on Feature-Oriented Software Development (FOSD), pages 80--87, New York, 2010. ACM.
[14]
S. Günther and S. Sunkle. rbFeatures: Feature-Oriented Programming with Ruby. In Science of Computer Programming. Elsevier, 2011. Accepted 01.01.2011, in press.
[15]
S. Herrmann. A Precise Model for Contextual Roles: The Programming Language ObjectTeams/Java. Applied Ontology, 2(2):181--207, 2007.
[16]
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, USA, 1990.
[17]
C. Kästner and S. Apel. Virtual Separation of Concerns -- A Second Chance for Preprocessors. Journal of Object Technology (JOT), 8(6):pp. 59--78, Sept. 2009.
[18]
C. Kästner, S. Apel, and D. Batory. A Case Study Implementing Features Using Aspect J. In Proceedings of the 11th International Software Product Line Conference (SPLC), pages 223--232, Washington, 2007. IEEE Computer Society.
[19]
C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory. Guaranteeing Syntactic Correctness for all Product Line Variants: A Language-Independent Approach. In M. Oriol and B. Meyer, editors, Proceedings of the 47th International Conference on Objects, Components, Models and Patterns (TOOLS Europe), volume 33 of Lecture Notes in Business Information Processing, pages 175--194. Springer-Verlag, Berlin, Heidelberg, Germany, 2009.
[20]
C. Kästner, T. Thüm, G. Saake, J. Feigenspan, T. Leich, F. Wielgorz, and S. Apel. FeatureIDE: A Tool Framework for Feature-Oriented Software Development. In Proceedings of the 31st International Conference on Software Engineering (ICSE), pages 611--614, Washington, 2009. IEEE Computer Society.
[21]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer-Verlag, Berlin, Heidelberg, Germany, 1997.
[22]
R. E. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating Support for Features in Advanced Modularization Techniques. In A. P. Black, editor, Proceedings of the 19th European Conference on Object-Oriented Programming (ECOOP), volume 3586 of Lecture Notes in Computer Science, pages 169--194, Berlin, Heidelberg, Germany, 2005. Springer-Verlag.
[23]
D. L. Parnas. On the Design and Development of Program Families. IEEE Transactions on Software Engineering, 2:1--9, 1976.
[24]
C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 419--443, Berlin, Heidelberg, Germany, 1997. Springer-Verlag.
[25]
S. Ruby, D. Thomas, and D. H. Hanson. Agile Web Development with Rails. The Pragmatic Bookshelf, Raleigh, Texas, USA, 3rd edition, 2010.
[26]
M. Sinnema, O. De Graaf, and J. Bosch. Tool Support for COVAMOF. In Proceedings of the 2nd Workshop on Software Variability Management for Product Derivation (SVM). Available online http://www.msinnema.nl/SVMWorkshopMocca.pdf, 2004.
[27]
A. van Deursen and P. Klint. Domain-Specific Language Design Requires Feature Descriptions. Journal of Computing and Information Technology, 10(1):pp. 1--18, 2002.
[28]
H. Zhang and S. Jarzabek. XVCL: A Mechanism for Handling Variants in Software Product Lines. Science of Computer Programming, 53(3):pp. 381--407, 2004.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '11: Proceedings of the 15th International Software Product Line Conference, Volume 2
August 2011
306 pages
ISBN:9781450307895
DOI:10.1145/2019136
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Pure-Systems: Pure-Systems GmbH
  • Hitachi
  • Siemens
  • Software Eng Inst: Software Engineering Institute
  • Biglever: BigLever Software, Inc.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 August 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. feature-oriented programming
  2. software product lines

Qualifiers

  • Research-article

Conference

SPLC '11
Sponsor:
  • Pure-Systems
  • Software Eng Inst
  • Biglever
SPLC '11: The 2011 Software Product Line Conference
August 21 - 26, 2011
Munich, Germany

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 120
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media