Sie sind hier
E-Book

Knigge für Softwarearchitekten

AutorGernot Starke, Peter Hruschka
Verlagentwickler.press
Erscheinungsjahr2018
Seitenanzahl264 Seiten
ISBN9783868027792
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
Gernot Starke und Peter Hruschka laden bereits in der dritten, stark erweiterten Auflage ihres Bestsellers zum Benimmkurs für Softwarearchitekten ein. Also heißt es: Ellenbogen vom Tisch und ran ans Programmieren. Anhand zahlreicher unterhaltsamer und praktischer Beispiele folgt man den beiden erfahrenen Softwareentwicklern auf dem Weg zur besseren Softwarearchitektur - wirkungsvoll, zeitlos und technologieneutral. Die Autoren zeigen auf, wie der Entwickler von heute tickt, sowohl im positiven als auch im negativen Sinne. Die Erfolgsmuster kann man für sich selbst und die eigene Arbeit übernehmen und gleichzeitig aus den Antipatterns lernen, wie man es besser nicht machen sollte. Am Ende des Buchs kennt man auf jeden Fall alle Regeln der 'Kunst' und jeden denkbaren Entwicklertyp, dem man im Berufsalltag begegnen könnte. So steht dem nächsten Projekt nichts (und niemand) mehr im Wege. Dieses Buch richtet sich an alle Softwarearchitekten, denen eine effektive, gut organisierte und kollegiale Arbeitsweise am Herzen liegt und die keine Scheu davor haben, im Zweifelsfall auch einmal ausgetretene Pfade zu verlassen und das eigene Tun zu hinterfragen.

Von Peter Hruschka und Gernot Starke stammt arc42, das freie Portal für Softwarearchitekten. Sie sind Gründungsmitglieder des International Software Qualification Board (iSAQB). Die hier vorgestellten Patterns durften (und mussten) sie in ihrem langen Berufsleben alle selbst erleben.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

3 Der Vielsehende

Erfolgreiche Architekten nutzen verschiedene Sichten auf Systeme, um unterschiedliche Aspekte in den Vordergrund zu rücken. Sie wechseln je nach Bedarf diese Sichten, um ein gegebenes Problem aus mehreren Perspektiven zu beleuchten und so zu einer tragfähigen Lösung zu kommen.

Versetzen Sie sich in die Lage des Regisseurs einer Fernsehshow. Sie sitzen im Kontrollraum, wo die Bilder vieler Kameras zusammenlaufen. Sie haben ständig eine große Auswahl unterschiedlicher Perspektiven und können frei entscheiden, welche dieser Aufnahmen die momentane Situation am besten wiedergibt: mal die Totale, mal die Großaufnahme des Stars von der tragbaren Handkamera neben der Bühne.

Diese Möglichkeiten eines Fernsehregisseurs nutzen auch Softwarearchitekten – nur dass es sich bei ihren Möglichkeiten nicht um Kamerabilder handelt, sondern um verschiedene Darstellungen oder Abstraktionen des Systems, an dem sie gerade arbeiten. Die Grundgedanken hat Philippe Kruchten bereits 1995 in kurzer Form veröffentlicht.1 Weitere, verständliche und praxisnahe Darstellungen finden Sie in aktuelleren Werken.2 Leider aber mangelt es in der Praxis immer noch an Akzeptanz dieser einfachen Idee. Das könnte mit deren düsterer Vergangenheit zu tun haben: Schon 1987 stellte der Amerikaner John Zachman die Idee mehrerer Sichten im IBM Systems Journal unter dem Titel „A Framework For Information Systems Architecture“3 vor. Unserer Ansicht nach eine der praxisfernsten Publikationen unter der Sonne: Zachman empfiehlt sage und schreibe 30 (in Worten: dreißig) verschiedene Sichten auf Architekturen4.

Wir haben die 4+1 Sichten von Philippe Kruchten etwas „pragmatisiert“: Das „+1“ bezieht sich – wie im Original – auf die funktionalen Anforderungen (Geschäftsprozesse, Anwendungsfälle), die Sie im System implementieren müssen.

Verwenden Sie folgende Sichten (Abb. 3.1):

  1. Als wichtigste die Bausteinsicht, die Sie unbedingt brauchen.
  2. Dazu die Verteilungssicht, hauptsächlich bei verteilten Systemen.
  3. Die Laufzeitsicht, zur Beschreibung wichtiger Interaktionen und zum Präzisieren oder Verifizieren der Bausteine.
  4. Und ergänzen Sie bei Bedarf die Sichten durch übergreifende, querschnittliche, technische Konzepte.

Abb. 3.1: Sichten auf Systeme

Die Bausteinsicht

