Definition for Architecture

The Unified Software Development Process [8] defines “Software Architecture” as

“We can think of the architecture of a system as the common vision that all the workers (i.e., developers and other stakeholders) must agree on or at least accept. The architecture gives us a clear perspective of the whole system, which is necessary to control its development. ”

This document uses the architecture definitions presented by Software Architecture in Practice and the UML Modeling Language Guide: Software Architecture in Practice [7] defines “Software Architecture” as:

“The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.”

UML Modeling language user guide [6] defines “Software Architecture” as:

“An architecture is the set of 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 collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization---these elements and their interfaces, their collaborations, and their composition. ”