Abstract
This paper explores techniques for implementing adaptable software components. Such techniques can greatly facilitate the implementation of software product lines. The techniques we present allow the construction of large transparently adaptable components via composition and parameterization. Functional and structural adaptation, to any level of nesting, is achieved at the point of instantiation via recursive argument lists whose structure mirrors that of the component. The techniques are currently based on the C++ language, although work is under way to extend them to other languages (particularly Java™).
Java and all Java-based marks are trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
“A Framework for Software Product Line Practice-version 2”, Software Engineering Institute, Carnegie Mellon University.
“Adaptation of Software Components”, George T. Heineman, Technical Report TR-99-04 Worcester Polytechnic Institute, 1999.
“Composing Software Systems from Adaptable Software Components”, George T. Heineman, Technical Report TR-97-9, Worcester Polytechnic Institute, 1997.
“Higher Order + Polymorphic = Reusable”, Simon Thompson, unpublished manuscript available from the Computing Laboratory, University of Kent. (http://www.cs.ukc.ac.uk/pubs/1997).
“Design Patterns: Elements of Reusable Object Oriented Software”, by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissades, Addison-Wesley Publishing Co. 1995.
“An improved variant type based on member Templates”, Fernando Cacciola, C/C++ Users Journal October 2000.
“Component-based Product development of Avionics Software”, David C. Sharp, The Boeing Company, published in Software Product Lines: Experience and Research Directions ed. Patrick Donohoe pp 353–369 Kluwer Academic Publishers, August 2000.
“Skeletal Parallelism HomePage”, at http://www.dcs.ed.ac.uk/home/mic/skeletons.html, maintained by Murray Cole.
“Mixin-Based Programming in C++”, Y. Smaragdakis and D. Batory, Second International Symposium on Generative and Component-Based Software Engineering (GCSE 2000), Erfurt, Germany, October 9–12, 2000.
“Implementing Layered designs with Mixin layers”, Y. Smaragdakis and D. Batory, ECOOP1998.
“Tuples and Multiple Return Values in C++”, J. Jarvi, Technical Report TR No 249. Turku Centre for Computer Science, Finland.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brown, T.J., Spence, I., Kilpatrick, P., Crookes, D. (2002). Adaptable Components for Software Product Line Engineering. In: Chastek, G.J. (eds) Software Product Lines. SPLC 2002. Lecture Notes in Computer Science, vol 2379. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45652-X_10
Download citation
DOI: https://doi.org/10.1007/3-540-45652-X_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43985-1
Online ISBN: 978-3-540-45652-0
eBook Packages: Springer Book Archive