CN02 - Avoiding "We can't change THAT!": An Introduction to Usability and Software Architecture

Bonnie E. John, Carnegie Mellon University
Len Bass, Carnegie Mellon University
Elspeth Golden, Carnegie Mellon University

Participants in this course will

  • Understand basic principles of software architecture for interactive systems and their relationship to the usability of those systems
  • Be able to evaluate whether common usability scenarios will arise in the systems they are developing so that the impact arising from these concerns can be considered at architecture design time.
  • Understand patterns of software architecture that facilitate usability
  • Be able to recognize architectural decisions that preclude usability of the end-product, so that they can effectively bring usability considerations into early architectural design.

This is a new version of courses at CHI'02,'03, '04, '07 and ICSE '04.


  • An introduction to software architecture, its concepts, and purposes
  • The role of software architecture in the software lifecycle and how that
  • interacts with typical usability roles
  • Quality attributes in general and usability as a quality attribute
  • An introduction to usability-supporting architectural patterns (USAPs) and their role in software architecture design.
  • Detailed examples of the USAPs and their use in real-world system construction.
  • Results of a controlled experiment validating the benefit of using USAPs in architecture design.
  • Small group exercise applying USAPs to the attendees' specific design situations.

Usability professionals desiring more involvement with early software decisions. Software developers who want to understand the usability implications of architectural decisions. No prior knowledge of software architecture is required.

Lecture, Q&A, and small group exercise.

Bonnie John, a psychologist & engineer, has 20 years experience teaching HCI. Len Bass is the author of three books on software architecture & developing user interfaces. Elspeth Golden is a graduate student in the Human Computer Interaction Institute at Carnegie Mellon studying the intersection of HCI and software engineering.