Seeker: A Case Tool Based on OO Sequence Diagrams
Brief Description
Seeker is a small CASE tool that uses sequence diagrams based on UML to
support learning about OO design. The tool is
language independent, and is designed to be highly usable and
responsive. Although initially designed for use in team design
situations, it is also directly useful in teaching about OO design,
as a device for interactive presentation. Moreover, when used
interactively, the tool seems to offer some of the same advantages
of walkthroughs themselves, suggesting that such lightweight tools
could have a role in the design process itself.
Status
This software is a research prototype only. The actual code is a messy
twist of ideas, and shows the nature of the software as a vehicle
for exploration. I am happy for other people to try it out for research
and educational purposes only. For information about further development
for commercial use , please contact me.
Using Seeker
Probably the best introduction to Seeker is the paper describing the motivation
behind it: "A Case Tool for Learning OO Design".
This paper is available HTML, suitable for perusing on the web, or
in pdf or postscript, more suitable for printing.
There is also a set of MS Powerpoint slides for a poster presentation about
Seeker:
The basic idea of Seeker is to support creating object oriented sequence
diagrams. If you are not familiar with these, the paper
above provides a brief introduction, and books such as Martin Fowler's
UML Distilled, published by Addison-Wesley, provide a more complete
introduction. (Richard Botting tells me sequence diagrams were originally
invented by Charles Babbage; if anyone knows a reference to verify this,
I would appreciate an email message!)
The best approach to exploring Seeker is to quickly read the notes below,
and then start the program and start creating pictures.
Note especially the descriptions of the toolbar and the keyboard shortcuts,
which are what make it so easy to rapidly create the sequence diagrams.
Basic Concepts
Seeker is a simple tool, and really only involves creating diagrams. However,
the idea is that the diagrams and extremely easy
to create, and this makes it easier to think about the design under
consideration. To make the diagrams easy, Seeker involves the following
basic concepts:
-
Object: an object represents an entity in a system, and is shown
in a diagram by a box at the top of the screen, and the column beneath
it going all the way down the screen.
-
Step: a step represents an event in a system activity, and is shown
in a diagram by a box going across the screen; a step may be a call from
one object to another, a return completing a previous call, or a simple
step with a comment.
-
Sequence: a sequence is a single diagram, showing a set of objects
as vertical columns, and a sequence of steps as horizontal boxes arranged
one on top of the other. A step will contain smaller coloured boxes showing
the objects involved.
Seeker allows a set of sequences to be saved and opened as a unit; this
is especially useful for working with a set of diagrams relating to a particular
system. All open sequences are represented by a tab at the bottom of the
screen, and selecting a tab will display that sequence as a diagram.
The menus of Seeker offer straightforward functionality for these basic
concepts:
-
File: Allows a file containing the sequences to be opened or saved,
and so on.
-
Edit: Allows copy, cut, and paste of textual labels on the diagram.
-
Sequence: Allows sequences to be selected, created, cleared, deleted,
or shifted left or right in the tabs shown.
-
Object: Allows objects and their columns to be selected, created,
deleted, or shifted left or right in the diagram.
-
Step: Allows steps to be selected, created or deleted.
Note that at any time there is a current sequence, a current object, and
a current step, and by default any action requested will involve the current
sequence, current object, and current step. The current object and step
are highlighted in yellow.
The interface shows text entry boxes for sequence, sequence tab, object,
and step. Clicking in these boxes will allow the text to be modified,
and hitting "enter" will change the text on the diagram accordingly.
As well as the menus, there is a toolbar for common actions. The toolbar
buttons will display hints as to their purpose when the cursor
hovers over them. The menus are useful because they can be reminders
as to the functionality available. The toolbar buttons are useful because
they require single mouse clicks, and thus allow easy diagram manipulation
using the mouse alone.
In addition to the menus and toolbar, there are also a number of keyboard
shortcuts. Some offer familiar to menu commands,
such as control-s to save to file, and control-o to open, and so on.
More important keyboard shortcuts allow the diagrams elements
to be created or manipulated with single keystrokes, as follows:
-
insert: create a new object
-
delete: delete the current object
-
space: create a new "comment" step
-
F1-F12: F1 creates a new "call" step to the object in the 1st column,
F2 a new call to the object in the 2nd column, etc.
-
enter: creates a new "return" step to return from the most recent
call
-
escape: allows text entry in the text box for the current step label
-
tab, shift-tab: allows text entry to another text entry box
As well as displaying the titles, objects, and their steps in a sequence
diagram, Seeker also shows some additional graphical elements.
-
current frames: For the steps within an object following a call,
Seeker shows an activation record box. The box is coloured pink if it would
be an active frame, i.e. part of the run-time stack, given the current
step shown.
-
continuous sequences: Seeker allows steps to be created regardless
of whether they are meaningful, to allow recording of a design that emerges
in arbitrary order. However, it does check to see whether the steps do
follow one another. Where there is a discontinuity, Seeker shows a thick
red line: for example when one step involves one object, and the next step
another object, without any call to link the two. Seeker also shows a continuous
orange arrow showing the continuity of steps that lead to the current step.
-
call matrix: At the top of the diagram, a compressed matrix is displayed
showing which objects call which other objects. This can make it easy to
see the distribution of control between objects without having to examine
many steps in the diagram. As the cursor hovers over elements of the matrix,
the colours of the lines are altered to make the calling structure more
clear.
Printing
It is possible to print out the sequence diagrams created in Seeker: there
is an item on the File menu, and also a toolbar button. This allows the
user to create a file with the diagram stored in postscript format. To
actually print this out will require some way to print postscript files.
Such facilities are common in the Unix , Linux, or Macintosh environments.
In the MSWindows environment, I recommend using the free tools "Ghostscript"
and "GSview". These are available free from their web home
page.
Installation Guide
Base Technology
Seeker is written in the scripting language TCL. It uses several common
TCL extension packages, including the Tk user interface tool kit, the iTCL
and iTk extensions for object orientation, and the iWidgets package of
extended user interface components.
The first step to using Seeker is make sure you have TCL and the extension
packages installed. Many Unix and Linux systems typically have all this
installed already. If you do not already have TCL, etc., you will have
to install it before you can use Seeker. All the necessary systems are
available free and may be downloaded from web pages, such as the
Scriptics TCL developer site. At this site, go to the "software" page.
For MSWindows (95/98/ME/NT/2K) there is a single
file with a binary self installer, so you can just download this file and
execute it to install the complete system, including all the necessary
extensions. I suggest using the version "itc82.exe" from the web page
at the Sensus TCL
site.
Installing Seeker Itself
The actual code for Seeker itself is simply a small set of script files.
You may download these in the form
of a zipped
directory of these files.
The first step is to unzip the directory and install it somewhere.
To run Seeker will depend on how TCL was installed on your system.
On some systems, such as MSWindows with the binary TCL install, you
may simply be able to open the SeerkerDir directory, and double-click
on the file Seeker.tcl.
On a more crude system, you may have to run the TCL command. On Unix systems,
this is probably itkwish, perhaps with
some suffix denoting the version. On MSWindows systems, use the Start
menu, Programs, TCL, and choose wish.
Wish is the "window shell", and will bring up a text window and a graphics
window.
In the text window, change to the directory of the seeker files, with
a command such as:
cd C:/SeekerDir
then start Seeker with the command:
source Seeker.tcl
All this is crude but will work.
Envoi
If you have any comments about Seeker, I look forward to hearing from you!
Robert.Biddle@mcs.vuw.ac.nz