User Interface Design Research Notes
User Interface Design
- Focus on designing graphical interfaces for software systems.
Importance of User Interface
- System users often judge a software system by its interface.
- A poorly designed interface can lead users to make catastrophic errors.
- Poor UI design is a significant reason why many software systems are never utilized.
User-Centered Design
- The software development process should prioritize user needs.
- Understand Users: Recognize who the users are and what tasks they perform.
- Design Based on Tasks: Create software that directly addresses user tasks.
- Involve Users in Decision-Making: User input should guide design decisions.
- Prototype Testing: Users should test prototypes, online help, and drafts of user manuals.
Benefits of Focusing on Users
- Reduces:
- Training and support costs
- Learning time for the system
- Development costs by focusing on necessary features
- Future costs related to modifying the system
- Improves efficiency, attractiveness, and user satisfaction leading to a greater willingness to adopt the system.
Understanding Users
- Characteristics of users that software engineers must understand:
- Goals for using the system.
- Typical patterns of use.
- Demographics (age, occupation, etc.).
- Knowledge of the domain and technology.
- Physical ability and constraints.
- Psychological traits and emotional responses.
User Interface Design Basics
- Should be integrated with other software engineering activities.
- Conduct use case analyses to define necessary UI tasks.
- Use iterative prototyping to refine these UI tasks, leading to clear requirements.
Usability vs. Utility
- Utility: Does the system provide capabilities to achieve user goals?
- Usability: Can users easily learn and operate these capabilities?
- Both are crucial and must be assessed based on user context.
Aspects of Usability
- Learnability: Speed for new users to become proficient.
- Efficiency of Use: Speed for expert users to complete tasks.
- Error Handling: How well the system prevents, detects, and corrects errors.
- Acceptability: User satisfaction regarding the system.
Basic Terminology in UI Design
- Dialog: Interaction window with the user that isn’t the main UI.
- Control/Widget: Components within the user interface.
- Affordance: Actions users can take at any time.
- State: Information displayed at any dialog stage.
- Mode: Restrictions on user actions within the interface.
- Feedback: System responses to user actions.
Usability Principles
- Do not solely rely on usability guidelines; always test with actual users.
- Base UI on users’ tasks through use case analysis.
- Simplify action sequences to achieve tasks.
- Ensure visibility of available user commands.
- Provide detailed feedback and effective error messages.
- Allow users the ability to undo actions and easily navigate.
- Maintain adequate response times, ideally under one second for most actions.
- Use clear encoding techniques for user understanding.
- Keep the UI uncluttered and well-organized.
- Consider the needs of diverse user groups, including those with disabilities.
- Provide accessible help and organized documentation.
- Maintain consistency in layouts and graphic designs.
Encoding Techniques
- Various formats to convey information:
- Text and fonts
- Icons and photographs
- Diagrams, colors, and groupings
- Sounds, animations, and video.
UI Design Principles
- UI design must account for user needs, experiences, and capabilities.
- Users should participate in design processes, which should include iterative prototyping.
- Cognitive factors like short-term memory should guide design decisions.
Common Design Errors
- Lack of consistency.
- Excessive memorization required from users.
- Inadequate guidance or help.
- Poor response times or user unfriendliness.
Evaluating User Interfaces
- Heuristic Evaluation: Identify usability defects in use cases and document findings.
- User Observation: Select representative users, observe their interactions, and debrief afterward to capture usability challenges.