define architecture in software
Software architecture is a term for the high level structures of a software system. It can be defined as the set of structures needed to reason about the software system, which comprise the software elements, the relations between them, and the properties of both elements and relations. The term also denotes the set of practices used to select, define or design a software architecture.