Abstract
The goal of an object-oriented framework is to provide a reusable design that supports the development of multiple related applications. In practice, frameworks are distributed as source code with little or no design documentation. This complicates both the instantiation and extension of these frameworks.
We illustrate this problem by examining the HotDraw framework, which provides 2D graphical editing capabilities in the Smalltalk environment. We used both the Smalltalk development environment tools and an existing framework design notation, Helm's contracts, to try to understand the framework. Our analysis of HotDraw using these approaches suggests that frameworks would be easier to instantiate and extend if more design and documentation effort were focused on two important framework interfaces: the interface exported to applications, and the interface exported to other frameworks. Based on this observation, we describe a set of usage dependences that are intended to improve framework interface design with respect to instantiation and extension.
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 research was supported in part by the National Science Foundation under Grant Numbers CCR-9113367 and CCR-8858804 and by SRA (Tokyo Japan). The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government, or of SRA.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Deutsch, L. P. Design Reuse and Frameworks in the Smalltalk-80 System. ACM Press, 1989, ch. A.3.
Griswold, W. G., and Notkin, D. Automated Assistance for Program Restructuring. ACM Transactions on Software Engineering and Methodology 2, 3 (July 1993), 228–269.
Helm, R., Holland, I. M., and Gangopadhyay, D. Contracts: Specifying Behavioral Compositions in Object-Oriented Systems. In Proc. of the OOP-SLA '89 Conf. on Object-oriented Programming Systems, Languages and Applications (1990), 169–180.
Johnson, R. and Russo, V. Reusing Object-Oriented Designs. Department of Computer Science, Tech. Rep. UIUCDCS 91–1696, University of Illinois, 1991.
Johnson, R. Documenting Frameworks using Patterns. In Proc. of the OOP-SLA '92 Conf. on Object-oriented Programming Systems, Languages and Applications (1992), 63–76.
Linton, M. A., Vlissides, J. M., and Calder, P. R. Composing User Interfaces with Interviews. IEEE Computer 22, 2 (February 1989), 8–22.
Murphy, G. C. and Notkin, D. The Interaction Between Static Typing and Frameworks. Department of Computer Science and Engineering, Tech. Rep. 93-09-02, University of Washington, 1993.
Opdyke, W. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign, 1992.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. Object-Oriented Modeling and Design. Prentice-Hall, 1991.
Weinand, A., Gamma, E., and Marty, R. Design and Implementation of ET++, A Seamless Object-Oriented Application Framework. In Proc. of the OOP-SLA '88 Conf. on Object-oriented Programming Systems, Languages and Applications (1988), 46–57.
Wirfs-Brock, R., and Johnson, R. Surveying Current Research in ObjectOriented Design. Communications of the ACM 33, 9 (September 1990), 104–124.
Wirfs-Brock, R., Wilkerson, B., and Wiener, L. Designing Object-Oriented Software. Prentice-Hall, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Murphy, G.C., Notkin, D. (1996). Difficulties with object-oriented frameworks. In: Lamb, D.A. (eds) Studies of Software Design. WSSD 1993. Lecture Notes in Computer Science, vol 1078. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030521
Download citation
DOI: https://doi.org/10.1007/BFb0030521
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61285-8
Online ISBN: 978-3-540-68434-3
eBook Packages: Springer Book Archive