Abstract
The aim of component technology is the replacement of large monolithic applications with sets of smaller software components, whose particular functionality and interoperation can be adapted to users’ needs. However, the adaptation mechanisms of component software are still limited. Most proposals concentrate on adaptations that can be achieved either at compile time or at link time. Current support for dynamic component adaptation, i.e. unanticipated, incremental modifications of a component system at run-time, is not sufficient.
This paper proposes object-based inheritance (also known as delegation) as a complement to purely forwarding-based object composition. It presents a typesafe integration of delegation into a class-based object model and shows how it overcomes the problems faced by forwarding-based component interaction, how it supports independent extensibility of components and unanticipated, dynamic component adaptation.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Abadi, Martin and Cardelli, Luca. A Theory of Objects. Springer, 1996.
P.S.C. Alencar, D. D. Cowan, C.J.P. Lucena, and L.C.M. Nova. A model for gluing components. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on ComponentOriented Programming (WCOP 98), volume 10, pages 101–108. Turku Center for Computer Science, 1998.
Bosch, Jan. Superimposition-A ComponentAdaptation Technique, 1998.
Don Box. Essential COM. Addison-Wesley, 1998.
Costanza, Pascal. Lava: Delegation in a Strongly Typed Programming Language — Language Design and Compiler (In German: Lava:Delegation in einer streng typisierten Programmiersprache — Sprachdesign und Compiler). Masters thesis, University of Bonn, 1998.
Dony, Christophe and Malenfant, Jacques and Cointe, Pierre. Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and Their Validation. Proceedings OOPSLA’ 92, ACM SIGPLAN Notices, 27(10):201–217, 1992.
Fisher, Kathleen and Mitchell, John C. A Delegation-based Object Calculus with Subtyping. In Proceedings of 10th International Conference on Fundamentals of Computation Theory (FCT’ 95), volume 965 of LectureNotes in Computer Science, pages 42–61. Springer, 1995.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns — Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995.
Harrison, William and Ossher, Harold and Tarr, Peter. Using Delegation for Software and Subject Composition. Research Report RC 20946 (922722), IBM Research Division, T.J. Watson Research Center, Aug 1997.
William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). ProceedingsOOPSLA’ 93, ACM SIGPLAN Notices, 28(10):411–428, 1993.
Holzle, Urs and Keller, Ralf. Binary ComponentAdaptation. In Proceedings of ECOOP 98, pages 307–329. Springer Verlag, 1998.
William Harrison, Harold Ossher, and Peter Tarr. Load-time subject-oriented programming, June 1998 1998.
Bülent Kücük, M. Nedim Alpdemir, and Richard N. Zobel. Customizable adapters for black-box components. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on Component Oriented Programming (WCOP 98), volume 10, pages 53–60. Turku Center for Computer Science, 1998.
Keller, Ralph and Hölzle, Urs. Supporting the Integration and Evolution of Components Through Binary Component Adaptation. Technical Report TRCS97-15, University of California at Santa Barbara, September 1997.
Günter Kniesel. Delegation for java api or language extension? Technical Report IAI-TR-98-4, ISSN 0944-8535, University of Bonn, May 1998 1998.
Günter Kniesel. Type-safe delegation for dynamic component adaptation. In Wolgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proc. of Third Intern. Workshop on Component Oriented Programming (WCOP 98), volume 10, pages 9–18. Turku Center for Computer Science, 1998.
Günter Kniesel. Darwin-A Unified Model of Sharing for Object-Oriented Programming. Ph.d. thesis (forthcoming), University of Bonn, 1999. Knie98.
Lamping, John. Typing the Specialization Interface. Proceedings OOPSLA’ 93, ACM SIGPLAN Notices, 28(10):201–214, 1993.
Lieberman, Henry. Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems. Proceedings OOPSLA’ 86, ACM SIGPLAN Notices, 21(11):214–223, 1986.
Kai-Uwe Mätzel and Peter Schnorf. Dynamic component adaptation. Technical report 97-6-1, Union Bank of Swizerland, June 1997 1997.
F. Plasil, D. Balek, and R. Janecek. Sofa/dcup:architecture for component trading and dynamic updating. In ICCDS 98, Annapolis, Maryland, USA, 1998. IEEE CS Press.
Schickel, Matthias. Lava:Design and Implementation of Delegation Mechanisms in the Java Runtime Environment (In German: Lava:Konzeptionierung und Implementierung von Delegationsmechanismen in der Java Laufzeitumgebung). Masters thesis, University of Bonn, 1997.
Steyaert, Patrick and Lucas, Carine and Mens, Kim and D’Hondt, Theo. Reuse Contracts: Managing the Evolution of Reusable Assets. Proceedings OOPSLA’ 96, ACM SIGPLAN Notices, pages 268–285, 1996.
Szyperski, Clemens. Independently Extensible Systems Software Engineering Potential and Challenges. In Proceedings of the 19th Australian Computer Science Conference, Melbourne, Australia. Computer Science Association, 1996.
Szyperski, Clemens. Component Software-Beyond Object-Oriented Programming. Addison-Wesley, 1998.
Taivalsaari, Antero. Object-Oriented Programming with Modes. Journal of Object-Oriented Programming (JOOP), 6(3):25–32, 1993.
Weck, Wolfgang. Inheritance Using Contracts & Object Composition. In Weck, Wolfgang and Bosch, Jan and Szyperski, Clemens, editor, Proceedings of the Second International Workshop on Component-Oriented Programming (WCOP’ 97), pages 105–112. Turku Center for Computer Science, Turku, Finland, 1997. ISSN 1239-1905.
Peter Wegner. Concepts and paradigms of object-oriented programming (expansion of oopsla 89 keynote talk). ACM OOPS Messenger, 1(1):7–87, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-VerlagBerlin Heidelberg
About this paper
Cite this paper
Kniesel, G. (1999). Type-Safe Delegation for Run-Time Component Adaptation. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_16
Download citation
DOI: https://doi.org/10.1007/3-540-48743-3_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66156-6
Online ISBN: 978-3-540-48743-2
eBook Packages: Springer Book Archive