Introduction


introduction framework patterns components conclusions references appendix experience
For both users and developers, delineating the patterns and idioms underlying the realization of an object-oriented framework is slowly being recognized to be of critical importance for understanding the inherent complexity of the framework.

The DejaVu framework, that we are developing, is meant to provide a flexible and easy-to-use environment for intelligent, distributed hypermedia applications. In particular, the hush (hyper utility shell) library and its extensions offer support for the development of multimedia user interfaces, and is used in practical CS2 and CS3 software engineering assignments. The focus of our research has recently shifted towards Web-integrated applications, that allow for including Web-aware widgets as a (GUI) component in an application. In order to realize the functionality of hush in a flexible fashion, a systematic use has been made of a limited number of patterns, namely the nested components pattern and the actor pattern. For the actual implementation hush we employed an improved version of the handle/body idiom, and the derived virtual self-reference and dynamic role-switching idioms that underly the patterns mentioned.

To clarify the distinction between patterns and idioms we emphasize that the patterns provide a solution to a problem of design, whereas idioms are to be regarded as a convenient implementation technique.

Related work

Clearly, a rich variety of patterns and idioms has already been extracted from the development of GUI toolkits as testified by the collection in  [GOF], which is primarily drawn from the experience of developing Interviews  [Interviews] and ET++  [ET]. Nevertheless, our work shows a flaw in one of the commonly used idioms, notably the handle/body idiom, and may further be considered of interest due to our approach of realizing the handle/body idiom and idioms derived from it. Our actor pattern and associated dynamic role switching idiom, moreover, seem to be more powerful than similar patterns known from the literature.

Structure

The structure of this paper is as follows. First, we will give a brief overview of the DejaVu framework and the basic concepts of the hush library. Then we will characterize the patterns and idioms employed in developing hush and its extensions. As an illustration of our approach, we will discuss the design of the Web-related components of our framework. And finally, we will discuss the relative merits of the patterns and idioms employed.
introduction framework patterns components conclusions references appendix experience