: Gernot Starke, Peter Hruschka
: Knigge für Softwarearchitekten
: entwickler.press
: 9783868027792
: 3
: CHF 18.00
:
: Informatik, EDV
: German
: 264
: Wasserzeichen
: PC/MAC/eReader/Tablet
: ePUB
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.

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 generiere