UIMS (User Interface Management System) should not be considered a system, but a software architecture (also known as UIMS User Interface Architecture) “in which the user interface of an application is clearly distinguished from the user interface implemented by the application”.

A great deal of software architecture relies on the assumption that the functionality and user interface of a software application are two distinct problems that can be solved separately.

The goal of this partitioning is to increase software maintenance and compatibility. Also, better support for interface customization by abstracting the code that makes up the user interface from the rest of the logic or semantics of the application.

Models

In the most frequently cited work, Foley and Wallace describe a “language template” for managing a user interface consisting of a presentation layer, a dialog control layer, and an application layer. These layers correspond to the lexical, syntactic and semantic layers in formal language theory. Although Foley’s model is theoretically enlightening, it does not propose a concrete and practical code separation system. There are also many interesting edge cases that are not clean in one of these layers.

A more directly applicable user interface management theory is the Model-View-Controller design model, which is described in detail in its own article. The latest variant of MVC is the model-view-presenter model, which is similar to MVC but has some interesting insights into the problem.

Implementation

A function-based system accesses all user interface functions as interfaces to functions. The dialog is only used to collect arguments for the function that is called when the dialog is closed. A menu tree is a series of model implementations that follow this pattern.

Provides a specialized language to describe syntax-based UIMS user interfaces. Generally speaking, it is a specialized language designed for displaying user interface elements.

Editing models are a feature of syntax-based UIMS. They perform all interactions as a real-time presentation of the underlying display object. In particular, use the syntax of a programming language as the syntax of a GUI.

Scroll bars can display integers, and checkboxes can display Boolean values, function buttons, or menu items. A dialog or menu is a display of complex objects that contain properties and functions. The controller layer synchronizes the object with the presentation and vice versa through the bidirectional connection provided by the observer model.

Enabling/disabling and validating are specific challenges in editing models, but can be solved. ViewSoft Internet is a commercial program briefly introduced in the 1990s that implements a generic GUI builder based on an editing model.

The transformation network presents the user interface logic as a kind of intelligent flowchart. In the event language model, computer languages are designed around event management. This is essentially the approach taken by Microsoft’s .NET Languages C# and Visual Basic.net, with their delegate and event language constructs.

Other models include HyperTalk, production systems, and declarative languages.

Examples Of UIMS Model

  • Tiger
  • MenuLay
  • HyperCard
  • ViewSoft Internet
  • Sassafras
  • ALGEA
  • Squeak
  • Model–view–controller (MVC)
  • Model–view–presenter (MVP)
  • Linguistic model
  • Seeheim model
  • Higgins UIMS
  • Arch model
  • Picasso-3
  • ProcSee