0% found this document useful (0 votes)
4 views

Chapter8 HCI Implementation Support

Chapter 8 discusses the impact of Human-Computer Interaction (HCI) on programming, emphasizing the shift from hardware-centric to user experience-focused application development. It outlines various development tools, including windowing systems, interaction toolkits, and User Interface Management Systems (UIMS), and explores different UI architectures like Seeheim, MVC, and PAC. The chapter highlights techniques for implementing UIMS and the importance of structuring user interactions to create effective and user-friendly applications.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Chapter8 HCI Implementation Support

Chapter 8 discusses the impact of Human-Computer Interaction (HCI) on programming, emphasizing the shift from hardware-centric to user experience-focused application development. It outlines various development tools, including windowing systems, interaction toolkits, and User Interface Management Systems (UIMS), and explores different UI architectures like Seeheim, MVC, and PAC. The chapter highlights techniques for implementing UIMS and the importance of structuring user interactions to create effective and user-friendly applications.

Uploaded by

younas125
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Chapter 8: Implementation Support

1. Introduction: How HCI Affects Programmers

 HCI (Human-Computer Interaction) has changed the way programmers develop


applications.
 Old Method: Programs were designed around hardware.
 New Method: Programs are now designed around interaction techniques, making user
experience a key focus.

2. Levels of Development Tools

There are three main types of tools that programmers use to build user-friendly applications:

1. Windowing Systems – Handles how windows and screens function.


2. Interaction Toolkits – Provides pre-built UI elements (e.g., buttons, menus).
3. User Interface Management Systems (UIMS) – Helps structure the UI and its
functionality.

3. Windowing Systems
Key Features of Windowing Systems

 Device Independence: Works across different devices without needing modifications.


 Resource Sharing: Allows multiple applications to run simultaneously.
 Image Models for Display: Defines how content appears on the screen (e.g., pixels,
PostScript).

Roles of a Windowing System

 Manages how multiple programs and user tasks work together.


 Separates how an application functions from how it is displayed to the user.

4. Architecture of Windowing Systems


There are three ways to structure a windowing system:

1. Each Application Manages Its Own Windows


o Problem: Every application must handle its own synchronization.
o Result: Less compatibility between different applications.
2. The Operating System Manages All Windows
o Problem: Applications become dependent on the OS.
o Result: Less flexibility.
3. A Separate Application Manages the Windows
o Problem: Requires an extra layer of management.
o Result: Best for portability (works across different OS platforms).

5. The Client-Server Model in Windowing Systems


 The client is the application (e.g., a word processor).
 The server handles display and user input (e.g., X Windows system).

Example: X Windows Architecture

 Uses a client-server model where the X protocol defines communication.


 The window manager client handles:
o Input focus (which window receives user input).
o Arranging windows (tiled vs. overlapping).
o Transferring data between applications.

6. Programming Applications
There are two common ways to handle user interactions in applications:

1. Read-Evaluation Loop (Event Loop)

 The program continuously checks for user actions.


 Example: A text editor waiting for the user to type.

2. Notification-Based Programming

 The system waits for events and only responds when needed.
 Example: Clicking a button triggers a function (e.g., "Save" button in a menu).

7. Toolkits for User Interfaces


 Toolkits simplify UI programming by providing ready-made UI elements (buttons,
menus, sliders).
 Java Example: Java’s Abstract Window Toolkit (AWT) and Swing help programmers
build graphical applications.
 Benefits of Toolkits:
o Promotes consistent UI design.
o Works well with object-oriented programming.

8. User Interface Management Systems (UIMS)


 Why UIMS?
o Toolkits are still too complex for non-programmers.
o UIMS separates UI design from functionality, making it easier to update the
interface without changing the core logic.

Key Benefits of UIMS

1. Portability – Can run on different systems.


2. Reusability – Saves time by reusing components.
3. Multiple Interfaces – Allows different user interfaces to access the same functionality.
4. Customizability – Developers and users can modify the interface as needed.

9. UI Architectures: Seeheim Model vs. MVC vs. PAC


There are different models to structure the UI:

1. Seeheim Model

 Separates presentation, dialogue control, and application functionality.


 Helps make UI design more structured and modular.

2. MVC (Model-View-Controller)

 Used in object-oriented programming (e.g., Java Swing).


 Three parts:
o Model – Stores data and logic.
o View – Displays information.
o Controller – Handles user input.
 Issues: In reality, the controller needs to communicate with the view, making the
separation not always perfect.

3. PAC (Presentation-Abstraction-Control)

 Similar to MVC but focuses more on hierarchy.


 Each part has its own control logic.
 Used in more advanced interfaces with multiple views.

10. Techniques for Implementing UIMS


There are different ways to define how user interactions are handled:

1. Menu Networks – Organizing UI elements in menus.


2. State Transition Diagrams – Visually representing how UI changes based on user input.
3. Grammar Notations – Using predefined rules for UI behavior.
4. Event Languages – Programming user events.
5. Constraints – Setting rules for UI behavior.

Graphical Specification

 Allows designers to drag and drop UI elements (like in Visual Basic or Adobe
Dreamweaver).
 Problem: Hard to see the overall system behavior in large applications.

11. Summary
This chapter covers:

 How HCI affects programming by shifting focus from hardware to user experience.
 Windowing systems manage multiple applications and interactions.
 Different architectures handle windowing in various ways.
 Programming models like event loops and notification-based programming.
 Toolkits and UIMS help simplify UI development.
 Different UI architectures (Seeheim, MVC, PAC).
 Techniques to structure UI interactions using menus, state diagrams, and constraints.

Final Thoughts

This chapter explains how programmers use tools to build effective user interfaces. By
understanding windowing systems, programming models, toolkits, and UI architectures,
developers can create applications that are easier to use and more efficient.

You might also like