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
- generic GUI for data visualization and input for any
(well-designed) Object Oriented application.
- front-end to a debugger
- navigation in a relational database
- as an add-on to a Web browser (a web page == an object;
hyperlinks == associations)
- navigation in an XML database (a tag instance == an object;
assocations: parent-child, IDREF, XML Schemas references)
A DEVELOPPER:
concepts UML et autres appliqués à eux-mêmes
deduction of a link from methods and their arguments