Applications of the RoleAdapter Pattern:
Representing class inheritance and aggregation hierarchies with the Giza framework

A demonstration for the OOPSLA '98 Conference

Keywords:
OO Modeling, Design Patterns, Reusability, Visualization
Contact:
Marc-Antoine Parent
E-mail:
maparent@acm.org
Organization:
Centre de Recherche Informatique de Montréal (CRIM)
Address:
550 Sherbrooke Ouest Montréal (Québec) Canada H3A 1B9
Phone:
(514) 840-1234
Fax:
(514) 840-1244

Description:

We will demonstrate applications of hierarchy display tools of the Giza framework, focusing on representation of class inheritance and aggregation hierarchies, more specifically the Java class hierarchy.

Our representation tools (Cheops and the Millipede) use an innovative representation technique, visual elision, to display large hierarchies with comparatively few visual elements. This technique renders each logical element as a meaningful combination of states of visual nodes, preserving neighborhood relationships and allowing fast navigation. Furthermore, the Millipede can represent non-hierarchical links in basically hierarchical structures, as can be found in cases of multiple inheritance.

We will demonstrate application of hierarchy display tools, focusing on representation of class inheritance and aggregation hierarchies, more specifically the Java class hierarchy.

Our representation tools (Cheops and the Millipede) use an innovative representation technique, visual elision, to display large hierarchies with comparatively few visual elements. This technique renders each logical element as a meaningful combination of states of visual nodes, preserving neighborhood relationships and allowing fast navigation. Furthermore, the Millipede can represent non-hierarchical links in basically hierarchical structures, as can be found in cases of multiple inheritance.

First, we will introduce the representation tools themselves, starting with the principles of the elision technique and how it allows representation of large hierarchies; then we will demonstrate various navigation techniques and how they interact.

Second, we will show how these tools are adapted to analysis of complex structural data: representation of non-hierarchical links, visual filtering of information, spatial redistribution of structural elements according to various criteria, etc.

Third, we will show how multiple instances of our tool can attach to various aspects of our data model. In particular, we will show a representation of the aggregation hierarchy derived from a class.

The Giza framework relies on the RoleAdapter Design Pattern, presented separately as a Tech Note, to allow generic views to attach to specific aspects of an arbitrary model. The RoleAdapter will be presented briefly, with an emphasis of the steps involved in adapting some model to the Giza-based visualization tools. Some code examples will be provided. If time allows, we will show how multiple coupled views on different aspects of a data model can interact to give a richer and clearer representation than either single or mixed views. The Giza framework is a prototype-quality, fully functional Java applet, intended to demonstrate the power of elision-based representation tools and the flexibility of the RoleAdapter Design Pattern. We do not pretend these representations of class structures to be a complete CASE tool.