In large systems, the achievement of qualities such as performance, availability, survivability, and modifiability depends more on the overall software architecture than on code-level practices such as language choice, detailed design, algorithms, data structures, and testing. It is cost effective to try to determine, before a system is built, whether it will satisfy its desired qualities. Although methods for analyzing architectures with respect to quality attributes exist, these analyses have typically been performed on specific qualities in isolation. Performance affects modifiability. Availability affects safety.
Security affects performance.
Everything affects cost. While experienced designers know that these tradeoffs exist, there is no codified method for characterizing them and, in particular, for characterizing their interactions. More importantly, these tradeoffs present the areas of highest risk in an architecture. ATAM is a risk mitigation method that can be done early in the software development life cycle when it is relatively inexpensive to change architectural decisions. It is also important to be able to analyze the architecture of the countless legacy systems in existence.