This document provides an overview of software design and architecture topics including quality attributes, scenarios, and specific attributes like availability, modifiability, performance, security, testability, and usability. It discusses how quality attributes are considered during design, implementation, and deployment phases and how architecture impacts many non-functional qualities. General scenarios are presented for various quality attributes.