This document discusses analyzing software architectures and architectural styles. It begins by covering software quality attributes and how architectural decisions impact attributes like reliability, safety, security, and others. It then defines what a software architecture is and discusses architectural models for documenting designs. Key characteristics of architectures like structure, communication, and control are explained. Common architectural styles are also outlined, along with how styles are defined by component types, connectors, communication protocols, and semantic constraints. The role of software architecture in enabling reuse is also noted.