Human-Computer Interaction Institute
School of Computer Science, Carnegie Mellon University


Early-Stage Software Design for Usability

Elspeth Golden

May 2010

Ph.D. Thesis


Keywords: Usability, software architecture, design tools and techniques, curriculum design

In spite of the goodwill and best efforts of software engineers and usability professionals, systems continue to be built and released with glaring usability flaws that are costly and difficult to fix after the system has been built. Although user interface (UI) designers, be they usability or design experts, communicate usability requirements to software development teams, seemingly obvious usability features often fail to be implemented as expected. The impact of usability issues becomes increasingly severe in all kinds of software as computer use continues to rise in the home, in the workplace, and in education. If, as seems likely, software developers intend to build what UI designers specify and simply do not know how to interpret the ramifications that usability requirements have for the deep structure of the software (i.e. the "software architecture"), something is needed to help to bridge the gap between UI designers and software engineers to produce software architecture solutions that successfully address usability requirements. Usability-Supporting Architectural Patterns (USAPs) achieve this goal by embedding usability concepts in materials that can be used procedurally to guide software engineers during the complex task of software architecture design.

In order for usability to be a first-class citizen among software quality attributes, usability design must be made cost-effective for development organizations. To achieve this goal, usability needs to be addressed early in the design process in ways that enable it to be successfully incorporated into software architecture designs and software engineering implementations. Preventing late-stage changes in complex software systems by addressing architecturally-sensitive usability concerns during the architecture design phase is a victory for developers and users alike. This is the goal that this dissertation addresses.

Addressing usability early in the software development process is a non-trivial problem. The usability dicta provided by guidelines, heuristics, and UI design patterns may not give software designers all the information they require to completely and correctly implement basic usability features. I present work to construct and evaluate an approach to the problems of explicitly drawing and communicating the connection between usability concerns and software architecture design, and a tool to deliver that approach to software engineers for use in software architecture design practice. I also discuss a possible extension of the research concepts embodied in the tool to the domain of education research.

277 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by