Eidola Notation Gallery

Eidola Notation Gallery
Notations and Visualizations
User Interface Philosophy
User Interfaces of Note
Existing Visualizations of Programs
Possible Eidola Notations

Discussion

Eidola home
 

  Zooming Structograms
Next: Possible Eidola Notations - The Fibrani Brace >>
Discuss it!
Matthijs Hollemans writes:

Software is developed at different levels of abstraction that are ordered in a hierarchy: first there is the namespace which contains packages, packages contain classes, classes have members fields and methods, and methods have statements. (In Eidola, this is the container hierarchy. -PPC)

I think this hierarchical organization makes this ideal for a "zooming interface." (See also Jef Raskin's book "The Humane Interface.") The class level is like UML (but simpler, see the picture), while the method level is like Structograms (PSDs, Nassi-Schneiderman, DIN 66261). If you zoom out, you seem more things but each in less detail; if you zoom in you'll see less things, but each in more detail.

Class-level view

Method-level view


(Click images to enlarge)

Matthijs has done a very basic first implementation of the idea! Wow!
Release Notes Download

The mouse wheel zooms in and out (fluidly, of course). If you hold the third mouse button (== mouse wheel) and drag the mouse, you'll pan. Right mouse button brings up the context menu, and left mouse button selects/activates as usual. Alternatively, you can press CTRL + LMB and drag to zoom, and ALT + LMB + drag to pan.

Having all of this graphical also makes it easy to integrate a refactoring tool into the notation: simply move a method from one class to another, or more one access level (e.g. public) to another (e.g. private), and so on.

Some unresolved issues:

  • How do you show HAS-A relationship between classes? (Arrow from member field to other class?)

  • How do you show comments inside methods? I'd like all comments to show up as they do on the class level.
Discuss it!
Next: Possible Eidola Notations - The Fibrani Brace >>
 
Copyright 2001 Matthijs Hollemans