Software Architecture
The software architecture of a system defines that system in terms of computational components and interactions among those components. [Shaw & Garlan, 1996]
Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution. [IEEE 1471-2000]
The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements are not architectural. [Bass et al., 2003]
Private details of elements — details having to do solely with internal implementation — are not architectural.