Architecture

Architecture Blueprints

liebhart-blueprints
Daniel Liebhart et. al, Hanser-Verlag, 2007. Positive Überraschung: Gelungen!

Ich war positiv überrascht - die Autoren steigen praktisch ohne Vorrede direkt in die Materie "Architekturvorlagen" ein - für LeserInnen ohne Vorkenntnisse definitiv nicht geeignet. Für Leute mit etwas Erfahrung empfand ich die zusammenfassende Darstellung jedoch gut - so habe ich als Software-Architekt zumindest mal einen Einstiegspunkt, auch auf evtl. unbekanntem Terrain.

In Kapitel 1 versuchen die Autoren eine Tour-de-Force durch (fortgeschrittene) Entwurfsansätze - Sie finden eine sehr kurze Zusammenfassung der Fowler'schen "Patterns for Enterprise Application Architecture", zusammen mit einem Kondensat von "Domain Driven Design". Das Kapitel fand' ich sehr lesenswert, es gibt gute Überblicksinformation, macht neugierig auf mehr...

Die Spring, .NET und Oracle-Blueprints lesen sich flüssig und sind aus meiner Sicht eine gute Ergänzung zur Originalliteratur der jeweiligen Technologien.

Einzig das SOA-Kapitel schmeckte mir gar nicht - kein REST, keine kritische Auseinandersetzung mit dem (umstrittenen!) Konzept des ESB...

Insgesamt aus meiner Sicht ein lesenswertes Buch - ich habe keine ähnliche Zusammenstellung von Themen gefunden (auch nicht in der englischen Literatur).

Documenting Software Architectures: Views and Beyond

CDB3D2AC-A84D-46EC-AB62-379B72EE009D.1.png
Paul Clements, Felix Bachmann, Len Bass: Motivierend, gründlich, teilweise praxifern.

Das Buch versucht die Frage zu beantworten, wie Sie in IT-Projekten die Software-Architekturen aufschreiben sollen. Motivierend und gründlich beschreiben die Autoren im ersten Teil die Grundlagen effektiver Architekturdokumentation.
Anschliessend wird der Ansatz der (SEI-)Autoren dann etwas akademisch detailliert. Für die Praxis fehlen konkrete Vorgaben und Beispiele - die vorgeschlagenen Views benötigen eine Menge Anpassungen, um in Projekten anwendbar zu werden. Fazit: Interessant, aber nur mit viel Eigenaufwand umsetzbar. (GSt).


Software Architecture in Practice

C915632B-919B-44D8-8FBC-D9A9B9DD9588.0.png
Len Bass, Paul Clements, Rick Kazman: Ein Klassiker - aber...

Die Autoren schaffen am renomierten Software- Engineering Institute der Carnegie-Mellon University und haben für diese zweite Auflage (2003) das Buch nochmals deutlich erweitert. Besonders nützlich fanden wir die Behandlung der qualities, landläufig als nichtfunktionale Anforderungen bezeichnet. Bass und Co. beschreiben dazu eine Reihe hilfreicher Quality Tactics.

Die Beispiele (Flight Simulation, Air Traffic Control) sind lesenswert, deren Ansätze jedoch nur schwer in eigene Projekte übertragbar.
Leider fehlen an vielen Stellen konkrete Ratschläge, wie Software- Architekturen wirklich entstehen sollen.

Insgesamt schimmern an vielen Stellen die gigantischen Budgets der US-amerikanischen Militärprojekte (Sponsoren des SEI) durch - Geld (und Aufwand) spielen kaum eine Rolle - Perfektion kommt an erster Stelle... für die (kommerzielle) Praxis häufig nicht umsetzbar.

SOA Expertenwissen: Konzepte, Methoden und Praxis serviceorientierter Architekturen

soax-cover
Gernot Starke, Stefan Tilkov (Hrsg), dpunkt, 2007.

Fast 900 Seiten geballtes Wissen, um Ihre Meinungsbildung zum (kontroversen!) Thema "Serviceorientierte Architekturen" zu fördern.
Hierin finden Sie zu allen wesentlichen Themenbereichen fundierte und praxisnahe Beiträge (ok - dieser Satz enthält ein wenig Eigenwerbung).

Domain-Driven Design

evans-ddd
Eric Evans, Addison-Wesley, 2005. Teils genial - aber stellenweise langatmig.

Dieses Buch gehört für mich zu den "Klassikern" - weil Evans als erster Autor die Kluft zwischen Analyse und Architektur/Implementierung mal gründlich und systematisch bearbeitet!

Seine "Building Blocks of Domain Driven Design" (Entities, Services, Repositories, Factories etc.) zeigen endlich mal einen systematischen Weg von fachlichen zu technischen Klassenmodellen auf - sehr lesenswert!

