This document provides an overview of software architecture. It defines software architecture as the set of structures needed to reason about a computing system, including elements, relations among them, and their properties. Good architecture is important as poor design decisions can lead to project cancellation. It also discusses the differences between architecture and design. Additionally, it describes why documenting architecture is important to allow stakeholders to use it effectively. Finally, it briefly introduces the Model-View-Controller pattern used in web development to separate user interface, data, and application logic.