This document provides an overview of software architecture. It defines software architecture as the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. The document discusses software vs building architecture, architectural styles like layered, pipes and filters, and data-centered styles. It also covers standards, frameworks and methodologies used for software architecture. Finally, it discusses the human aspects of practicing software architecture and provides some case studies.
Related topics: