Without such a language it is difficult to understand large systems sufficiently to make well informed early decisions that greatly influence their quality and usefulness. About a System Architecture represents the earliest set of design decisions about a system. These early decisions are the most difficult to get right, are the hardest ones to change, and have the most far-reaching downstream effects, some of which we describe as follows. The implementation must therefore be divided into the prescribed components, the components must interact with each other in the prescribed fashion, and each component must fulfill its responsibility to the other components as dictated by the architecture. The Architecture Dictates Organizational Structure for Development and Maintenance Projects Not only does architecture prescribe the structure of the system being developed, but that structure becomes reflected in the work breakdown structure and hence the inherent development project structure.
Teams communicate with each other in terms of the interface specifications to the major components.
The maintenance activity, when launched, will also reflect the software structure, with maintenance teams formed to address specific structural components. Quality attributes may be divided into two categories. The second includes those that cannot be measured by observing the system, but rather by observing the development or maintenance activities. Modifiability, for example, depends extensively on the system's modularization, which reflects the encapsulation strategies. Reusability of components depends on how strongly coupled they are with other components in the system.