The software architecture is the discipline that is responsible for specifying the transversal software components, and ensures that the product to be built complies with quality attributes. The Architecture Drivers are constituted by: Quality attributes, constraints (technical and functional) and assumptions. With these inputs the architect must balance the solution, so that it complies with the architecture drivers within the accepted parameters.
Architecture decisions are documented through different views, which illustrate the interactions between the components. In this way the responsibilities and relationships between them are identified. When reviewing the different architecture views, stakeholders should be able to understand how each architecture driver is supported.
In the end the architecture directs product development, and any quality attribute that was not taken into account as part of the architecture definition. It is very difficult to bear for the product. The development without a good architecture analysis or without this, generates a weak product and with little possibility to assure a quality attribute (like performance, scalability, etc) Or carrying great costs by the necessity to realize reengineering, in stages development.