Architecture is the structure of components, their interrelationships, and the principles and guidelines governing their design and evolution over time.

It is conveyed by a description of the subsystems and components of a system and the relationships between them.

Subsystems and components are typically specified in different architecture domains, each of which may contain several views to show the relevant functional and non-functional properties of the system.

An architecture integrates separate but interfering issues of a system, such as provisions for independent evolution and openness combined with overall reliability and performance requirements.

An architecture defines guidelines that together help to achieve the overall targets without having to invent ad hoc compromises during system composition.

An architecture must be carefully evolved to avoid deterioration as the system itself evolves and the requirements change.