A UIMS (User Interface Management System) should not be thought of as a system but rather a software architecture (a UIMS is also called a User Interface Architecture) "in which the implementation of an application's user interface is clearly separated from that of the application's underlying functionality" (Rosenberg 1988: p. 42). A large number of software architectures are based on the assumption that the functionality and the user interface of a software application are two separate concerns that can be dealt with in isolation. The objective of such a separation is to increase the ease of maintainability and adabtability of the software. Also, by abstracting the code generating the user interface from the rest of the application's logic or semantics, customisation of the interface is better supported. Some examples of such architectures are Model-View-Controller (fundamental to modern Object Orientation, e.g. used in Java (Swing)), the linguistic model (Foley 1990), the Seeheim model (first introduced in Green 1985), the Higgins UIMS (described in Hudson and King 1988), and the Arch model (a specialisation of the Seeheim model; see Coutaz et al. 1995, Coutaz 1987, and Coutaz 1997).
Such user interface architectures have been proven useful but also introduce problems. In systems with a high degree of interaction and semantic feedback (e.g. in direct manipulation interfaces) the boundary between application and user interface is difficult or impossible to maintain. In direct manipulation interfaces, the user interface diplays the 'intestines' or the very semantics of the application, with which the user interacts in a direct and immediate way. It thus becomes very problematic to decide if these intestines should be handled by the User Interface or in the application itself.