Software-Systeme sind unter verschiedenen Gesichtspunkten strukturiert. Zu den wichtigsten gehören die Gliederung der logischen Abläufe in möglichst unabhängige Einzelaufgaben (Logical Architecture), die Aufteilung auf Betriebsinfrastruktur (Deployment Architecture) und die Strukturierung von Programm-Code in separat bearbeitbare Komponenten (Development Architecture). System Architecture beschäftigt sich mit dem Zusammenspiel dieser Teil-Architekturen sowie den sich daraus ergebenden Trade-Offs, bei denen verschiedene Qualitätsmerkmale eines Software Systems austariert werden müssen.