User interface management systems
Encyclopedia
A User Interface Management System (UIMS) is a mechanism for cleanly separating process or business logic
from Graphical user interface
(GUI) code in a computer program. UIMS are designed to support N-tier architectures by strictly defining and enforcing the boundary between the business logic and the GUI. A fairly rigid Software architecture
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.
A more directly applicable theory of user interface management is the Model-view-controller
design pattern
, which is described in detail in its own article. A recent variant of MVC is the Model-view-presenter model which is similar to MVC, but has some interesting insights into the problem.
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
. 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.
, Dan Olsen, Scott Hudson
and James D. Foley
.
Business logic
Business logic, or domain logic, is a non-technical term generally used to describe the functional algorithms that handle information exchange between a database and a user interface.- Scope of business logic :Business logic:...
from Graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
(GUI) code in a computer program. UIMS are designed to support N-tier architectures by strictly defining and enforcing the boundary between the business logic and the GUI. A fairly rigid Software architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
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
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
design pattern
Design pattern (computer science)
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that...
, which is described in detail in its own article. A recent variant of MVC is the Model-view-presenter 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
Observer pattern
The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods...
. 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
- HypercardHyperCardHyperCard is an application program created by Bill Atkinson for Apple Computer, Inc. that was among the first successful hypermedia systems before the World Wide Web. It combines database capabilities with a graphical, flexible, user-modifiable interface. HyperCard also features HyperTalk, written...
- ViewSoft Internet
- Sassafras
- ALGEA
- Squeak
- Model-view-controllerModel-view-controllerModel–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
- Model-view-presenter
- linguistic model
- Seeheim model
- Higgins UIMS
- Arch model
- Picasso-3
- ProcSee
- Common Lisp Interface Manager
Top Researchers
Important research in this field has been done by Brad MyersBrad Myers
Brad Allan Myers is a professor in the Human-Computer Interaction Institute at Carnegie Mellon University. He earned his Ph.D. in Computer Science at the University of Toronto in 1987, under Bill Buxton....
, Dan Olsen, Scott Hudson
Scott Hudson (computer scientist)
Scott E. Hudson is a professor in the Human-Computer Interaction Institute at Carnegie Mellon University. He was previously an Associate Professor in the College of Computing at the Georgia Institute of Technology and prior to that an Assistant Professor of Computer Science at the University of...
and James D. Foley
James D. Foley
James David Foley is a Professor and the Stephen Fleming Chair in Telecommunications in the School of Interactive Computing, and former Dean of the College of Computing at Georgia Institute of Technology from 2008-2010...
.