On the Use of Static Typing to Support Operations on Frameworks

Gail C. Murphy and David Notkin

Object-Oriented Systems, to appear.

Abstract

Frameworks capture the commonalities in design and implementation between a family of related applications and are typically expressed in a general purpose object-oriented lan guage. Software engineers use frameworks to reduce the cost of building complex applica tions. Although the task of using a framework to build an application is error-prone, few techniques and tools exist to aid the engineer. This paper characterizes the operations of in stantiation, extension and refinement used to build applications from frameworks and ex plores how these operations are supported by one common language-level tool, namely the static typing policies (and associated tools) of common object-oriented languages. We found that both conservative contravariant and covariant static typing policies were effec tive in supporting the operations of framework instantiation and framework extension. However, both policies were ineffective at supporting the operation of framework refine ment. Although it does not support the refinement operation itself, covariance is sufficient ly expressive to support the instantiation of a properly refined framework. This result pro vides a basis for defining and building tools to support the effective use and evolution of frameworks in software engineering environments.


Back to Gail Murphy's Selected Publications Page

Last modified: June 28, 1996

Gail Murphy
murphy@cs.ubc.ca