Issue No. 01 - January (1998 vol. 24)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.663999
<p><b>Abstract</b>—A collection of design patterns was described by Gamma, Helm, Johnson, and Vlissides in 1994. Each pattern ensures that a certain system aspect can vary over time, for example the operations that can be applied to an object or the algorithm of a method. The patterns are described by constructs such as the inheritance and reference relations, attempting to emulate more dynamic relationships. As a result, the design patterns demonstrate how awkward it is to program natural concepts of evolution when using a traditional object-oriented language. In this paper, we present a new relation between classes: the <it>context</it> relation. It directly models dynamic evolution, and it is meaningful at both the design and implementation level. At the design level we extend the Unified Modeling Language (UML) to include the context relation as a new form of arrow between classes. At the implementation level we present a small extension of Java. The context relation introduces a new form of dynamic binding that serves as a replacement to delegation. We demonstrate how the context relation can be used to easily model and program numerous design patterns.</p>
Dynamic behavior, method update, dynamic dispatch.
K. J. Lieberherr, J. Palsberg and L. M. Seiter, "Evolution of Object Behavior Using Context Relations," in IEEE Transactions on Software Engineering, vol. 24, no. , pp. 79-92, 1998.