Leider fällt der zweite Teil des Buches doch sehr ab - da wird der Stoff anekdotenhaft und teilweise zusammenhanglos. Diese Hälfte hätte Evans besser schreiben können (da springt dann Jimmy Nilson mit seinen DDD-Patterns in die Bresche!)

Fazit und vergleichbare Bücher: Die frei verfügbare Kurzfassung von A. Avram von infoQ ist ein allzu stark gekürzter Abklatsch der (faszinierenden) Thematik - aber zum ersten Einstieg reicht es sicherlich aus. Wer modelliert, sollte das Original lesen.

Enterprise Architecture as Stragegy: Foundation for Business Execution

ross-enterpriseitstrategy
Jeanne Ross: (**) VERY high level - konkrete Tipps für eigenes Vorgehen fehlen.

Richtig - absolute Top-Autoren, recht gut geschrieben.
Aber: Auch Enterprise-IT Architekten brauchen Ratschläge. Und hier hört das Buch leider zu früh auf - nämlich bei den wirklichen Tipps. Ratschläge der Form "define your operating model" und "design your enterprise architecture" bleiben doch arg grob...

Einige Praxisberichte hellen hier etwas auf - insgesamt jedoch habe ich mich nach dem Lesen gefragt "und nun?"

Vergleichbare Werke: Sowohl Gernot Dern (Management von IT-Architekturen, Vieweg 2006) als auch Wolfgang Keller (IT Unternehmensarchitektur, dpunkt 2006) bieten hinsichtlich Praxisnähe und Umsetzbarkeit unvergleichlich viel mehr. Zwar haben die beiden keinen Professorentitel, dafür aber jede Menge Praxiserfahrung...

Das "IT-Governance" Buch von Ross/Weill schlägt in die ähnliche thematische Richtung, ist jedoch um Längen besser als dieses hier.

Fazit: Ich (GSt) hab's wegen der Autoren gekauft - und bin enttäuscht. Keine Empfehlung.

IT-Unternehmensarchitektur: Von der Geschäftsstrategie zur optimalen IT-Unterstützung

keller-ITUA
Wolfgang Keller: "Must-Have" für Enterprise-Architekten.

Der Untertitel verspricht "von der Geschäftsstrategie zur optimalen IT-Unterstützung" - und genau das hält Herr Keller ein: Er zeigt (übrigens hervorragend strukturiert!) die Sicht eines IT-Vorstands auf und was Enterprise-Architekten tun sollten. Eingestreut hat er viele Tipps aus seiner eigenen Praxiserfahrung.

Das Buch führt die benötigten Begriffe in einer angemessenen Tiefe ein, enthält Fallstudien und ist obendrein noch in einer klaren Sprache geschrieben - so wünsche ich mir Fachliteratur. Ein "Muss" für den Bücherschrank ernsthafter Enterprise-Architekten.

Ein (winzig kleiner) Punkt passt für mich nicht: Der Abschnitt über Softwarekartografie (der stammt auch nicht aus der Feder von Wolfgang Keller, sondern von drei Autoren der Uni München). Deren Modellierungsansatz finde ich nur mittelmässig praxistauglich...)

Die Alternative: "Management von IT-Architekturen" von Gernot Dern: Hat von mir ebenfalls 5 Sterne bekommen - ganz anderer Stil und andere Betrachtungsweise. Mein Tipp: Beide kaufen, beide lesen.

(und wo ich schon bei Tipps bin: Herr Keller hat auch ein Buch über Enterprise-Application-Integration geschrieben - das ist im Zeitalter von SOA immer noch sehr empfehlenswert!)

The Art of Systems Architecting

Zweig114NotesImage17
Mark W. Maier, Eberhardt Rechtin: Gehört zu unseren all-time-favorites.

Die Autoren haben wirklich große Systeme gebaut und diskutieren über allgemeine Prinzipien des Systementwurfs.
Lesenswert und hilfreich - wenn auch viele der Heuristiken sehr allgemeinen Charakter haben, so sind sie dennoch richtig (und wert, ab- und-zu beachtet zu werden!!)

Applied Software Architecture

hofmeister-applied-software-architecture
Christine Hofmeister, Robert Nord, Dilip Soni: (Theoretisch angehauchtes) Grundlagenwerk...

Die Autoren, Mitarbeiter der Siemens AG, stellen hauptsächlich ein System von Architektursichten vor, um Architekturen zu beschreiben. Damit schaffen Sie wichtige begriffliche Grundlagen, die jedoch aufgrund der (aus unserer Sicht eher hinderlichen) methodischen und notationellen Strenge etwas an der Praxis vorbeigehen.

Betrachten Sie das Buch als Grundlagenwerk, weniger als Praxislehrbuch, dann wird es Ihnen sicherlich weiterhelfen.

Patterns of Enterprise Application Architecture

fowler-peaa
Martin Fowler, Matt Froemmel. Ein Klassiker - must-have!

