Software Architecture

Software architecture is the arrangement of its components into one or more structures defined by the functional role played by each component and the interaction relationships exhibited by the components.

Key elements: components, connections and behaviors