We will adopt some basic design principles from various sources. For now, We are using Jakob Nielsen's guidelines on error messages 1:

This should prove a bit more difficult considering that much of the work is done by processing modules implemented by the Domain Developer. We'll have to provide simple methods for Domain Developers to meet these goals.

The interface guidelines will follow Jakob Nielsen's general guidelines for interface usability, plus additional rules that must be followed in the project to get the simplicity we require. 2 - 1994 of relevance to Generic Interface Generator are:

Visibility of system status

Feedback should be immediate, complete, minimal, and provide visual cues to help the user in their task. Altering available features depending context is also beneficial.

Match between system and real world

The system should use the same terminology as what the user is familiar with. A lot of this will depend on the Domain Designer, but we should provide tools to help. Also, the domain languages used should not be so wilding different from the target concepts that they are unfamiliar.

User control and freedom

Actions should be reversible, and the user should be able to make mistakes without getting into trouble.

Consistency and standards

The key with this is that similar objects should look and act the same, and that standards are created defining what the system should look like.

Error prevention

Design the interface so that errors are prevented in the first place. This is hare to do in Domain Modeling since so much of the activity depends on the interpretation of the model by the Model User and Domain Designer.

Recognition rather than recall

Users should not have to memorize model contents, but rather see what is available and work with that. For example, use a "see and point" rather than a "remember and type" mode of operation.

Flexibility and efficiency of use

Since this is a system targeted at expert users in the programming field, we will need to provide capabilities that help them work faster after they learn the basics. Such things as accelerators, augmenting with scripting (the whole system is done this way really), and macro capabilities are essential.

With these standards, the interface should be very easy to use and will follow a consistent model. It should not be hard to follow these guidlines, since there will be a very small number of interface elements.

These standards should prove very challenging with this project since quite a lot of these decisions are in the hands of Action Developers. ObveRsive will need to provide support for Action Developers to interact with the user and the project will need to provide many examples of how to maintain these goals.

Also, the fact that R is a bit more complicated than your average desktop application makes some of these very difficult. The requirement of "Recognition rather than recall" is possible with Actions Scripts that hide much of the details of the R language and provide this very type of interface. It is fairly difficult to meet this requirement with the R Console portion of obveRsive since that interface relies on the user's memory just like traditional R does (and is probably one of the reasons R can be difficult).


Last edited on Wednesday, October 16, 2002 11:32:02 pm.


Edit PageHistory Diff Info