Chapter 5 – Transition to Design Flashcards
Design Rules
• Principles of usability (*) - General understanding • Standards and guidelines - Direction for design • Design patterns - Capture and reuse design knowledge
Types of Design Rules
• Principles (should have) - Abstract design rules - Low authority (not a must) - High generality - Example: ~ Interface should be easy to navigate • Standards - Specific design rules ~ Very specific on certain things - High authority (a must) - Limited application - Example: ~ Use RG#1010D0 for home links • Guidelines - Lower authority (not a must) - More general application - Example: ~ Use color to highlight links
Principles to support usability
• Learnability (how easy for non-tech savvy person to learn) -Ease with which new users can: ~ Begin effective interaction ~ Achieve maximal performance • Flexibility (more than one way) -Multiplicity of ways ~ The user and system exchange information • Robustness (support system) -Level of support provided the user in: ~ Determining successful achievement ~ Assessment of goal-directed behavior
Principles of learnability
• Predictability - Determining effect of future actions based on: ~ Past interaction history - Operation visibility • Synthesizability - Assessing: ~ The effect of past actions - Immediate vs eventual honesty • Familiarity - How prior knowledge applies to new system - Guessability; affordance • Generalizability - Extending specific interaction knowledge ~ To new situations • Consistency - Likeness in input/output behavior ~ Arising from similar situations or task objectives
Principles of Flexibility
• Dialogue initiative (allow the user to do)
- Freedom
~ From system imposed constraints on input dialogue
- System vs user pre-emptiveness
• Multithreading (perform more than 1 task)
- Ability of system to:
~ Support user interaction for more than one task at a time
- Concurrent vs interleaving; multimodality
• Task migratability (transferring files)
- Passing responsibility for task execution between:
~ User
~ System
- Allowing equivalent values of input and output
~ To be substituted for each other
• Customizability
- Modifiability of the user interface by:
~ User (adaptability)
~ System (adaptivity)
Principles of robustness (stability)
- Observability
- Recoverability
- Responsiveness
- Task conformance
HCI design patterns (*)
• Human-computer interaction (HCI)
- Relationship between:
~ Computers
~ People who use them to perform their jobs
• An approach to reusing knowledge
- About successful design solutions
• Pattern:
- An invariant solution to a recurrent problem within a specific context
- Do not exist in isolation
- Linked to other patterns in languages
~ Enable complete designs to be generated
• Examples (*):
- Light on Two Sides of Every Room (architecture) – LOTSOR
- Go back to a safe place (HCI)
Characteristics of patterns
• Capture: - Design practice (not theory) - Essential common properties ~ Of good examples of design • Represent: - Design knowledge at varying levels: ~ Social ~ Organizational ~ Conceptual ~ Detailed • Embody values - Can express what is humane in interface design • Are: - Intuitive - Readable ~ Can be used for communication between all stakeholders • Pattern language: - Should be generative - Assist in the development of complete designs
System Prototyping
Prototyping: Rapid development of a system
Uses of system prototypes (*)
• Principal use:
- Help customers and developers understand the requirements for the system
• Requirements elicitation:
- Users can experiment with a prototype
~ To see how the system supports their work
• Requirements validation:
- The prototype can:
~ Reveal errors and omissions in the requirements
• Can be considered as a risk reduction activity
- Which reduces requirements risks
Prototyping benefits (*)
• Misunderstandings between: - Software users - Developers ~ Are exposed • Missing & confusing services: - Detected - Identified • Working system: - Available early in the process • Prototype: - Serve as a basis for: ~ Deriving a system specification • System can: - Support user training - System testing • Improved: - System usability - Design quality - Maintainability • Closer match to the system needed (confirmation/close enough) • Reduced overall development effort
Prototyping in the software process (*)
• Evolutionary prototyping (show user & refine the prototype)
- An approach to system develop where:
~ An initial prototype is produced and refined through a number of stages to the final system
• Throw-away prototyping
- A practical implementation of the system is produced to help discover requirements problems
~ And then discard the system is then developed using some other development process
Prototyping objectives
• Evolutionary prototyping:
- Deliver a working system to end-users - Development starts with those requirements which are best understood
• Throw-away prototyping:
- Validate or derive the system requirements - Development starts with those requirements which are poorly understood
Advantages of evolutionary prototyping
• Accelerated delivery of the system
- Rapid delivery and deployment are sometimes more important than fuctionality or long-term software maintainability
• User engagement with the system
- Not only is the system more likely to meet user requirements, they are more likely to commit to the use of the system.
Disadvantages of evolutionary prototyping
• Management problems
- Existing management processes:
~Assume a waterfall model of development
• Maintenance problems - Continual change: ~Tends to corrupt system structure - Long-term maintenance: ~ Expensive
• Contractual problems