Design rules are rules a designer can follow in order to increase the usability of the eventual software product.
Design rules for interactive systems can be supported by psychological, cognitive , sociological, economic or computational theory. Normally the designers do not possess background knowledge regarding psychology, cognitive science, ergonomics, sociology, business or computer science which is necessary to understand the consequences of those theories in the instance of the design they are creating. The design rules are used to apply the theory in practice.
There is a distinction between principles, standards and guidelines.
- Principles: derived from the knowledge of the physiological, computational and sociological aspects. Independent from the Technology.Focus on human elements.Not good for specific design.
- Guidelines: less abstract and often more technology oriented. Designer should know theoretical evidence.
- Standards: will have less of need to know the underlying theory. Cary much higher level of authority.
Principles to support usability
The most abstract design rules are general principles, which can be applied to the design of an interactive system in order to promote its usability.
These principles are divided into three main categories:
Learnability means the ease which new users can begin effective interaction and achieve maximal performance
Following specific principles support learnability:
Predictability is the support for the user to determine the effect of future action based on past interaction history (can I ‘tell’ what will happen based on what I have gone through in past?).
Predictability is a user-centered concept; it is deterministic behavior from the perspective of the user. It is not enough for the behavior of the computer system to be determined completely from its state, as the user must be able to take advantage of the determinism.
Predictability deals with the user’s ability to determine the effect of operations on the system. Another form of predictability has to do with the user’s ability to know which operations can be performed.
If an operation can be performed, then there may be some perceivable indication of this to the user. This principle supports the superiority in humans of recognition over recall. Without it, the user will have to remember when he can perform the operation and when he cannot. Likewise, the user should understand from the interface if an operation he might like to invoke cannot be performed.
Synthesizability is the support for the user to assess the effect of past operations on the current state (can I ‘tell’ why I am here based on what I have gone through in the past?).
When an operation changes some aspect of the internal state, it is important that the change is seen by the user. The principle of honesty relates to the ability of the user interface to provide an observable and informative account of such change.
Familiarity is the the extent to which a user’s knowledge and experience in other real-world or computer-based domains can be applied when interacting with a new system.
Generalizability is the support for the user to extend knowledge of specific interaction within and across applications to other similar situations.
Generalization can be applied to situations in which the user wants to apply knowledge that helps achieve one particular goal to another situation where the goal is in some way similar. Generalizability can be seen as a form of consistency
Consistency is about making elements uniform- having them look and behave the same way.
Consistency is probably the most widely mentioned principle in the literature on user interface design. Consistency must be applied relative to something. Thus we have consistency in command naming, or consistency in command/argument invocation.
Many other principles can be reduced to qualified instances of consistency. Hence, familiarity can be considered as consist-ency with respect to past real-world experience, and generalizability as consistency with respect to experience with the same system or set of applications on the same platform.
Flexibility is the multiplicity of ways in which the user and system exchange information.
Following principles follow flexibility:
- Dialog initiative
- Task migratability
Dialog initiative is about allowing the user freedom from artificial constraints on the input dialog imposed by the system.
When considering the interaction between user and system as a dialog between partners, it is important to consider which partner has the initiative in the conservation.
The system can initiate all dialog, in which case the user simply responds to requests for information. We call this type of dialog system pre-emptive.
When user initiates the dialog we call it user pre-emptive. The system may control the dialog to the extent that it prohibits the user from initiating any other desired communication concerning the current task or some other task the user would like to perform. From the user’s perspective,a system-driven interaction hinders flexibility whereas a user-driven interaction favors it
Multi-threading is the ability of the system to support user interaction pertaining to more than one task at a time.
A thread of a dialog is a coherent subset of that dialog. In the user–system dialog, we can consider a thread to be that part of the dialog that relates to a given user task.Multi-threading of the user–system dialog allows for interaction to support more than one task at a time. Concurrent multi-threading allows simultaneous communication of information pertaining to separate tasks. Interleaved multi-threading permits a temporal overlap between separate tasks, but stipulates that at any given instant the dialog is restricted to a single task.
Task migratability is the ability to transfer control for execution of tasks between the system and the user.
It should be possible for the user or system to pass the control of a task over to the other or promote the task from a completely internalized one to a shared and cooperative venture. Hence, a task that is internal to one can becomeinternal to the other or shared between the two partners
Substitutivity means the extent to which an application allows equivalent input and output values to be substituted for each other
Input substitutivity contributes towards flexibility by allowing the user to choose whichever form best suits the needs of the moment
Representation multiplicity illustrates flexibility for state rendering. For example, the temperature of a physical object over a period of time can be presented as a digital thermometer if the actual numerical value is important or as a graph if it is only important to notice trends. It might even be desirable to make these representations simultaneously available to the user. Each representation provides a perspective on the internal state of the system. At a given time, the user is free to consider the representations that are most suitable for the current task.
Equal opportunity blurs the distinction between input and output at the interface.The user has the choice of what is input and what is output; in addition, output can be reused as input.
Customizability is the modifiability of the user interface by the user or the system.
Has two main concepts regarding customizability:
- Adaptability: refers to the user’s ability to adjust the form of input and output. This customization could be very limited, with the user only allowed to adjust the position of soft buttons on the screen or redefine command names. This type of modifiability, which is restricted to the surface of the interface, is referred to as lexical customization. The overall structure of the interaction is kept unchanged.
- Adaptivity: is automatic customization of the user interface by the system.Decisions for adaptation can be based on user expertise or observed repetition of certain task sequences.
The distinction between adaptivity and adaptability is that theuser plays an explicit role in adaptability, whereas his role in an adaptive interface is more implicit.
Robustness is the level of support provided to the user in determining successful achievement and assessment of goals.
These principle support robustness:
- Task conformance
Observability allows the user to evaluate the internal state of the system by means of its perceivable representation at the interface.
Observability can be discussed through five other principles:
- Browsability: allows the user to explore the current internal state of the system via the limited view provided at the interface.
- Defaults: assist the user by passive recall.
- Reachability: refers to the possibility of navigation through the observable system states.
- Persistence: deals with the duration of the effect of a communication act and the ability of the user to make use of that effect
- operation visibility: refers to how the user is shown the availability of operations that can be performed next
Recoverability is the ability of the user to take corrective action once an error has been recognized.
There are two directions in which recovery can occur, forward or backward.
Forward error recovery involves the acceptance of the current state and negotiation from that state towards the desired state. Forward error recovery may be the only possibility for recovery if the effects of interaction are not revocable.
Backward error recovery is an attempt to undo the effects of previous interaction in order to return to a prior state before proceeding.
Recovery can be initiated by the system or by the user. When performed by the system, recoverability is connected to the notions of fault tolerance, safety, reliability and dependability
When recovery is initiated by the user, it is important that it determines the intent of the user’s recovery actions; that is, whether he desires forward (negotiation) or backward (using undo/redo actions) corrective action
Responsiveness measures the rate of communication between the system and the user.
Response time is generally defined as the duration of time needed by the system to express state changes to the user. In general, short duration s and instantaneous response times are desirable. Instantaneous means that the user perceives system reactions as immediate. But even in situations in which an instantaneous response cannot be obtained, there must be some indication to the user that the system has received the request for action and is working on a response
Task conformance is the degree to which the system services support all of the tasks the user wishes to perform and in the way that the user understands them
There are two aspects of task conformance
- Task completeness: refers to the level to which the system services can be mapped onto allof the user tasks. However, it is quite possible that the provision of a new computer-based tool will suggest to a user some tasks that were not even conceivable before the tool. Therefore, it is also desirable that the system services be suitably general so that the user can define new tasks
- Task adequacy: addresses the user’s understanding of the tasks.
It is not sufficient that the computer system fully implements some set of computational services that were identified at early specification stages. It is essential that the system allows the user to achieve any of the desired tasks in a particular work domain as identified by a task analysis that precedes system specification.
Standards and Guideline for Interactive systems
Standards for interactive system design are usually set by national or international bodies to ensure compliance with a set of design rules by a large community.Standards can apply specifically to either the hardware or the software used to build the interactive system.
A Guideline is a rule about designing interactive systems.
A major concern for all of the general guidelines is the subject of dialog styles,which in the context of these guidelines pertains to the means by which the user communicates input to the system, including how the system presents the communication device.
Most guidelines are applicable for the implementation of any one of these dialog styles in isolation. It is also important to consider the possibility of mixing dialog styles in one application.
Shneiderman’s Eight Golden Rules of Interface Design
Shneiderman’s eight golden rules provide a convenient and succinct summary of the key principles of interface design.
- Strive for consistency in action sequences, layout, terminology, command use and so on.
- Enable frequent users to use shortcuts, such as abbreviations, special key sequences and macros, to perform regular, familiar actions more quickly.
- Offer informative feedback for every user action, at a level appropriate to the magnitude of the action.
- Design dialogs to yield closure so that the user knows when they have completed a task.
- Offer error prevention and simple error handling so that, ideally, users are prevented from making mistakes and, if they do, they are offered clear and informative instructions to enable them to recover.
- Permit easy reversal of actions in order to relieve anxiety and encourage exploration, since the user knows that he can always return to the previous state.
- Support internal locus of control so that the user is in control of the system, which responds to his actions.
- Reduce short-term memory load by keeping displays simple, consolidating multiple page displays and providing time for learning action sequences.
These rules provide a useful shorthand for the more detailed sets of principles described earlier. Like those principles, they are not applicable to every eventuality and need to be interpreted for each new situation. However, they are broadly useful and their application will only help most design projects.
Norman’s Seven Principles for Transforming Difficult Tasks into Simple Ones
Norman’s seven principles are:
- Use both knowledge in the world and knowledge in the head. People work better when the knowledge they need to do a task is available externally — either explicitly or through the constraints imposed by the environment. But experts also need to be able to internalize regular tasks to increase their efficiency. So systems should provide the necessary knowledge within the environment and their operation should be transparent to support the user in building an appropriate mental model of what is going on.
- Simplify the structure of tasks. There are a number of ways to simplify the structure of tasks. One is to provide mental aids to help the user keep track of stages in a more complex task. Another is to use technology to provide the user with more information about the task and better feedback. A third approach is to automate the task or part of it, as long as this does not detract from the user’s experience. The final approach to simplification is to change the nature of the task so that it becomes something more simple. In all of this, it is important not to take control away from the user.
- Make things visible: bridge the gulfs of execution and evaluation. The interface should make clear what the system can do and how this is achieved, and should enable the user to see clearly the effect of their actions on the system.
- Get the mappings right. User intentions should map clearly onto system controls.User actions should map clearly onto system events. So it should be clear what does what and by how much. Controls, sliders and dials should reflect the task –so a small movement has a small effect and a large movement a large effect.
- Exploit the power of constraints Constraints are things in the world that make it impossible to do anything but the correct action in the correct way. A simple example is a jigsaw puzzle, where the pieces only fit together in one way. Here the physical constraints of the design guide the user to complete the task.
- Design for error. Anticipate the errors the user could make and design recovery into the system.
- When all else fails, standardize. If there are no natural mappings then arbitrary mappings should be standardized so that users only have to learn them once.