This document provides an overview of implementation support for human-computer interaction, including programming tools, windowing systems, interaction toolkits, and user interface management systems.
It discusses how these tools affect programmers and describes some of their key elements and roles. Windowing systems provide device independence, resource sharing, and simultaneity of user tasks. Common windowing system architectures include each application managing its own processes, management within the operating system kernel, and a separate application for management.
User interface toolkits and management systems aim to promote consistency, reusability, and multiple interfaces. Toolkits provide programming with interaction objects, while user interface management systems separate application semantics from presentation.