Abstract
Class hierarchies, though theoretically reusable, have generally not seen much practical reuse in applications, due in part to the inflexibility of the inheritance relationship. We present a technique, base class injection, that allows the creation of generative class hierarchies that may be adapted by adding new methods, data members, and ancestor classes without modification to the class library code; an implementation of this technique in the C++ language is given.
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
Ruby: a gem of a language. http://www.ruby-lang.org.
Simplicissimus. http://www.cs.rpi.edu/research/gpg/Simplicissimus.
ANSI-ISO-IEC. C++ Standard, ISO/IEC 14882:1998, ANSI standards for information technology edition, 1998.
K. Arnold and J. Gosling. The Java Programming Language. Addison-Wesley, Reading, MA, 1998.
J. J. Barton and L. R. Nackman. Scientific and Engineering C++: An introduction with advanced techniques and examples. Addison-Wesley, 1994.
K. Beck. Instance specific behavior: How and why. Smalltalk Report, 6(2), 1993.
J. M. Bieman and J. X. Zhao. Reuse through inheritance: A quantitative study of C++ software. In ACM SIGSOFT Symposium on Software Reusability, pages 47–52, 1995.
G. Bracha and W. Cook. Mixin-based inheritance. In N. Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications / Proceedings of the European Conference on Object-Oriented Programming, pages 303–311, Ottawa, Canada, 1990. ACM Press.
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476–493, June 1994.
K. Czarnecki and U. W. Eisenecker. Generative Programming-Towards a New Paradigm of Software Engineering. Addison Wesley Longman, 2000.
B. Dawes and D. Abrahams. Boost. http://www.boost.org.
G. Fischer, D. Redmiles, L. Williams, G. I. Puhr, A. Aoki, and K. Nakakoji. Beyond Object-Oriented Technology:Where Current Approaches Fall Short. Human-Computer Interaction, 10:79–119, 1995.
M. Flatt, S. Krishnamurthi, and M. Felleisen. Classes and mixins. In Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pages 171–183, New York, NY, 1998.
G. Kiczales, E. Hisdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. In European Conference on Object-Oriented Programming (ECOOP’01), 2001.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwi. Aspect-oriented programming. In European Conference on Object-Oriented Programming (ECOOP’97), 1997.
A. Lake and C. Cook. A software complexity metric for C++. Technical Report 92-60-03, Computer Science Dept., Oregon State University, 1992
D. R. Musser. The Tecton Concept Description Language. http://www.cs.rpi.edu/~musser/gp/tecton/tecton1.ps.gz, July 1998.
W. F. Opdyke and R. J. Johnson. Refactoring: An Aid in Designing Application Frameworks. In Proceedings of the Symposium on Object-Oriented Programming emphasizing Practical Applications, pages 145–160, 1990.
H. Ossher and W. Harrison. Combination of inheritance hierarchies. In A. Paepcke, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), volume 27, pages 25–40, New York, NY, 1992. ACM Press.
S. Schupp, D. P. Gregor, and D. Musser. Algebraic concepts represented in C++. Technical Report TR-00-8, Rensselaer Polytechnic Institute, 2000.
T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7 (4), 1995.
P. Wegner. Dimensions of object-based language design. In N. Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), volume 22, pages 168–182, New York, NY, 1987. ACM Press.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gregor, D., Schupp, S., Musser, D. (2001). Base Class Injection. In: Bosch, J. (eds) Generative and Component-Based Software Engineering. GCSE 2001. Lecture Notes in Computer Science, vol 2186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44800-4_10
Download citation
DOI: https://doi.org/10.1007/3-540-44800-4_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42546-5
Online ISBN: 978-3-540-44800-6
eBook Packages: Springer Book Archive