Introduction


  • In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called architecture. This understanding includes how the system is divided into components and how the components interact through interfaces. These components are usually composed of smaller components, but the architecture only includes the components and interfaces that are understood by all the developers. - Ralph Johnson

  • Architecture is the decisions that you wish you could get right early in a project. - Ralph Johnson

  • The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. - Len Bass, Paul Clements, and Rick Kazman (Software Architecture in Practice)