Usability and Software Architecture

Questions?
E-mail: Bonnie
  Overview   People   Publications Connections Software  
 

The Scene: "Oh, no, we can't change THAT!"

The usability analyses or user test data are in; the development team is poised to respond. The software had been carefully modularized so that modifications to the UI would be fast and easy. When the usability problems are presented, someone around the table exclaims, “Oh, no, we can’t change THAT!” The requested modification or feature reaches too far in to the architecture of the system to allow economically viable and timely changes to be made. Even when the functionality is right, even when the UI is separated from that functionality, architectural decisions made early in development have precluded the implementation of a usable system. The members of the design team are frustrated and disappointed that despite their best efforts, despite following current best practice, they must ship a product that is far less useable than they know it could be.

Separation is NOT enough

This scenario need not be played out if usability concerns are considered during the earliest design decisions of a system, that is, during the architectural design, just as concerns for performance, availability, security, modifiability, and other quality attributes are considered. The relationships between these attributes and architectural decisions are relatively well understood and taught routinely in software architecture courses. However, the prevailing wisdom in the last 20 years has been that usability had no architectural role except through modifiability; design the UI to be easily modified and usability will be realized through iterative design, analysis and testing. Separation of the user interface has been quite effective, and is commonly used in practice, but it has problems. First, there are many aspects of usability that require architectural support other than separation, and, second, the later changes are made to the system, the more expensive they are to achieve. Forcing usability to be achieved through modification means that time and budget pressures are likely to cut off iterations on the user interface and result in a system that is not as usable as possible.

http://java.sun.com/blueprints/patterns/MVC-detailed.html
June 3, 2003

U&SA Approach

Recent research conducted jointly by the U&SA project at the Human-Computer Interaction Institute & Software Engineering Institute at Carnegie Mellon University has investigated the relationship between architectural decisions and usability. This project gives usability specialists and software developers alike an explicit link between their two realms of expertise, allowing both to participate more effectively in the early design decisions of an interactive system. It gives the entire design team the tools to consider usability from the very earliest stages of design, and allow informed architectural decisions that do not preclude usability.

© 2003 Carnegie Mellon University
All Rights Reserved.

Last Modified: Friday, 21-Aug-2009 09:01:16 EDT