User Interface

User interface is the first impression of a software system from the user’s point of view. Therefore any software system must satisfy the requirement of user.

Functions and Features of UI

User Interface (UI) mainly performs two functions −

User interface plays a crucial role in any software system. It is possibly the only visible aspect of a software system as −

Graphical User Interface

A graphical user interface is the most common type of user interface available today. It is a very user friendly because it makes use of pictures, graphics, and icons - hence why it is called 'graphical'.

It is also known as a WIMP interface because it makes use of −

Design of User Interface

It starts with task analysis which understands the user’s primary tasks and problem domain. It should be designed in terms of User’s terminology and outset of user’s job rather than programmer’s.

Proper or good UI design works from the user’s capabilities and limitations not the machines. While designing the UI, knowledge of the nature of the user's work and environment is also critical.

Elements of UI

To perform user interface analysis, the practitioner needs to study and understand four elements −

Levels of UI Design

The task to be performed and then can be divided, which are assigned to the user or machine, based on knowledge of the capabilities and limitations of each.

The design of a user interface is often divided into four different levels −

Steps of UI Design

User interface design is an iterative process, where all the iteration explains and refines the information developed in the preceding steps. General steps for user interface design −

User Interface Development Process

It follows a spiral process as shown in the following diagram −

Spiral Process

Interface analysis

It concentrates or focuses on users, tasks, content, and work environment who will interact with the system. Defines the human - and computer-oriented tasks that are required to achieve system function.

Interface design

It defines a set of interface objects, actions, and their screen representations that enable a user to perform all defined tasks in a manner that meets every usability objective defined for the system.

Interface construction

It starts with a prototype that enables usage scenarios to be evaluated and continues with development tools to complete the construction.

Interface validation

It focuses on the ability of the interface to implement every user task correctly, accommodate all task variations, to achieve all general user requirements, and the degree to which the interface is easy to use and easy to learn.

User Interface Models

When a user interface is analyzed and designed following four models are used −

User profile model

Design model

Implementation model

User's mental model

Design Considerations of User Interface

User centered

A user interface must be a user-centered product which involves users throughout a product’s development lifecycle. The prototype of a user interface should be available to users and feedback from users, should be incorporated into the final product.

Simple and Intuitive

UI provides simplicity and intuitiveness so that it can be used quickly and effectively without instructions. GUI are better than textual UI, as GUI consists of menus, windows, and buttons and is operated by simply using mouse.

Place Users in Control

Do not force users to complete predefined sequences. Give them options—to cancel or to save and return to where they left off. Use terms throughout the interface that users can understand, rather than system or developer terms.

Provide users with some indication that an action has been performed, either by showing them the results of the action, or acknowledging that the action has taken place successfully.


UI must be transparent that helps users to feel like they are reaching right through computer and directly manipulating the objects they are working with. The interface can be made transparent by giving users work objects rather than system objects. For example, users should understand that their system password must be at least 6 characters, not how many bytes of storage a password must be.

Use progressive disclosure

Always provide easy access to common features and frequently used actions. Hide less common features and actions and allow users to navigate them. Do not try to put every piece of information in one main window. Use secondary window for information that is not key information.


UI maintains the consistency within and across product, keep interaction results the same, UI commands and menus should have the same format, command punctuations should be similar and parameters should be passed to all commands in the same way. UI should not have behavior’s that can surprise the users and should include the mechanisms that allows users to recover from their mistakes.


The software system should integrate smoothly with other applications such as MS notepad and MS-Office. It can use Clipboard commands directly to perform data interchange.

Component Oriented

UI design must be modular and incorporate component oriented architecture so that the design of UI will have the same requirements as the design of the main body of the software system. The modules can easily be modified and replaced without affecting of other parts of the system.


The architecture of whole software system incorporates plug-in modules, which allow many different people independently extend the software. It allows individual users to select from various available forms in order to suit personal preferences and needs.

Reduce Users’ Memory Load

Do not force users to have to remember and repeat what the computer should be doing for them. For example, when filling in online forms, customer names, addresses, and telephone numbers should be remembered by the system once a user has entered them, or once a customer record has been opened.

User interfaces support long-term memory retrieval by providing users with items for them to recognize rather than having to recall information.


UI must be separated from the logic of the system through its implementation for increasing reusability and maintainability.