General Navigation Buttons - Home | Search | Contact Us | Site Map | Whats New
products graphic
white space
products
Software Technology Roadmap
Background & Overview
Technology Descriptions
Defining Software Technology
Technology Categories
Template for Technology Descriptions
Taxonomies
Glossary & Indexes
white space
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
pixel
Rollover Popup Hints for Topic Navigation Buttons above
pixel
Graphical User Interface Builders


Status

Advanced

Purpose and Origin

Graphical user interface (GUI) builders are software engineering tools developed to increase the productivity of user interface (UI) development teams, and to lower the cost of UI code in both the development and maintenance phases. One study found that an average of 48% of application code is devoted to the UI, and 50% of the development time required for the entire application is devoted to the UI portion [Myers 95]. Use of GUI builders can significantly reduce these numbers. For example, the MacApp system from Apple has been reported to reduce development time by a factor of four. Another study found that an application using a popular GUI tool wrote 83% fewer lines of code and took one-half the time compared to applications written without GUI tools [Myers 95]. Original GUI research was conducted at the Stanford Research Institute, Xerox Palo Alto Research Center, and Massachusetts Institute of Technology in the 1970s [Myers 95].

Technical Detail

A GUI development tool simplifies the coding of complex UI applications by providing the developer with building blocks (or widgets) of UI components. These building blocks are manipulated by the developer into a cohesive UI allowing a smaller workforce to develop larger amounts of user interface software in shorter time periods. A GUI builder enhances usability by providing a development team with a prototyping capability so that proposed UI changes can be rapidly demonstrated to the end user to secure requirements validation and acceptance. This aspect can decrease the turnaround time for making UI changes in the Operations and Maintenance (O&M) phase, which enhances maintainability as well.

GUI development tools can be broadly categorized into two types:

IDTs are used for building the interface itself, but nothing more. By contrast, UIMSs extend the functionality of IDTs to include application development (code generation tools) or scripting tools. A UIMS also allows the developer to specify the behavior of an application with respect to the interface. These two types of GUI builders permit the interactive creation of the front-end GUI using a palette of widgets, a widget attribute specification form, a menu hierarchy (menu tree structure), a tool bar, and a view of the form. The UIMS adds the benefits of code generation tools, which can greatly increase the productivity of the GUI development staff. After the front-end is created by a UIMS, a code generator is used to produce C/C++ code, Motif User Interface Language (UIL) code, Ada code or some combination of C, Ada, and UIL.

Usage Considerations

GUI builders are useful for development of complex user interfaces because they increase software development speed by providing tools to lay out screens graphically and automatically generate interface code. Additionally, in applications that are susceptible to continuing user interface change such as command and control applications, the use of GUI builders greatly increases the ability to add/modify user interface functionality in minimal time to support mission changes or new requirements.

This technology works best when used in new development and reengineering. To take full advantage of the benefits of using GUI builders, the most desirable software architecture would be one that ensures the user interface software is isolated on a single layer as opposed to being embedded within several different software components. This isolation simplifies the UI portion of the software, thus making changes during development easier as well as enhancing future maintainability and evolvability.

Maturity

From the early GUI research started in the 1970s, GUI builder tools have grown into an estimated $1.2 billion business [Myers 95]. Today there are literally hundreds of GUI builders on the market supporting platforms ranging from UNIX to DOS. Virtually all new commercial and government applications use some form of UI builder tool. GUI builders have been successfully used on legacy systems when large changes or UI redesigns were applied to the user interface portion of the software [Myers 95].

Costs and Limitations

This technology requires workstations or PCs dedicated to support the development, rapid prototype, and validation of user interfaces. The most widely used GUI builders on the market today require minimal learning time for C and C++ trained developers. These packages come with appropriate training materials, online help features, and vendor-supplied help lines which help make the developers productive in minimal time. There are few formal training costs associated with the use of GUI builders; however an organization would be well advised to provide internal training focusing on standardized approaches and techniques similar to design and coding standards for source code.

The prime costs with GUI builders are the initial license fees, annual maintenance agreements, and the cost of the workstations. In the UNIX environment, typical license costs for full UIMS GUI builders are in the range of $5k to $7.5k per single user license. For Windows or Macintosh environments, the costs range from $300 to $600 per user license. The maintenance agreements are key to keeping each GUI builder updated with vendor corrections and upgrades.

Dependencies

GUI development tools employ window managers as the foundation upon which a user interface can be built. A window manager allows the user to display, alter, and interact with more than one window at a time. The window manager's primary responsibility is to keep track of all aspects of each of the windows being displayed. In terms of numbers of applications in use, the two most popular window managers are Open Windows and Motif from Open Software Foundation (OSF) [OSF 96].

Alternatives

UI software can be developed without the use of GUI builders by using the features of window managers. For example, developers can use the X Windows based Motif (from OSF) and its rich set of widgets and features to design and implement UIs. This may be desirable for smaller, less complex UI applications for which the developer does not require the assistance (and extra cost) of GUI builders.

Index Categories

This technology is classified under the following categories. Select a category for a list of related topics.

Name of technology

Graphical User Interface Builders

Application category

Interfaces Design (AP.1.3.3)
Code (AP.1.4.2)
Reapply Software Life Cycle (AP.1.9.3)
Reengineering (AP.1.9.5)

Quality measures category

Usability (QM.2.3)
Maintainability (QM.3.1)

Computing reviews category

Software Engineering Tools and Techniques (D.2.2)
User Interfaces (H.1.2)

References and Information Sources

[Myers 95] Myers, Brad A. "User Interface Software Tools." ACM Transactions on Computer-Human Interaction 2, 1 (March 1995): 64-108.
[OSF 96] OSF Home Page [online]. Available WWW
<URL: http://www.osf.org> (1996).

Current Author/Maintainer

Mike Bray, Lockheed-Martin Ground Systems

External Reviewers

Brian Gallagher, SEI

Modifications

10 Jan 97 (original)


The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2008 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/str/descriptions/guib_body.html
Last Modified: 24 July 2008