Software Architecture
A software architecture is a high-level design description of a software system
Descriptions of architectures typically have two aspects
- Structural: the components and the other components they interact with
- Behavioral: the nature of the possible interactions among the components