Wenn Sie Enterprise Architekturen entwerfen oder entwickeln, dann werden Sie von dieser Zusammenstellung von Muster profitieren können.
Fowler verzichtet auf eine rigorose Pattern-Schablone sondern geht dafür auf ganz praktische Entwicklungsprobleme ein. Wir nehmen angesichts konkreter Entwurfsprobleme dieses Buch immer mal wieder zur Hand.

Eine hervorragende Ergänzung zum "Domain-Driven Design" von Eric Evans.

Process for System Architecture and Requirements Engineering

Derek Hatley, Peter Hruschka, Imtiaz A. Pirbhai:
Process for System Architecture and Requirements Engineering
Vorsicht Software-Entwickler! Dieses Buch ist nicht für Sie. Es spricht System Engineers an, die Produkte mit mehreren Technologien bauen (HW, SW, Mechanik, Elektrik, ..). Auch wenn die Notation durch die Standardisierung veraltet wirkt - der Prozessvorschlag ist noch sehr relevant.

Agile Softwareentwicklung für Embedded Real-Time Systems mit der UML

Peter Hruschka, Chris Rupp:
Agile Softwareentwicklung für Embedded Real-Time Systems mit der UML
Weniger eine Einführung in UML sondern pragmatische Tipps für Software-Entwickler von technischen Systemen, welche Schritte auf dem Weg von vagen Vorgaben bis zum fertigen System essentiell sind. UML ist dabei das Mittel zum Zweck. Sie lernen, wann und warum welches Diagramm nützlich ist.

Moderne Software-Architektur

Johannes Siedersleben:
Der Autor, langjähriger Mitarbeier und Research Fellow der renomierten Firma sd&m, stellt die Grundlagen der QUASAR Architektur vor. Sie lernen die zentralen Aspekte von Komponenten und Schnittstellen kennen. Siedersleben beschreibt prägnant und anwendbar, wie Sie in konkreten Projekten angemessene Komponenten identifizieren können - diese ca. 20 Seiten zählen unserer Meinung nach zu den hilfreichsten Publikationen unseres Fachgebietes.

Die Beispiele sind in Java formuliert - einige Grundkenntnisse dieser Sprache helfen bei der Lektüre ungemein weiter.
Unsere Empfehlung: Lesenswert.

Bringing Design to Software

Terry Winograd
Bringing Design to Software
Eines meiner Lieblingsbücher. Enstanden durch intensive Nachbearbeitung aus einem interdisziplinen 3-Tage Workshop, wo sich Designer aus unterschiedlichsten Domänen getroffen haben. Deren Erkenntnisse wurden von Terry in die Welt der Software übertragen. Schöne Urlaubslektüre für Denkanstöße. (PH)

Effektive Software-Architekturen - ein praktischer Leitfaden

esa3-cover-small
Gernot Starke: Mittlerweile in der dritten Auflage - gewachsen und gereift, praxisnah und pragmatisch!


Eine pragmatische Einführung in das Themengebiet "Software- Architekturen".
(ok - wir sind vorbelastet, daher einige Auszüge der Kritiken bei Amazon:)


* "Erstklassige Fachliteratur muss nicht langweilig sein..."
* "cooles Buch über Software-Architektur..."
* "Leitfaden zur Entwicklung von Enterprise-Architekturen.."
* "Hohe Dichte von Best-Practices..."
* "Endlich einmal ein praxistaugliches Buch über Software- Architekturen..."


Pattern-orientierte Software-Architektur - Ein Pattern-System

Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal:
Pattern-orientierte Software-Architektur - Ein Pattern-System
Echte Pflichtlektüre für Software-Architekten: Der erste Band der POSA-Reihe beschreibt grundlegende Architekturmuster wie Schichten (Layer), Model-View-Controller, Pipes & Filter und andere.

Evaluating Software Architectures - Methods and Case Studies

Paul Clements, Rick Kazman, Mark Klein:
Evaluating Software Architectures - Methods and Case Studies
Dieses Buch fasst die langjährige Forschung und Erfahrung des SEI zu Bewertungsmethoden von Software-Architekturen zusammen. Sie lernen die szenariobasierten Ansätze kennen, mit denen Sie Architekturen hinsichtlich konkreter Qualitätsmerkmale auf ihre Eignung hin überprüfen können.
Erwarten Sie keinen Algorithmus, der Ihnen auf Basis einer Architekturbeschreibung eine Note liefert - aber erwarten Sie eine Menge Tipps, wie Sie zu transparenten, nachvollziehbaren und (ziemlich) objektiven Bewertungen kommen können. (GSt.)

Naked Objects

