Architektur als Code mit C4

Feb 15 2023
Es gibt eine Reihe von Tools und Ansätzen zur grafischen Darstellung von Softwarekonzepten, -designs und -architekturen. Wenn ich die Abfolge und den Fluss der Kommunikation zwischen Systemen oder Personen beschreiben muss, verlasse ich mich normalerweise auf ein Sequenzdiagramm.

Es gibt eine Reihe von Tools und Ansätzen zur grafischen Darstellung von Softwarekonzepten, -designs und -architekturen. Wenn ich die Abfolge und den Fluss der Kommunikation zwischen Systemen oder Personen beschreiben muss, verlasse ich mich normalerweise auf ein Sequenzdiagramm. Zustandsdiagramme sind auch eine gute Wahl, wenn es darum geht, das Systemverhalten anhand von Aktionen und den daraus resultierenden Systemzustandsübergängen zu untersuchen. In Bezug auf System-zu-System- oder Komponenten-zu-System-Diagrammtypen werden Kästchen und Pfeile verwendet. Um das besser zu machen, C4 (https://c4model.com/) wurde von Simon Brown entwickelt, um einen gemeinsamen Ansatz zur Darstellung von Kontext, Containern, Komponenten und Klassendiagrammen bereitzustellen.

Als Code

Die oben genannten Techniken haben Eingang in Tools gefunden, die die Verwendung einer textbasierten domänenspezifischen Sprache (DSL) unterstützen, um tatsächlich Code zum Beschreiben und Rendern der Zeichnung in verschiedenen grafischen Formaten zu verwenden. Einige Beispiele für diese Tools sind www.sequencediagram.org, das sich sehr intuitiv für die Entwicklung von Sequenzdiagrammen eignet. Ein weiteres solches Tool ist PlantUML. Wir haben vor kurzem damit begonnen, die C4-Unterstützung und Integration mit Visual Studio Code über die Erweiterung () zu nutzen.https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml). Dies hat sich als äußerst wertvoll erwiesen.

Es heißt, dass Architektur darauf abzielt, ein gemeinsames Verständnis des Softwaresystems und seines Designs zu vermitteln. Der beste Weg, dies sicherzustellen, besteht darin, dass Entwickler und Teams einheitliche Mittel verwenden, um dieses Verständnis zu vermitteln. Visual Studio, PlantUML und C4 tragen wesentlich zu diesem Ziel bei. Und mit PlantUMLs DSL können Teams dieses gemeinsame Verständnis als Code verwalten.