Sie zeigt die statische Sicht auf den Quellcode in unterschiedlichen Abstraktionsebenen, also die Bausteine des Systems. Die oberste Ebene – sozusagen die Totale über den ganzen Saal – zeigt unser System als eine Blackbox, eingebettet in seine Nachbarsysteme. Wenn wir näher an den Quellcode heranzoomen, erkennen wir vielleicht die Schichten des Systems oder – bei einer Pipe-und-Filter-Architektur – die wichtigsten Programmteile (die Filter) und die Verbindungen zwischen ihnen (die Pipes). Wie nahe Sie als Architekt dem Code kommen wollen, hängt von Ihren Zielen ab. Wollen Sie aus Abstraktionen oder Diagrammen automatisch Sourcecode generieren, dann werden Sie bis zu Klassen und Operationen verfeinern. Wenn Sie Programmcode hauptsächlich manuell in einer Entwicklungsumgebung pflegen, dann genügt meistens eine abstraktere Stufe.

WAR STORY

Teile eines Systems haben wir mithilfe eines Generators aus einem UML-Modell generiert (genauer: die gesamte Persistenzschicht inklusive der DB-Tabellen). Diese Generierung betraf ausschließlich die fachlichen Bausteine (Entitäten) des Systems – diese mussten wir daher bis auf Attributebene modellieren.

An anderen Stellen desselben Systems waren alle Beteiligten damit zufrieden, dass wir auf sehr grober Ebene die Subsysteme mit ihren Schnittstellen beschrieben haben. (PH)

Die Laufzeitsicht

Die Laufzeitsicht klärt die Dynamik des Systems – das dynamische Zusammenspiel (von Instanzen) der Bausteine. Sie beschreibt, wie eine Komponente eine andere aufruft, was sie dabei übergibt und wie der Ablauf von hier aus weitergeht.

Sie können hierbei ebenfalls auf unterschiedlichen Abstraktionsebenen argumentieren: Zeigen Sie Interaktionen „im Großen“ zwischen Bausteinen hoher Abstraktionsebene, um Überblick zu bieten. Beschreiben Sie Abläufe „nahe am Code“, wenn es Ihnen um Details geht.

HINWEIS

Speziell in der Laufzeitsicht hilft es oftmals, Bausteine unterschiedlicher Abstraktionsebenen in konkreten Abläufen zusammenzubringen. Da darf ein großer, abstrakter Baustein (Beispiel: die „UI-Schicht“ oder das „SAP-FI-Modul“) gerne mit sehr feingranularen Bausteinen zusammenarbeiten.

Die Verteilungssicht

Eine dritte Sicht hilft Architekten oft noch: die Darstellung, welche Teile der Software auf welcher Hardware oder Infrastruktur ablaufen. Wir nennen das Verteilungs- oder Deployment-Sicht. Oftmals sind Architektur- und Entwurfsentscheidungen schon durch die beteiligten Rechner, Chips oder durch geografische Verteilung vorgegeben. Dann hilft es, diese Infrastruktur grafisch darzustellen (Abb. 3.2) und zu überlegen, welche Auswirkungen sie auf die Bausteinsicht oder die Laufzeitsicht hat.

Abb. 3.2: Drei wichtige Perspektiven: Baustein-, Laufzeit- und Verteilungssicht

Technische Konzepte

Auch technische Konzepte wie das Logging-Konzept oder die technischen Grundlagen der Implementierung der grafischen Oberfläche bilden eine (weitere!) Perspektive eines Systems. Diese Konzepte sind oft übergreifender Natur, wirken teilweise auf mehrere Bausteine eines Systems.

WAR STORY

Der Auftraggeber eines sehr innovativen und architektonisch anspruchsvollen Systems war ein Rechenzentrum, das mit starkem Fokus auf den Betrieb und die Administration des Systems agierte. Für diese Auftraggeber waren Verteilungssichten und Betriebshandbücher essenzielle Bestandteile der Lieferung, die zu jedem Release erwartet wurden und ohne die es keine Abnahme gab.

Unser Projekt musste zusätzlich einem technischen Lenkungskreis monatlich die wichtigen Entscheidungen, Strukturen und Konzepte berichten.

Für diese beiden Stakeholdergruppen haben wir im Projekt aus unserem (gut gepflegten) Wiki5 nach jeder Iteration sämtliche notwendigen Dokumente generiert – ohne dass wir Informationen doppelt pflegen mussten. (GS)

Spezielle Perspektiven nach Bedarf

In vielen unserer Projekte konnten wir mit nur drei Sichten (Bausteine, Laufzeitszenarien, Deployment/Verteilung) sowie den technischen Konzepten alle Beteiligten versorgen.

