Week 13: Chapter 11 (Usability) 75% complete + Sequence diagram

Architectural support for usability involves both allowing the user to take the initiative—in circumstances such as canceling a long-running command or undoing a completed command—and aggregating data and commands. To be able to predict user or system responses, the system must keep an explicit model of the user, the system, and the task. There is a strong relationship between supporting the user interface design process and supporting modifiability; this relation is promoted by patterns that enforce separation of the user interface from the rest of the system, such as the MVC pattern.