User interface management systems
   HOME

TheInfoList



OR:

A User Interface Management System (UIMS) is a mechanism for cleanly separating process or
business logic In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might ...
from
Graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
(GUI) code in a computer program. UIMS are designed to support
N-tier In software engineering, multitier architecture (often referred to as ''n''-tier architecture) is a client–server architecture in which presentation, application processing and data management functions are physically separated. The most wide ...
architectures by strictly defining and enforcing the boundary between the business logic and the GUI. A fairly rigid
Software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
is nearly always implied by the UIMS, and most often only one paradigm of separation is supported in a single UIMS. A UIMS may also have libraries and systems such as graphical tools for the creation of user interface resources or data stores. Generally, you cannot easily use multiple UIMS systems at the same time, so choosing the correct model for your UIMS is a critical design decision in any project. The choice of system is dependent upon the system(s) you wish to create user interfaces for, and the general style of your application. For example, if you want to create a web based front end, or just a standalone application or both that would be an important factor in choosing. If you want to deploy to the Macintosh, Windows and Linux, that would further influence your choice of a UIMS system. There are many UIMS approaches described in research papers. However, there are not very many systems available commercially or through open source.


Models

In a frequently cited body of work, Foley and Wallace describe a "linguistic model" for user interface management consisting of a Presentation Layer, a Dialog Control layer and an Application layer. These layers correspond to the lexical, syntactic and semantic layers from formal language theory. While Foley's model is theoretically enlightening, it does not propose a specific practical system for separating code. There are also many interesting border cases that don't fall cleanly into one of these layers. A more directly applicable theory of user interface management is the model–view–controller
design pattern A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering. The "Gang of Four" boo ...
, which is described in detail in its own article. A recent variant of MVC is the
model–view–presenter Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces. In MVP, the ''presenter'' assumes the functionality of the "middle-man". In MVP, all ...
model which is similar to MVC, but has some interesting insights into the problem.


Implementations

A functional based system approaches all user interface actions as interfaces for functions. Dialogs exist solely to collect parameters for functions that are called when the dialog is closing. Menu Trees are one family of model implementations that follow this pattern. Grammar based UIMS provide a specialized language for describing the user interface. Usually, this is a special language designed specifically for the presentation of user interface elements. The Editing Model is a specialization of grammar based UIMS. They present all interaction as direct presentations of underlying presentation objects. Essentially, using the grammar of the programming language as the grammar for the GUI. A scroll bar may present an integer, a check box may present a boolean, a function is presented as a button or menu item. A dialog box or a menu is a presentation of a complex object containing properties and functions. A controller layer automatically synchronizes the object with the presentation and vice versa through a two way connection provided by an
Observer pattern In software design and engineering, the observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by ca ...
. Enable/disable and validation present special challenges under the editing model, but they can be dealt with. A commercial program, ViewSoft Internet, was briefly available in the 1990s that implemented a general purpose GUI builder based upon the Editing Model. Transition Networks present the user interface logic as a kind of intelligent flowchart. In an Event Language model, the computer language is designed around the handling of events. This is essentially the approach taken in Microsoft's .Net languages C# and Visual Basic.Net with their delegate and event language structures. Other models include Hypertalk, Production Systems and Declarative Languages.


Examples of UIMS and models

* Tiger * MenuLay *
HyperCard HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web. HyperCard combines a flat-file database with a graphical, f ...
* ViewSoft Internet * Sassafras * ALGEA *
Squeak Squeak is an object-oriented, class-based, and reflective programming language. It was derived from Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at Apple Computer, then at Walt Disney Imagineering, ...
* Model–view–controller (MVC) *
Model–view–presenter Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces. In MVP, the ''presenter'' assumes the functionality of the "middle-man". In MVP, all ...
(MVP) * Linguistic model * Seeheim model * Higgins UIMS * Arch model * Picasso-3 * ProcSee *
Common Lisp Interface Manager The Common Lisp Interface Manager (CLIM) is a Common Lisp-based programming interface for creating user interfaces, i.e., graphical user interfaces (GUIs). It provides an application programming interface (API) to user interface facilities for th ...


Top researchers

Important research in this field has been done by Brad Myers,
Dan Olsen Dan R. Olsen Jr. (born June 22, 1953) is an American computer scientist who specialized in the fields of human–computer interaction and information science. He worked in the computer science department of Brigham Young University from 1984 un ...
, Scott Hudson and
James D. Foley James David Foley (born July 20, 1942) is an American computer scientist and computer graphics researcher. He is a Professor Emeritus and held the Stephen Fleming Chair in Telecommunications in the School of Interactive Computing at Georgia In ...
.


References

{{reflist


External links


Model View Presenter



ProcSee UIMS

User Interface Management Systems: Models and Algorithms
User interfaces Management systems