User Interface Development
This section outlines the three phases of user interface design and introduces the tasks that are typically associated with each phase.
The Application User Interface and the User Experience:
To begin, the terms "user interface" and "user experience" must be clarified.
The user interface of an application typically involves those objects that a user sees and interacts with directly on their screen. For example, such objects include the document space, menus, dialog boxes, icons, images, and animations.
However, the user interface of an application is only one aspect of the overall user experience. Other aspects of the user experience that are not visible to the user, but are integral to an application and critical to its usability, include start up time, latency, error handling, and automated tasks that are completed without direct user interaction.
In general, a user interface requires action by a user to accomplish a task, while a great user experience can be achieved with no user interface at all.
User Interface Development:
Providing a successful user experience requires a balanced approach throughout the development life cycle. To ensure this balance, you must not only focus on implementing the functionality required to complete a task but also on how the task is exposed through the user interface. Remember, the user interface must not only be functional, it must also be usable.
The following outlines the typical phases of the user interface development process:
- Functional requirements – Determine the initial requirements and goals for the application.
- User analysis – Identify the user scenarios and understand the needs and expectations of users for each scenario.
- Conceptual design – Model the underlying business that the application must support.
- Logical design – Design the process and information flow of the application.
- Physical design – Decide how the logical design will be implemented on specific physical platforms.
- Prototype – Develop paper or interactive screen mockups that focus on the interface and don't include distracting visual design elements.
- Construct – Build the application and prepare for design change requests.
- Usability testing – Test the application with various users and scenarios.
- Accessibility testing – Test the application with accessible technologies and automated test tools.