This document provides an introduction to software architecture concepts. It defines key terms like software architecture, architectural styles, patterns, elements and stakeholders.
It describes software architecture as the set of principal design decisions about a system. The main elements are components, connectors and configuration. Architectural styles and patterns provide general and specific design decisions to organize systems. Models are used to capture architectural designs. Architecture influences various software development processes. Stakeholders in architecture include architects, developers, testers, managers and users.