The currently popular principles of grpahical user interface design were first popularized by the MacIntosh user interface which borrowed ideas from an experimental system at Xerox. Such systems are characterized as being WIMP systems because they are based on four basic components:
In elementary English classes one learns that a metaphor is a phrase using the words "like" or "as" to compare one thing to another, often in a symbolic manner. For example, "pretty as a picture" or "riding like the wind."
In a GUI, the appearance of an object on the sccreen can be made to look like the a physical object in order to imply that it will behave as if it were such an object.
The use of metaphors in a GUI reduce training by providing a clue to the user what the on-screen object might be used for and how it might be manipulated. The classical metaphors are that of the desktop, the filing cabinet, and the garbage can.
Once one accepts the metaphorical interpretation of on-screen objects one can use the pointer to interact with them just as one might use one's (possibly tool-enhanced) hands to interact with their physical counterparts:
Better known as "see and point," the point and grunt principle is simply the principle that users interact with on-screen objects with the pointer. I have a low opinion of this principle because I blame it for lowering the cognitive functioning of users. It reduces users to the same level as children who have not yet learned to speak. While simple, it lacks expressiveness.
Objects with similar appearance should have similar behavior and function. The consistincy principle is not symmetric. It does not require objects with similar behavior and function to have similar appearance.
"What You See Is What You Get" is the principle that on-screen representation of objects should be identical to off-screen rendering to paper.
The principle that "the user is in control" says that the user should be given the widest conceivable range of choice for the next action to take as opposed to having the computer lead a dialog that specifies only a narrow range of options at any point.
Clear and immediate feedback should be provided on any action initiated by the user. This principle interacts with the user control principle in that the more control a user has over the details of an action, the more feedback and dialog is required. Lack of feedback and dialog, while simpler and easier, may also indicate a lack of user control.
User actions should generally be reversable and the user should be warned if they attempt an irreversable action. The canonical example is attempting to exit a program without saving edits to a disk file. In this situation, one expects and gets a warning. On the other hand, it can be annoying to be asked if one really wants to delete a file when one intentionally is making a file deletion.
The graphic design elements used in an interface should be simple and clean: pleasent to look at and easy to understand.
A mode is a program state that specifies a set of program actions that correspond to user actions. A given user action should always correspond to the same program action. In particular, a program with multiple modes will limit the set of actions that the user may perform at a given time. This principle is essentially a corallary of the principle of user control: both state that the user should be not be limited in what he/she can do at any moment in time.
The Unix "vi" text editor is widely hated specifically because it is modal. It has a text insert mode and a command mode. Modality is typically the result of constraints on the expressiveness of the user interface. In the case of "vi," the constraint was that it had to work with a text terminal with no keypad or arrow keys. Thus, the keys for the letters h, j, k, and l are used in place of the arrow keys while in command mode.