Modeling a User Interface in XML

The most important trait of an effective UI is consistency because an application with a consistent approach to human interaction is much easier to learn and use. Consistent UIs can also, with practice, be used intuitively. Intuitive use means efficient use; efficient users mean happy users; and happy users mean well-paid developers.

After consistency, the look and feel of an application's UI can be its strongest asset or its worst detractor. Naturally, users see an application's outward appearance first, and from that they draw first impressions. It behooves the software developer to design an interface that is sharp-looking and consistent in its visual presentation. Now you have a new tool for making sure the presentation says what you want it to say.

XML can help enforce visual consistency across the application by wresting the power of making UI design decisions from the hands of content developers and returning it to its original owner, the visual designer. XML can also help incrementally augment a UI's palette of components as new tool sets become available. Thus, the implementation or behavior of a UI component can be modified without altering the underlying model. In addition, separating presentation from content allows visual designers and content developers to work in concert, shortening the project lifecycle.

No matter the nature of the application, all UIs share a number of features, such as layout and navigation. In this section we will identify and describe several of these UI features.

Layout

The layout of an application's UI governs the positioning of its content. Information should be presented so that it is easy to find, manipulate, and analyze. Data should be presented in a clean, uncluttered manner. Closely related information should be tightly grouped and separated from less relevant information. The positioning of material need not be flashy. Simplicity and efficiency are what we want.

Navigation

An intuitive navigation scheme is critical to an application's reception. Users should be able to find the function or item they want quickly and intuitively. Similar functions should be grouped together for easy access. Navigation elements should not relocate themselves. Consistent behavior on the part of the user should be encouraged by the application.

Input Controls and Widgets

Input widgets, or components, are the atomic building blocks out of which all UIs are created. Examples include text fields, text boxes, check boxes, and any other controls that solicit input from the user. Some widgets are interchangeable. For example, combo boxes and radio buttons can often be used interchangeably to ask the user to "choose one of the following options." An application should not alternate between these controls arbitrarily.

User Actions

Actions are used to represent the various ways a user can manipulate data on the screen. Actions can take the form of buttons, pull-down menus, right-click menus, and others. Some actions are global, such as "undo" actions. Other actions are context-specific.

Security

Security in an enterprise application should be flexible enough to accommodate various dynamic roles that accurately reflect the job responsibilities of many different classes of users. An application's security should control the navigation, actions, and data exposed to the user. It should not be intrusive; a restricted user should feel that the application is limited to what they can see.

Extensibility

A well-designed Web UI will take into account changes or variations in browser capabilities. The UI should be able to accommodate more sophisticated browser controls with a minimum of tweaking. Web browsers are dynamic software packages. New features and bug-fixes are constantly being added. Therefore, you should design a UI that is well-suited to change.

Customizability

Flexible UIs should allow some degree of user customization, but interfaces that are too highly customizable create needless complexity. An application should not go overboard by offering the ability to change every label, font, or screen. Ideally, allowing some customization to views, reports, color schemes, and the overall look and feel will make your application more user-friendly.

Color Scheme

Color can be used to improve an application's usability and aesthetic appeal and can have a utilitarian purpose when applied well. For example, colors can be used to separate or associate different content blocks within the UI. All graphical programs within the Windows operating system inherit the environment's color scheme. Additionally, the active window usually has a uniquely colored caption for identification purposes.