Intended for professional, research-level and advanced undergraduates in human-computer interaction and formal methods for software engineering, this book addresses the problems governing the usability of computer interfaces. These problems are approached from the angle of the mathematical modelling of intertive systems. By modelling various facets of the system - such as windows, real time phenomena, and dynamic pointers - the book demonstrates how formal methods of software engineering (particularly functional programming) can be used to enhance the efficiency and usability of interactive systems.