Manchmal jedoch benötigen Stakeholder weitere Sichten auf ein System. Gehen Sie in solchen Fällen pragmatisch vor: Erfragen Sie die Wünsche dieser Menschen und suchen Sie nach passenden Darstellungen. Sorgen Sie primär für Verständlichkeit, Akzeptanz und leichte Pflegbarkeit („Wartbarkeit“) in Ihren Modellen und Dokumenten. Einige Beispiele sollen Ihnen diese abstrakten Vorschläge konkretisieren:

  • In stark datenorientierten Systemen können Datenmodelle eine weitere Perspektive auf das Gesamtsystem zeigen. Diese können fachlich oder technisch sein – in der historischen Kunst der Datenmodellierung hieß das „logisches“ respektive „physisches“ Datenmodell.
  • Einen Sonderfall der Datensicht bilden sogenannte Fachklassen-, Business- oder Domänenmodelle. Diese konzentrieren sich auf rein fachliche „Dinge“, wobei sie manchmal Daten und Aufgaben (Services, Controller, Prozesse, Anwendungsfälle) enthalten.
  • In interaktiven Systemen können grafische Entwürfe (Bildschirmmasken, Screens, Klickprototypen oder ähnliche Mittel) eine sehr anwenderorientierte Sicht zeigen. Sie funktionieren gut als Ergänzung von Laufzeitszenarien.
  • Entwickler- oder Implementierungssichten können Teile der Bausteinsicht stark verfeinern. Geben Sie beispielsweise in einer solchen Sicht Implementierungsmuster oder Nutzungshinweise Ihrer favorisierten Frameworks an.
  • Schließlich gibt es noch die plakative, von Technik stark abstrahierende Marketing- oder Verkaufssicht: Hiermit können Sie die nicht technischen Stakeholder durch Reduktion auf sehr wenige Elemente und Konzepte abholen.

In der Mischung liegt die Kraft

Die Bausteinsicht ist unserer Erfahrung nach die wichtigste Perspektive, so wie für den Regisseur diejenige Kamera, mit der er von der Totalen bis hin zum kleinsten Detail zoomen kann. Oftmals unterstützen die anderen Sichten Architekten dabei, Durchblick im Dickicht komplexer Strukturen zu gewinnen. Wechseln von Perspektiven macht Architekturen schneller stabil, weil verschiedene Einflussfaktoren besser ans Tageslicht kommen.

Lernen Sie als „Ablaufdenker“ einmal mehr in statischen Strukturen zu denken, aber als „Bausteinmensch“ mehr in Abläufen und Verteilung.

HINWEIS

Verwenden Sie bewusst verschiedene Perspektiven auf Ihr System.

  • Drei klassische Sichten (Baustein-, Laufzeit- und Verteilungssicht) ergänzen Sie um die benötigten technischen Konzepte.
  • Oft bringt ein Domänenmodell zusätzliche Transparenz in die fachlichen Aspekte eines Systems. Hier lohnt ein Blick auf das „Domain-driven Design“.6
  • Setzen Sie unterschiedliche Sichten insbesondere bei Architekturen ein, mit denen Sie weniger vertraut sind.
  • Beachten Sie die Wechselwirkung zwischen den Perspektiven: Eine Entscheidung in der...
Blick ins Buch

Weitere E-Books zum Thema: Software-Design - Softwareentwicklung

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

Weitere Zeitschriften

Computerwoche

Computerwoche

Die COMPUTERWOCHE berichtet schnell und detailliert über alle Belange der Informations- und Kommunikationstechnik in Unternehmen – über Trends, neue Technologien, Produkte und Märkte. IT-Manager ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

Das Grundeigentum

Das Grundeigentum

Das Grundeigentum - Zeitschrift für die gesamte Grundstücks-, Haus- und Wohnungswirtschaft. Für jeden, der sich gründlich und aktuell informieren will. Zu allen Fragen rund um die Immobilie. Mit ...

DER PRAKTIKER

DER PRAKTIKER

Technische Fachzeitschrift aus der Praxis für die Praxis in allen Bereichen des Handwerks und der Industrie. “der praktiker“ ist die Fachzeitschrift für alle Bereiche der fügetechnischen ...

Deutsche Hockey Zeitung

Deutsche Hockey Zeitung

Informiert über das nationale und internationale Hockey. Die Deutsche Hockeyzeitung ist Ihr kompetenter Partner für Ihren Auftritt im Hockeymarkt. Sie ist die einzige bundesweite Hockeyzeitung ...

IT-BUSINESS

IT-BUSINESS

IT-BUSINESS ist seit mehr als 25 Jahren die Fachzeitschrift für den IT-Markt Sie liefert 2-wöchentlich fundiert recherchierte Themen, praxisbezogene Fallstudien, aktuelle Hintergrundberichte aus ...