To Previous Chapter To Table of Contents To Bottom of Page To Next Chapter

Chapter 11 - Designing and Implementing a User Interface

  1. User Interface Design Objectives
    1. User Understanding of alternatives and choices
    2. User Understanding of input requirements and output content
    3. User error prevention, reduction, and recovery
    4. Efficient system use

  2. User Interface Design
    1. User Interface and the System User Mental Model
      1. User model - how the user things the system works
      2. Design model - how the designer thinks the system should work
      3. results in a System image
    2. User Interface Design Guidelines: Ben Shneiderman's 8 "golden riles" for user interface design
      1. strive for consistentcy
      2. enable frequent users to use shortcuts
      3. offer informative feedback
      4. design dialogs to yield closure
      5. offer simple error handling
      6. permit easy reversal of actions
      7. support user-centered interaction
      8. reduce short-term memory load
    3. Different Interface Designs for Different Users
      1. novice or new system user
        1. provide a small set of alternatives or choices for each action
        2. provide easily accessible help
        3. provide built-in training and tutorials
      2. knowledgeable intermittent user
        1. present choices in a "recognition" mode
        2. provide accessible but condensed help
        3. protect user from "dangerous" activities
      3. frequent or "power" user
        1. provide limited feedback
        2. provide frequent shortcuts

  3. Types of User Interfaces
    1. Command-based Interface
      • use commands as alternative shortcuts for menu and direct manipulation interfaces
      • limit the set of commands
      • select command names that fit the task and the user's mental model
    2. Menu Selection Interface
      1. simple list or row of options
      2. drop-down menu
      3. hierarchy of menus
      4. layered menu
      5. pop-up menu

      • design the semantics of the menus based on the user task and task sequences
      • select among various possible alternative menu structures
      • design or sketch menus and review them before implementation
    3. Direct Manipulation Interfaces
      1. menus
      2. hot-keys
      3. icons
    4. Data Input Interfaces (input forms)
      1. define the required data structures (source and result)
      2. define the sequence of user activities
      3. identify and document all validation rules
      4. define rules for referential validation
      5. sketch the boundaries of the form and arrange the necessary input fields to match the sequence in which items are received for entry or are normally entered
      6. add menu choices or other command elements
      7. adopt or design a standard way of presenting messages to the user
    5. Reports
      1. detail report
      2. summary report
      3. comparison report
    6. Help Facilities
      1. provide user or usage-oriented indexes
      2. match the help system's capabilities to the intended users
      3. employ help construction software if available

  4. Creating Graphical User Interfaces
    1. The Event-driven Object Model and User Interfaces - software used to design and implement a GUI should have:
      1. a "toolbox" of objects
      2. ways to add objects to the toolbox
      3. object size and placement tools
      4. support for prpoerty settings
      5. linking of contents (and other properties) among objects
      6. linking of properties to data
      7. support for method creation
    2. The Event-driven Design Process
      1. decide on the set of screen objects that will accept the inputs, present the choices, and display the results
      2. for each screen object in the list, decide what properties should differ from the default settings
      3. make a separate list of events that each object must respond to (screen object events)
      4. define in pseudocode form the actions or procedures the computer should perform in response to each screen object event
      5. lay out the screen

  5. Software Development Environments
    1. User Interface Design Tools
    2. Code Development Tools
      1. create structure for a program module
      2. create skeleton program structures
      3. detect syntax errors "on the fly"
      4. provide menus and help with commands and functions to use in the program
      5. provide templates and examples showing usage and supporting copying of commonly used code structures
    3. Program Libraries (reusability)
    4. Testing and Debugging Support Tools
      1. immediate execution
      2. monitoring (watches)
      3. breakpoints
      4. step execution
    5. Version Control and Documentation Support Facilities

To Previous Chapter To Table of Contents To top of page To Next Chapter