1.
Easily drawn by hand. The basic vocabulary should lend itself
to pencil sketching and to easy rendering on a white board using
markers or a combination of markers and sticky notes.
2.
Easily implemented in an electronic tool. Like existing UML notations,
the new notation should lend itself to rendering in a computer
based tool and manipulation in a WYSIWYG environment.
3.
Visually clean. Elements should be sufficient to communicate their
meaning without over elaboration. They should be sufficiently
distinct to avoid confusion or misinterpretation of hand drawn
models.
4.
Sufficient vocabulary to express interaction designs without being
overly verbose. Generally, only 1 method should be provided to
convey any single concept. For example, UML Class Diagrams have
two methods to show an Interface. This should be avoided if possible.
5.
The language should allow for the expression of User Interface
Objects and Classes of Objects.
6.
Objects or Classes can have attributes e.g. dimensions.
7.
There may be a number of ways for expressing attributes e.g. dimensions
may be expressed in absolute or relative terms
8.
It should allow for the expression of basic navigation between
elements or objects.
9.
Navigation can be conditional so the language must be able to
cope with branches in the navigation flow.
10.
It should allow for the expression of actions. An action is the
occurrence of system behavior which may change the state of the
user interface or the underlying business logic, but may not or
need not result in a navigation to another element.
For
example, a view displaying a mortgage calculator may display edit
boxes for Loan Amount, Interest Rate and so forth and a Button
which performs the action "calculate", the result of
pressing the button causes a new Monthly Payment Amount to be
calculated and displayed. This is a description of an Action in
the user interface.
11.
A number of basic principles from Object Oriented concepts should
be adopted into the language. It should allow for the concept
of containment of Objects within other Objects.
12.
Further it should allow for aggregation of Objects
13.
All Objects or Classes should be visual, audio or of other sensual
stimulate and should be distinct from Business Objects. In other
words, there should be a clearly understood difference between
a Class in a UML Class Diagram and a Visual Element Class in a
Navigation Model Diagram
14.
The language should allow for inheritance between classes of visual
elements. For example, a ComboBox which allows typed input as
well as selection from a drop down list could be seen as a subclass
of DropDownList or inheriting the behavior from DropDownList.
15.
The language should be easily mappable to/from a basic storyboard
or mockup of a user interface. The storyboard being a precursor
and predecessor of the Navigation Model which is a further abstraction.
16.
The Navigation Model should be easily and robustly mapped to a
Statechart of the Implementation Model (described below).
17.
The Navigation Model should be easily mapped against a Content
Model [Constantine 99] or Content elements should be an active
part of the vocabulary of the Navigation Model.
18.
There should be a method for mapping Actions and Visual Elements
(either User Interface Objects or Content Objects) against Business
Objects in a UML Class Diagram to show from where the behavior
and the data is sourced. This will ease the task of mapping the
Navigation Model into an Implementation Model and may eventually
facilitate the automatic creation and partial population of source
code, as is currently available through many UML Modeling tools.
Furthermore, this may eventually facilitate simultaneous round-trip
engineering of user interface code and design in a similar fashion
to the simultaneous round-trip engineering offered in the Together
UML tool for business objects through UML Class and Sequence Diagrams.
19.
Multiple threads of operation. The notation must be able to communicate
where multiple active navigation flows are possible. It should
be able to show where a new thread begins and what might bring
it to an end.
20.
A Navigation modeling language must be able to convey the notion
of a Unit of Work, clearly indicating the elements which are within
a Unit of Work and the navigations which move the system into
and out of a Unit of Work.
21.
Finally, a navigation map needs to show recovery from exceptions
including error catching screens or views.