Achieving Usability Through Software Architecture
Len Bass
Bonnie E. John
Jesse Kates
Technical Report
CMU/SEI-2001-TR-005
In this paper, we present an approach to improving the usability of software systems by means of software architectural decisions. We identify specific connections between aspects of usability, such as the ability to "undo," and software architecture. We also formulate each aspect of usability as a scenario with a characteristic stimulus and response. For every scenario, we provide an architecture pattern that implements its aspect of usability. We then organize the usability scenarios by category. One category presents the benefits of these aspects of usability to users or their organizations. A second category presents the architecture mechanisms that directly relate to the aspects of usability. Finally, we present a matrix that correlates these two categories with the general scenarios that apply to them.
The information in this report can benefit software architecture designers and evaluators. Evaluators can use the scenarios as a checklist to determine whether a particular architecture supports necessary usability features. Designers can use the information in three fashions:
- The scenarios can serve as a checklist to show whether important usability features have been considered in the requirements.
- The architecture patterns can help guide the designer in supporting the scenarios.
- The matrix enables a designer to determine what additional aspects of usability can be supported for minimal cost, since the necessary mechanisms, at least potentially, are in place.