GENERIC FEATURE MODULES: TWO-STAGED PROGRAM CUSTOMIZATION

Sven Apel, Martin Kuhlemann, Thomas Leich

2006

Abstract

With feature-oriented programming (FOP) and generics programmers have proper means for structuring software so that its elements can be reused and extended. This paper addresses the issue whether both approaches are equivalent. While FOP targets at large-scale building blocks and compositional programming, generics provide fine-grained customization at type-level. We contribute an analysis that reveals the individual capabilities of both approaches with respect to program customization. Therefrom, we extract guidelines for programmers in what situations which approach suffices. Furthermore, we present a fully implemented language proposal that integrates FOP and generics in order to combine their strengths. Our approach facilitates two-staged program customization: (1) selecting sets of features; (2) parameterizing features subsequently. This allows a broader spectrum of code reuse to be covered – reflected by proper language level mechanisms. We underpin our proposal by means of a case study.

References

  1. Apel, S. et al. (2005). FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In Proceedings of International Conference on Generative Programming and Component Engineering (GPCE).
  2. Austern, M. (1998). Generic Programming and the STL. Addison-Wesley.
  3. Batory, D. and O'Malley, S. (1992). The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology (TOSEM), 1(4).
  4. Batory, D., Sarvela, J. N., and Rauschmayer, A. (2004). Scaling Step-Wise Refinement. IEEE Transactions on Software Engineering (TSE), 30(6).
  5. Beuche, D., Papajewski, H., and Schröder-Preikschat, W. (2004). Variability Management with Feature Models. Science of Computer Programming, 53(3).
  6. Czarnecki, K. and Eisenecker, U. (2000). Generative Programming: Methods, Tools, and Applications. Addison-Wesley.
  7. Goguen, J. (1996). Parameterized Programming and Software Architecture. In Proceedings of International Conference on Software Reuse (ICSR).
  8. Goguen, J. A. (1989). Principles of Parameterized Programming. In Software Reusability: Vol. 1, Concepts and Models. ACM Press.
  9. Myers, N. (1995). Traits: A New and Useful Template Technique. C++ Report.
  10. Smaragdakis, Y. and Batory, D. (2002). Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Transactions on Software Engineering and Methodology (TOSEM), 11(2).
Download


Paper Citation


in Harvard Style

Apel S., Kuhlemann M. and Leich T. (2006). GENERIC FEATURE MODULES: TWO-STAGED PROGRAM CUSTOMIZATION . In Proceedings of the First International Conference on Software and Data Technologies - Volume 1: ICSOFT, ISBN 978-972-8865-69-6, pages 127-132. DOI: 10.5220/0001311301270132


in Bibtex Style

@conference{icsoft06,
author={Sven Apel and Martin Kuhlemann and Thomas Leich},
title={GENERIC FEATURE MODULES: TWO-STAGED PROGRAM CUSTOMIZATION},
booktitle={Proceedings of the First International Conference on Software and Data Technologies - Volume 1: ICSOFT,},
year={2006},
pages={127-132},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001311301270132},
isbn={978-972-8865-69-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the First International Conference on Software and Data Technologies - Volume 1: ICSOFT,
TI - GENERIC FEATURE MODULES: TWO-STAGED PROGRAM CUSTOMIZATION
SN - 978-972-8865-69-6
AU - Apel S.
AU - Kuhlemann M.
AU - Leich T.
PY - 2006
SP - 127
EP - 132
DO - 10.5220/0001311301270132