an abstract view of a software system distinct from the details of implementation, algorithms, and data representation
a set of concepts, methods, rules and standards used to organize a software system and make things work together
The structure or structures of a system, which comprise the software elements, the externally visible properties of those elements, and the relationships among them.
Software architecture encompasses: the significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed together with their behavior as specified in the collaboration among those elements, the composition of the structural and behavioral elements into progressively larger subsystems, the architectural style that guides this organization, these elements and their interfaces, their collaborations, and their composition. Software architecture is not only concerned with structure and behavior, but also with usage, functionality, performance, resilience, reuse, comprehensibility, economic and technology constraints and tradeoffs, and aesthetic concerns.
the structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time [ Clements 96].
A description that encompasses: The significant decision s about the organization of a software system. The selection of the structural element s and their interfaces by which the system is composed together with their behavior as specified in the collaboration among those element The composition of the structural and behavior al elements into progress ively larger subsystem The architectural style that guides this organization, these elements and their interfaces, their collaboration s, and their composition. [D04879] RUP
encompasses the set of significant decisions about the organization of a software system: the selection of the structural elements and their interfaces by which a system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization.
The software architecture of a system consists of software components, of their external properties, and their relationships with one another. The term also refers to documentation of a system's software architecture. Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects.