When it comes to thinking about the structural characteristics of a software system, a common tendency is to separate architecture from design. Architecture is considered concerned with the significant part of a software system while design concerned with the rest of the structural elements. E.g., some consider the perception of the layers as being architecture while the objects structure that would go inside every layer as being just design.
What is architecture?
Well, first of all, in software context, the word is a metaphor.
A figure of speech in which a term or phrase is applied to something to which it is not literally applicable in order to suggest a resemblance.
Obviously the suggested resemblance is to the buildings architecture.
So a better question would be:
To what concepts is the metaphor applied?
There are probably many but seems that the outstanding ones are the following three:
1. Culture – The domain of interest and the set of knowledge for a particular person or group.
2. Process – The process/activity of defining the structure of a software system
3. Characteristic – A structural characteristic of a software system.