Generic Object Navigator
©Jean-Marc Vanel 2004

Introduction

The power of UML in general is not enough considered for non-technical uses. In particular the object diagrams are under-utilized. In this article I will first sketch the different views, and then indicate some concrete applications. The different views are allways synchronized.

Main navigation view

:C1----:C2----:C3----inst2:C2
  |
|
:C4---:C5

:C6----:C7
In this example the user (possibly a business user) had a starting point, an anonymous instance of class C1. It has been obtained possibly from an OQL, SQL, or XPath query helper, or it was the application object. Then, using some local pull-down menu entries, he navigated to :C2, following the UML associations. And so on, until another instance of class C2.  Then later, the user came back to the first instance of C2 and navigated to :C4 and :C5. The line of :C6 and :C7 was obtained from another starting point. Note that each line is in a chronological order (user time). The different lines could be synchronized by using a colored background. Icons could be associated to classes.

Class diagram with navigation

This view is very similar to a collaboration diagram, except that the numbers on the links are not related to program method calls, but to user navigation. The object (main) view can be seen in perspective above the class view (cf map of commercial center Parly II ;-) ).

Tabular view

There is one table per class (possibly a single table for classes related by inheritance). Everytime the user navigates (in the same or another view) to a new object, a new row or table appears. Associations ends will be rendered by hyperlinks in tables.

Bird view

This view presents all objects available. For example a tree could be derived from the object graph in the following way. Starting from the root object (the application), or any object, draw only the objects that were not allready drawn. For collections or arrays, the size of the box will be proportional to real size.

Uses


A DEVELOPPER:
concepts UML et autres appliqués à eux-mêmes
deduction of a link from methods and their arguments