An architecture is an abstraction of a
the overall structure of hardware identifying at least all
and interconnections needed to implement an
the overall structure of software identifying at least all
software nodes, software communications and relations needed to implement an abstract system (in terms of processes, procedures and data).