uSer Interface layer
5.1 Understanding the UI Layer and Its Execution Framework
Interactive applications are implemented and executed using the user
interface (UI) software layers (collectively the UI layer). e UI layer
refers to a set of software that operates above the core operating sys-
tem (and underneath the application). It encapsulates and exposes sys-
tem functions for
Fluid input and output (I/O)
Facilitation of development of I/O functionalities (in the
form of an application programming interface/library [API]
or toolkit)
Run-time management of graphical applications and UI ele-
ments often manifested as windows or graphical user inter-
face (GUI) elements (in the form of separate application often
called the window manager)
Since most interfaces are graphical, the UI layer uses a two- or
three-dimensional (2-D or 3-D) graphical system based on which
GUI elements are implemented (lower part of Figure5.1). us, to
summarize, the UI layer is largely composed of (a) an API for creat-
ing and managing the user interface elements (e.g., windows, buttons,
menus) and (b) a window manager to allow users to operate and man-
age the applications through its own user interfaces.
Figure5.1 illustrates the UI layer as part of the system software
in many computing platforms. e user interacts with the window/
GUI-based applications using various input and output devices. At
the same time, aside from the general applications, the user inter-
acts with the computer and manages multiple application windows/
tasks (e.g., resizing, focusing, cutting and pasting, etc.) using the
Human–ComPuter InteraCtIon
(background running) window manager. e window manager is
regarded as both an application and API. User applications are devel-
oped using the APIs that represent abstracted I/O-related function-
alities of the UI layer, such as those for window managing (resizing,
iconifying, dragging, copy and paste, etc.), GUI elements and wid-
gets (windows, menus, buttons, etc.), and basic windowing (creat-
ing/destroying window, deactivating window, etc.). ese APIs are
abstracted from the even lower-level APIs for 2-D/3-D graphics and
the operating system. Note that the architecture described here can be
equally applied to nonwindow-based systems, such as those for layer-
based systems
(e.g., mobile phones). rough such an architecture
and abstraction, it becomes much easier to develop and implement
interactive applications and their user interfaces.
5.2 Input and Output at the Low Level
At the lowest level, inputs and outputs are handled by the interrupt
mechanism of the system software (operating system). An interrupt is
a signal to the processor indicating that an event (usually an I/O event)
e term layer refers to a full-screen interaction space, often used in small-display
computing platforms. Multiple layers (representing multiple interactive processes)
are possible. On smartphones, the layers are visible one at a time and can be switched
by the use of swiping gestures on the touch screen.
UI Software Layer
Window Manager System/API
GUI API (Toolkit)
Windowing API
Graphics API
(Core) Operating System
Figure 5.1 User interface software layer for a window-based multitasking UI.

Get Human-Computer Interaction now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.