Taylor, Medvidovic und Dashoy liefern mit "Software Architecture: Foundations, Theory, and Practice" eine der bisher umfangreichsten und ambitioniertesten Abhandlungen über Softwarearchitektur ab.
Das Buch ist im Stil eines amerikanischen Lehrbuchs gehalten und richtet sich vornehmlich an Studenten und Forscher. Die einzelnen Kapitel dienen als Vorlage für Vorlesungen (PowerPoint-Folien auf der Website der Autoren verfügbar) und werden jeweils mit Kontrollfragen, Übungsaufgaben und Verweisen auf weiterführende Literatur abgeschlossen. Im Fokus des Buchs sind grundlegende Konzepte von Software-Architektur, nicht Technologien oder Schritt-für-Schritt Anleitungen für Praktiker. Letztere sind mit den Büchern von
Bass et al. (viele Fallstudien) Software Architecture in Practice oder
Rozanski and Woods (Handbuchcharakter) besser bedient.
Die Autoren sind vor allem in der akademischen Welt ausgewiesen. Der Schreibstil ist langatmig und trocken. Das Buch hat vom Inhalt den Charakter einer aktuelleren Version des Klassikers von
Shaw und Garlan und bietet umfangreiche Kataloge von Architekturbeschreibungssprachen, Architekturstilen und Konnektoren. Die Autoren haben viele ihrer eigenen Forschungsarbeiten in das Buch eingearbeitet (z.B. C2-Stil, REST-Stil, xADL, Konnektoren-Verzeichnis), verweisen aber zu selten auf aktuelle Forschungen. Konkrete industrielle Fallbeispiele wie etwa im Buch von Bass et al. sind hier kaum zu finden. Zur Veranschaulichung dient durchgehend die fiktive und stark vereinfachte Software einer Mondlandefähre.
Die Sichtweise auf Softwarearchitekturen ist amerikanisch geprägt. Die in der Praxis immer häufiger anzutreffende UML wird hier kritisch beäugt, während die außerhalb der akademischen Welt eher erfolgosen Architekturbeschreibungssprachen ausführlich abgehandelt werden. Große Bedeutung wird Konnektoren eingeräumt, die die Autoren als eigenständige Elemente (first-class entities) einer Architektur sehen und in einem eigenen Kapitel kategorisieren. Aber auch die neuere Sichtweise von Softwarearchitektur als eine Summe von Entwurfsentscheidungen ist im Buch zu finden. Während im Buch von Bass et al. nicht-funktionale Eigenschaften von Software die Architektur prägen, werden sie hier in zwei Kapiteln wenig überzeugend abgehandelt.
Die Stärken des Buchs liegen im Umfang der Themen, der stringenten Terminologie, und in den Kapiteln zu Entwuf, Konnektoren und angewandten Architekturstilen. Schwächen zeigen sich bei der Behandlung von nicht-funktionalen Eigenschaften, Implementierungsframeworks (lediglich Verweise auf java.io zum Pipe-and-Filter Stil), Modellierung und Praxisbezug. Nicht-technische Aspekte von Softwarearchitektur, etwa die Kommunikation mit Stakeholdern oder das Management von Wissen werden kaum behandelt.
Zusammenfassend bietet das Buch einen guten, grundlegenden Überblick der Thematik für Studenten und Forscher kann aber Praktikern nur bedingt bei der Lösung von Problemen dienen. Ein Buch mit Referenzcharakter, das dennoch eine eigenwillige Perspektive auf das Thema hat und daher die oben genannten Bücher nicht ersetzen kann.