User interface management systems

User interface management systems

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. Sadly, 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, 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. 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
*ViewSoft Internet
*Sassafras
*ALGEA
*Squeak
*Model-view-controller
*Model-view-presenter
*linguistic model
*Seeheim model
*Higgins UIMS
*Arch model
* Picasso-3
*ProcSee

Top Researchers

Important research in this field has been done by Brad A. Myers, Dan Olsen, Scott Hudson and James D. Foley.

See also

ViewSoft, Inc.

External links

* [http://www.martinfowler.com/eaaDev/ModelViewPresenter.html Model View Presenter]
* [http://www.cs.cmu.edu/~bam/uicourse/1997spring/uisoftwarecourse97.html A UIMS Course Outline]
* [http://www.ife.no/procsee/ ProcSee UIMS]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Bioinformatics workflow management systems — A bioinformatics workflow management system is a specialized form of workflow management system designed specifically to compose and execute a series of computational or data manipulation steps, or a workflow, in a specific domain of science,… …   Wikipedia

  • Graphical user interface — Screenshot of KDE Plasma Desktop GUI. A screenshot of the GNOME Shell GUI …   Wikipedia

  • History of the graphical user interface — The graphical user interface, understood as the use of graphic icons and a pointing device to control a computer, has over the last four decades a steady history of incremental refinements built on some constant core principles. Several vendors… …   Wikipedia

  • Comparison of relational database management systems — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Text user interface — TUI short for: Text User Interface or Textual User Interface (and sometimes Terminal User Interface ), is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from text based user interfaces.… …   Wikipedia

  • Systems Applications Products audit — is when a computer system from SAP undegoes an audit to check its security and data integrity. SAP is the acronym for Systems, Applications, Products. It is a system that provides users with a soft real time business application. It contains a… …   Wikipedia

  • Systems Management Server — (SMS) ist ein Software Produkt von Microsoft. Unter Systems Management versteht man allgemein die zentralisierte Verwaltung von Hard und Software innerhalb eines Unternehmens. Systems Management bildet die Obermenge des Client Management Momentan …   Deutsch Wikipedia

  • User Assistance — is a general term for guided assistance to a user of a software product. The phrase incorporates all forms of help available to a user. Assistance can also automatically perform procedures or step users through the procedure, depending on the… …   Wikipedia

  • Management features new to Windows Vista — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features …   Wikipedia

  • Systems architect — In systems engineering, the systems architect is the high level designer of a system to be implemented.They establish the basic structure of the system, defining the core design features that are hard to change later. They provide the vision for… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”