I've been struggling to get my HTML editor alive again, after something mysteriously assassinated the Internet Assistant on my MS Word. Looks like I'll have to do a cold re-install of Word. Meanwhile you guys suffer through this handmade HTML.
The challenge. A lightweight reading of these chapters leads one to the conclusion that WIMP (Windows, Icons, Mice and Pointing) is the ultimate user interface (UI). I emphatically don't believe this, and expect us to constantly seek better tools for specific environments.
Levels of discussion:
Task level , choose one task such as selection, then compare function keys vs. menu or icon selection with a mouse.
Dialogue level, consider sequences tasks that collectively make up a "conversation" with the computer. Who (which) of you has the initiative at each step, etc?
Device Categories
Locators return 2d or 3d coordinate values, or can be used for selection. They include absolute devices such as graphics tablets, and relative devices such as mice. The control/display ratio C/D is the amount of pointer movement per unit of control movement. C/D can vary with control velocity; this is common with trackpads, due to their small size.
The Spaceball is a 3d relative locator that does not actually move; uses strain gauges. Quite frustrating until you get used to it.
Keyboards include much more than just the QWERTY board. For instance the Dvorak keyboard was ergonomically designed to balance tasks (QWERTY kbd puts almost all common letter in left hand, lots of one hand sequences). For years folks claimed Dvorak was 2 to 3x faster, but more recent studies have shown that the difference is not quite that great - (Dvorak cooked some of his data.)
Valuators include knobs, sliders, etc. Knobs can have unbounded range by going 'round and 'round.
Choice devices such as function keys are popular.
Other Options include voice recognition, data gloves, Myron Krueger's Mandala environment, etc. In Mandala, a video camera picks up the user's silhouette and projects that image full-size on a wall, with additional computer generated imagery.
The rest of this chapter is not very informative; let's cut to Chapter 9.
Direct Manipulation means that the objects of concern (directories, windows etc.) can be moved as though they were physical objects, and that physical motion stands for logical operations.
Iconic User Interfaces use pictures to stand for software objects (programs, data). It is extremely hard to design icons that most people will recognize, particularly if they stand for operations the users may not be familiar with.
The most useful part of this chapter is the following Design Principles.
In-class project: describe with a finite state diagram the transitions and states associated with driving an automatic transmission.
A mode is a state of a user interface in which only a subset of the commands can be performed. Modes organize a user's work; more often, though, they are a result of software design constraints. The difference between a word processing app and a page layout app has more to do with the convenience of the programmer than of the user, methinks. (My wife just uses Pagemaker for all her word processing....)
Orthogonality is an important principle. For instance, my conference management software has a single state variable that determines if output goes to screen or printer. This masks the fact that in the software there are actually a variety of different ways of producing output (labels, mail lists, tickets, screens, etc.)
Context Sensitivity means that the "same" command may have different effects in different modes or situations. "Delete" may mean to delete one icon in a scene editor's graphical interaction menu; or to delete a file in the editor's file menu. Any time this kind of 'overloading' is done, there must be explicit warnings as to what you are deleting or changing.
I don't want to say much about this chapter, because we already spent a lot of time struggling with Windows' event mechanisms. There are a few notations I do want us to learn, however, that are often used to describe user interfaces.
Backus-Naur form is a kind of "universal grammar" for expressing the syntax of programming languages of all sorts. In the following example, all-caps items represent atomic actions - that is, actions without further sub-parts. the lowercase symbols such as <create> are distinct from the uppercase actions such as CREATE. Here's the example, excerpted from page 461 of fvd.
<command>::= <create> | <polyline>|<delete>|<move>|STOP <create>::=CREATE + <type> + <position> <type>::=SQUARE | TRIANGLE <position>::=NUMBER + NUMBER <polyline>::= POLYLINE + <vertex list> + END_POLY ...etc...
Petri Nets (PN) are a much more powerful cousin of the finite state automata that you've all (I hope!) seen in your discrete structures classes. The Petri net is almost as powerful as a Turing machine; with a very small addition (a NOT gate, in effect), they become Turing-powerful.
The basic elements of a PN are places, transitions and tokens. Transitions have lines called inputs leading to them from places, and can only "fire" when each input leads from a place containing at least one token. PNs with negation use a symbol such as a dot next to an input that will only allow the transition to fire if the place has NO tokens in it. Here's a diagram of a simple PN that takes in a coin and produces a soft drink, if it has any drinks left. If not, it rejects the coin.
Petri Nets are more powerful than finite automata because they can count any number of objects; e. g. 1000 coke machines and 600 coins. A FSN is limited by its number of states.
Augmented Transition Networks are the third formalism we want to study. Running out of time for making these notes; please see page 462 of the text.
The ATN's transitions refer to all kinds of external state objects; in a way, an ATN's state is less clearly expressed than that of a PN. On the other hand, the logic of the conditions for transitions can be clearly stated in Boolean logic, expressing any conditions the author wishes to describe.
When we begin to design our Lab 3 user interface, we will select one or more of these formalisms to express its logical structure.