Stefan Zörner
18.11.2021
Architekturdokumentation als Textwüste? Die zentralen Lösungsideen Eures Softwarevorhabens könnt Ihr auch mit einer Grafik vermitteln. Dieser Beitrag führt in einfach zu erstellende Begriffsbilder (sogenannte Concept-Maps) ein. Und er zeigt in einem Beispiel, was in meinem Kopf vorgeht, wenn ich über Softwarearchitektur nachdenke. 'Being John Malkovich' - nur ohne John Malkovich.
Der deutsche Arzt Fritz Kahn (1888 - 1968) war zugleich auch Autor populärwisschenschaftlicher Bücher über den menschlichen Körper. Auf wirkungsvolle Weise nutzte er in seinen originellen Visualisierungen Analogien zu Logistik- und Fertigungsprozessen, Organe wurden zu Maschinen.
Sein bedeutendstes Werk, “Das Leben des Menschen” erschien 1922 - 1931 in fünf Bänden mit über 1600 Seiten und über 1000 Abbildungen. Es beinhaltet auch seine bekannteste Grafik: “Der Mensch als Industriepalast”. Der Bildband links zeigt auf dem Cover einen Ausschnitt daraus und vermittelt so einen Eindruck von Kahns kunstvoller Darstellungstechnik.
Die Grafiker des Bauhauses waren ebenso begeistert wie Albert Einstein, der Kahn bei seiner Emigration in die USA half. Kahn war Jude, die Nazis verbrannten und verboten seine Bücher. Ganz vergessen ist sein Werk nicht. Im Gegenteil, wie der Bildband aus dem Taschen-Verlag zeigt - er erschien 2017. Fritz Kahn gilt heute als Pionier der Infografiken.
Wikipedia beschreibt Infografiken treffend als “visuelle Repräsentation von Gesamtzusammenhängen in einer Abbildung” (Informationsgrafik bei Wikipedia). Eine besonders bei Architekturbeschreibungen nützliche Form sind sogenannte Concept-Maps (deutsch manchmal “Begriffsbilder”). Diese visualisieren Begriffe – die “Konzepte” – und zeigen Zusammenhängen zwischen diesen in Form eines Graphen mit Knoten und Kanten. Sie stellen Informationen auf diese Weise grafisch dar und dienen als ein Mittel der Gedankenordnung und -reflexion (zum Wikipedia-Beitrag “Concept-Map”).
Die folgende Abbildung, angelehnt an ein Bild von Jean-Louis Zimmermann (Quelle), beschreibt – selbst in Form einer einfachen Concept-Map (voll meta ;-) – was Concept-Maps sind und wozu sie nützlich sind.
Wandert einfach mal an den Knoten und Kanten der Abbildung oben entlang! Eine Concept-Map besteht aus Schlüsselbegriffen in Kästchen, die durch Pfeile beschriftet mit Phrasen verbunden sind. Sie zeigt zentrale Ideen und formt ein Netzwerk. Concept-Maps können Euch dabei helfen Texte zu erschließen und Wissen zu systematisieren.
Im Unterschied zu Mindmaps gibt es bei einer Concept-Map nicht unbedingt den einen zentralen Begriff, an den sich andere in Hauptästen und Verfeinerungen Ebene um Ebene andocken. Mindmaps sind ein Brainstorming-Werkzeug; Concept-Maps hingegen kommen in der Regel methodischer und “sortierter” daher.
Ich setze Concept-Maps in der Zusammenarbeit mit Teams rund um Softwareentwicklung und -architektur regelmäßig ein. Wie kann das passen? Simon Brown etwa macht in seinem beliebten C4-Modell zur Visualisierung von Software ziemlich deutlich Reklame dafür, sich auf einen gemeinsamen Satz an (Zerlegungs-)begriffen zu einigen, den das Team im Vorhaben einheitlich verwendet:
“Um Abbildungen des Quelltextes zu erstellen benötigen wir als Allererstes einen gemeinsamen Schatz von Begriffen. Wir schaffen so eine einheitliche Sprache, mit der wir die statische Struktur des Softwaresystems beschreiben.” (Simon Brown)
Entsprechend fertige ich in Projekten gerne Begriffsbilder an, welche die zentralen Zerlegungsbegriffe (z.B. Service, Komponente) aber auch Aussagen zu Elementen aus dem Architekturstil und andere wichtige Architekturkonzepte in Beziehung zueinander setzen. Das können Prinzipien sein, Methoden und auch Technologien.
Der Einsatz von Concept-Maps in einem konkreten Vorhaben, etwa für die vorherrschenden Lösungsansätze in der Architektur oder die Fachlichkeit, stiftet großen Nutzen im Verstehen und beim Erklären, beispielsweise an Neue im Team.
Treten wir hier einen Schritt zurück. Nehmen wir an, Ihr steht bezüglich Softwarearchitektur am Anfang Eures Weges. Könnte ich dieser Zielgruppe nicht auch ein Begriffsbild an die Hand geben? Was sind die wichtigsten Konzepte rund um Softwarearchitektur? Und wie hängen diese zusammen?
Bei unserem diesjährigen Architektur-Punsch mache ich eine interaktive Session genau zu diesem Thema. Als Vorbereitung dazu habe ich eine kleine Concept-Map angefertigt, zunächst einmal um meine Ideen zu ordnen. Sie bildet den Kern der folgenden Abbildung, bei der ich mich im Look von Fritz Kahn habe inspirieren lassen (ohne allerdings seine Klasse zu erreichen).
Auch hier seid Ihr natürlich herzlich eingeladen das Bild zu erkunden, an den Verbindungen entlangzufahren und vielleicht auch Eurer eigenes Vorhaben in Gedanken darauf abzubilden. Was waren bei Euch zentrale Rahmenbedingungen? Welche Entscheidungen haben die Lösung geprägt? Das Begriffsbild findet Ihr hier auch nochmal als PDF in groß, und bei Bedarf auch auf Englisch.
“Eine Softwarearchitektur ist die Summe verschiedener wichtiger Entscheidungen …” (Rational Unified Process)
Falls Ihr selber Concept-Maps erstellt wollt möchte ich Euch zum Abschluss noch das schöne yEd ans Herz legen. yEd ist eine kostenlose Desktop-Anwendung für Windows, Unix/Linux und Mac OS, mit der Ihr prima Graphen mit beschrifteten Kanten erarbeiten könnt. Es beinhaltet einen reichen Vorrat an Algorithmen zum Layout Eurer Begriffsbilder. Die Concept-Map zu Concept-Maps weiter oben im Beitrag (Abb. 1) habe ich mit yED angefertigt.
Und wenn Euch das Bild “Ein Kopf voller Softwarearchitektur” inhaltlich neugierig gemacht hat: In meinem diesjährigen Punsch-Workshop “Die Basics: So geht Softwarearchitektur!” bildet es den Einstiegs-, Dreh- und Angelpunkt. Ihr erlebt es auf interaktive Art und Weise mit der ein oder anderen Vertiefung, mit Beispielen und kleinen Übungen als Vertiefungen. Neugierig geworden? Vielleicht sehen wir uns …
Mehr Anregungen könnt Ihr am 13. Dezember 2021 bei unserem Architektur-Punsch bekommen. Einfach anmelden!