HCI in the Software Process: Comprehensive University Study Notes

Fundamental Concepts of Interactive Design

Design is defined as the process of achieving goals within specific constraints. This focus highlights three primary areas:

  • Goals: Designers must determine the purpose of the design, the intended audience, and why they want the product. For instance, designing a wireless personal movie player involves targeting young, affluent users who want to watch and download movies on the move and potentially share that experience with friends.

  • Constraints: These include materials, standards, cost, time, and health/safety issues. For a personal movie player, constraints might involve weatherproofing (rain resistance), video standards for downloads, and copyright protection mechanisms.

  • Trade-offs: Design requires choosing which goals or constraints can be relaxed to satisfy others. An example is an eye-mounted video display; while it offers the most stable image for walking, it prevents sharing the experience with friends and poses safety risks during tasks like crossing the road.

The Interaction Design Process

The golden rule of design is to understand your materials. In Human-Computer Interaction (HCI), these materials are the human and the computer:

  • Computers: Understanding limitations, capacities, tools, and platforms.

  • People: Understanding psychological aspects, social factors, and the nature of human error.

In some industrial contexts, usability is mistakenly viewed as mere testing (fixing problems at the end) rather than a fundamental design principle from the beginning. The interaction design process consists of four main phases with an iteration loop:

  • Requirements: Establishing what is needed and what is currently happening. Techniques include interviews, videotaping, examining documents/objects, and direct observation.

  • Analysis: Ordering the results of observations and interviews to communicate key issues to designers.

  • Design: Moving from "what is wanted" to "how to do it" using rules, guidelines, and design principles.

  • Iteration and Prototyping: Because humans are complex, early versions of systems (prototypes) are produced and evaluated with real users to find improvements. Paper designs may be used, but real feedback requires functional prototypes.

  • Implementation and Deployment: Creating the final product, including code, hardware, documentation, and manuals.

User-Centered Design and Scenarios

The primary directive of interaction design is to "know your users."

  • Recognizing Differences: Designers must realize they are not the main user. Developers (often predominantly male) may find a task "obvious," but users may not. Diversity in development teams, specifically including women who often possess better empathetic skills, can help.

  • Engagement Strategies: Talking to users via structured interviews, open-ended discussions, or participatory design (involving users fully in the process) is essential. Watching users is equally important to see actual practices that may counter official corporate policy. Methods like ethnography or contextual inquiry are used here.

  • Imagination: When direct user contact is impossible (due to cost, time, or sheer volume), designers must imagine user experiences.

Scenarios as Design Tools: Scenarios are rich stories of interaction used as a flexible and powerful design representation.

  • Functions: They communicate abstract ideas through concrete examples, validate design models (playing scenarios against task/dialog models), and express the dynamics of system behavior.

  • Linearity: Life and time are linear, making stories easy to understand. However, simple scenarios often fail to show alternative paths or unintended user actions.

Navigation and Screen Design

Interaction occurs at several levels: Widgets (menus/buttons), Screens (logical groupings), Navigation (interaction flow), and Environment (file systems/other apps).

Structure of Interaction:

  • Local Structure: Focuses on the user's progress from a single screen. Key requirements: knowing your current location, available actions, destinations, and history.

  • Global Structure: The way various screens or device states link together, often via hierarchical organization (functional, role-based, or user-type based) or dialog patterns.

Dialog in HCI: This refers to the pattern of interactions between a user and a system.

  • Pattern Paradigm: Like a marriage ceremony (Minister-Man-Minister-Woman-Minister), dialog follows a general flow with blanks (instantiations) specific to each session.

  • Network Diagrams: These show the principal states linked with arrows, illustrating what happens when, including branches and loops.

Layout Principles:

  • Grouping and Structure: Items that belong together logically (e.g., billing vs. delivery details) should be grouped physically using spatial separation, lines, boxes, or font styles.

  • Order: The screen should suggest a natural reading/filling order.

  • Alignment: Text lists are left-aligned (for left-to-right readers). Numbers are right-aligned (for integers) or decimal-aligned to indicate magnitude (mini-histograms). Multiple column lists require wide enough gutters, creating a trade-off between column alignment and row relationship visibility.

  • White Space (Counter): The space between elements is as important as the content. Designers use "counter-shapes" to assess layout balance. Techniques include blurring vision to focus on broad structure.

User Control and Affordances:

  • Entry Boxes: Labels can be right-justified or placed above fields to prevent jagged alignment of entry boxes.

  • Affordances: Physical shapes suggest actions (handles for pulling, buttons for pushing). In digital spaces, these are often learned (e.g., icons, double-clicking). Designers must not depict real-world objects in contexts where their natural affordance fails.

The Software Life Cycle and Usability Engineering

Software Life Cycle Activities:

  • Requirements Specification: Moving from ambiguous natural language to precise executable semantics.

  • Architectural Design: High-level decomposition into components. Focuses on functional and non-functional requirements (efficiency, reliability, safety).

  • Detailed Design: Refinement of components for implementation.

  • Coding/Unit Testing: Implementation and verification of individual components.

  • Maintenance: Correcting errors and revising services post-release. This activity occupies the majority of a product's lifetime.

