This book explores practices that can be helpful in the development of architectures of large-scale systems in which software is a major component. Examining the synergies that exist between software and systems engineering, it details an approach to architecture design that is driven from systemic quality attributes determined from both the business and technical goals of the system. This approach utilizes analytically derived patterns and tactics for quality attributes that inform the architect's design choices and help shape the architecture of a given system.