Richard Pawson, Robert Mathews
Naked Objects
Wiley, 2002.
Keine Sorge - niemand steht hier nackt dar. Die Autoren vertreten die These "back-to-the-(object-)roots" in seltener Konsequenz: Sämtliche technischen Aspekte objektorientierter Systeme, insbesondere die gesamte Benutzungsoberfläche, gehört in den (nakedobjects-) Framework.
Ein kontroverser Ansatz - aber sicherlich für manche Projekte eine echte Alternative. Übrigens passt das Buch leider nicht mehr zum aktuellen Stand der gleichnamigen (freien) Software...

Enterprise SOA: Service-Oriented Architecture Best Practices.

Dirk Krafzig, Karl Banke & Dirk Slama: [Krafzig+04]
Enterprise SOA: Service-Oriented Architecture Best Practices.
Prentice Hall, 2004.
Eine aus meiner (GSt) Sicht gute Einführung in das Thema - die Autoren schreiben aus praktischer Sicht, ohne jedoch in einzelne Technologien abzudriften. Sehr schön: Das Konzept der klassifizierten Services sowie die systematische Begriffsbildung rund um Services.

Enterprise Application Integration

Wolfgang Keller
Enterprise Application Integration
dpunkt, 2002
Als Einführung, Überblick und Nachschlagewerk für Integrationsprojekte sehr empfehlenswert. Wolfgang Keller bringt seine grosse Erfahrung mit EAI gut lesbar und verständlich zu seinen Lesern. Es klärt Begriffe, Technologien und Modelle zu EAI - ohne zu tief in Einzelthemen abzugleiten.
Falls Sie (oder Ihre Mitarbeiter oder Ihr Chef) sich mit EAI beschäftigen, dann ist dieses Buch ein hervorragender Einstiegspunkt.

MDA Distilled - Principles of Model-Driven Architecture

S. Mellor, K. Scott & Axel Uhl:
MDA Distilled - Principles of Model-Driven Architecture
Addison-Wesley, 2004.
Eine Einführung von echten Experten (Tipp: Buch lesen und versuchen, Dr. Axel Uhl mal "live" zum Thema MDA zu erleben).

Generative Software-Entwicklung mit der MDA

Klaus Zeppenfeld, Regine Wolters:
Generative Software-Entwicklung mit der MDA
Elsevier/Spektrum, November 2005
Eine leicht verdauliche Einführung, primär für Neulinge der Materie. An einem konsequent UML-konformen Beispiel (WebLandwirt!) entsteht aus einer rein fachlichen Modell eine kleine Anwendung. Müsste viel länger sein, viele (für die Praxis notwendige) Details fehlen... aber vielleicht gibt's ja eine nächste Auflage...

Modellgetriebene Softwareentwicklung.

Markus Völter, Thomas Stahl:

Modellgetriebene Softwareentwicklung.
dpunkt-Verlag, 2005.
Hier trafen sich zwei Praktiker zum Thema der modellgetriebenen Entwicklung. Der eine (Thomas Stahl) ist geistiger Vater des openArchitectureWare Generators, der andere (Markus Völter) gehört zu den Guru's der IT-Berater-/Schreiberbranche.
Sowohl für Manager als auch für Teckie's interessant.

Mittlerweile gibt's die zweite Auflage - erweitert und mit zusätzlichen Autoren... die haben wir allerdings noch nicht zuende gelesen :-)

Enterprise Integration Patterns.

hohpe-eaipatterns
Gregor Hohpe et. al. Gründlich, fundiert, gehaltvoll (und zeitlos!)

DAS Highlight der Patterns-Literatur. Gregor Hohpe hat ein ungeheuer gutes Gespür für aussagekräftige Diagramme, und für das Buch eine sehr praktische Notation entwickelt, die seine Muster sehr leicht lesbar und verständlich halten.

Daneben ist das Buch auch noch besonders gut geschrieben - keine Spur der Trockenheit, die allzu vielen
IT-Büchern anhaftet.

Fazit: IT-Architekten, kaufen, aber flott. Ich besitze das Buch seit 2003 - und habe es mehrfach
wirklich praktisch nutzen können - es hat über die Jahre nichts an Aktualität verloren.

Management von IT-Architekturen

dern-ITUA
Gernot Dern: In der zweiten Auflage NOCH besser geworden!

Ich mochte schon die erste Auflage (worin Herr Dern auf hervorragende Weise die IT-Architekturpyramide motiviert und erklärt) - und in der zweiten ist noch ein echter "Schatz" hinzugekommen: Ein Falbeispiel der strategischen IT-Planung (Kapitel 12): Meiner Meinung nach lohnt alleine dieses Kapitel die Investition.

Alternativ: IT-Unternehmensarchitektur (von Wolfgang Keller, dpunkt). Auch 5 Sterne - ganz anderer Stil. Für mich sind beide Bücher ein "must-have" im Bücherschrank ernsthafter IT-Architekten (also solche Menschen, die über den Tellerrand einzelner Software-Systeme schauen müssen oder möchten).