Validation and Verification:

  • Verification: Designing the "thing right" (internal consistency and completeness between adjacent activities).

  • Validation: Designing the "right thing" (meeting high-level customer requirements).

  • The Formality Gap: The inevitable disparity between the ambiguous real world and structured, formal design notations. Validation relies on subjective proof and expert knowledge (psychological/cognitive).

Usability Engineering: This process involves defining explicit usability metrics early on.

  • Measuring Attributes: For example, "backward recoverability" (undo) is measured by the number of actions required (nn).

  • Target Levels:

    1. Now Level: Value in existing systems (00 undo functionality).

    2. Worst Case: Lowest acceptable measure (e.g., undo taking same number of steps as the mistake).

    3. Planned Level: Target for the design (e.g., 22 actions).

    4. Best Case: Best possible given technology (e.g., 11 action).

  • ISO 9241 Definition: Usability is the Effectiveness (accuracy/completeness), Efficiency (resources expended), and Satisfaction measured for specific users in specific environments.

Iterative Design and Prototyping

Iterative design is a purposeful process that cyclicly improves designs through prototypes.

Approaches to Prototyping:

  • Throw-away: Prototypes are built to learn and then discarded.

  • Incremental: The system is built and released in separate, smaller components.

  • Evolutionary: The prototype serves as the base for the next iteration, evolving into the final system.

Management Pitfalls: Prototyping is a "hill-climbing" approach. If the start point is a bad design concept, iteration may only lead to a "tidied up" bad idea (local maxima) rather than a truly optimal solution. Other issues include time costs, difficulty in planning/contracting, and the sacrifice of non-functional features (safety) in early versions.

Design Rationale

Design rationale is information explaining why a system is designed a certain way. It aids communication, knowledge reuse, and forces careful deliberation.

Types of Rationale:

  • Process-Oriented (IBIS/gIBIS): Uses a hierarchical structure of Issues, Positions (potential resolutions), and Arguments (supporting or refuting). gIBIS uses a directed graph notation.

  • Structure-Oriented (QOC/DRL):

    1. QOC (Questions, Options, and Criteria): Questions represent major issues. Options are assessed against Criteria.

    2. DRL (Decision Representation Language): A more complex version of QOC with formal semantics to manage high volumes of information.

  • Psychological Design Rationale: Focuses on the "Task-Artifact Cycle" (Carroll). New artifacts support both intended and unintended tasks. For example, word processors evolved from typewriter replacements to complex authoring tools. It uses scenarios to make explicit the psychological claims (e.g., "learning by doing").

Design Rules and Principles

1. Learnability (Support for novice users):

  • Predictability: Interaction history determines future results.

  • Synthesizability: Ability to assess the effects of past operations (honesty).

  • Familiarity: Correlation between existing knowledge and required knowledge (e.g., the typewriter analogy).

  • Generalizability: Consistency across applications (e.g., cut/copy/paste).

  • Consistency: Likeness in behavior for similar situations.

2. Flexibility (Multiplicity of information exchange):

  • Dialog Initiative: System pre-emptive (system controls) vs. User pre-emptive (user controls).

  • Multi-threading: Supporting (>1) tasks at once (concurrent or interleaved).

  • Task Migratability: Passing control between user and system (e.g., spell-checking).

  • Substitutivity: Substituting equivalent values (e.g., inches vs. centimeters).

  • Customizability: Adaptability (user-initiated) and Adaptivity (system-initiated).

3. Robustness (Goal achievement support):

  • Observability: Browsability, Defaults (static/dynamic), Reachability (navigation between any states), Persistence (duration of communication effect), and Operation Visibility.

  • Recoverability: Forward recovery (negotiating to goal) or Backward recovery (undo).

  • Responsiveness: Rate of communication; requires instantaneous feedback or status indicators.

  • Task Conformance: Task completeness (coverage) and adequacy (user understanding).

Golden Rules and Guidelines

Shneiderman’s Eight Golden Rules:

  1. Strive for consistency.

  2. Enable frequent users to use shortcuts.

  3. Offer informative feedback.

  4. Design dialogs to yield closure.

  5. Offer error prevention and handling.

  6. Permit easy reversal of actions.

  7. Support internal locus of control.

  8. Reduce short-term memory load.

Norman’s Seven Principles:

  1. Use both knowledge in the world and knowledge in the head.

  2. Simplify task structure.

  3. Make things visible (bridge the gulfs of execution and evaluation).

  4. Get the mappings right.

  5. Exploit the power of constraints (natural and artificial).

  6. Design for error.

  7. When all else fails, standardize.

HCI Patterns: An invariant solution to a recurrent problem within a specific context. Patterns capture design practice, common properties, and values. They are generative, assist in complete designs, and serve as communication tools between stakeholders.