4.2 Software Architectures for Structuring Components


The Architecture of a software system defines that system in terms of components and interactions/connections
among those components.
Aspects concerned:
  1. Design-time        functional interfaces and component dependencies.
  2. Compose-time    assemble a system from components
  3. Runtime             frameworks and models that provide runtime services for component-based systems.
Architectures support the reuse of design and code components by standardizing interfaces, protocols, and packaging of functionality at a high leve of abstraction,  and also themselves by reusable assets.