Wir kennen und mögen UML, aber wir verwenden es pragmatisch. UML-Sequenzdiagramme eignen sich hervorragend für ihr Fachgebiet (zur Visualisierung von zeitlichen Abläufen). Wir verwenden auch oft Aktivitätsdiagramme. Einfache Anwendungsfalldiagramme sind in der Anfangsphase des Requirements Engineering hilfreich. Wir verwenden praktisch keine Klassendiagramme. Wir waren oft gezwungen, Komponentendiagramme zu verwenden, um die Architektur unserer Anwendungen zu visualisieren. Irgendwie hat es nie gut funktioniert. Wir hatten oft den Eindruck, dass die komplexen Regeln der UML-Notation von Komponentendiagrammen und ihre Detailgenauigkeit für eine einfache Visualisierung der Softwarearchitektur nicht optimal sind. Glücklicherweise haben wir ein besseres Werkzeug für diesen Zweck gefunden. C4-Modell. Dieses Modell ermöglicht die Visualisierung der Softwarearchitektur auf vier Ebenen: Kontext, Container, Komponente und Code. Dies ist eine sehr einfache Notation, mit der wir schrittweise in die Architektur des Informationssystems eintauchen können. Wir beginnen auf hohem Niveau aus dem Kontext unserer Software mit dem Benutzer und Systemen von Drittanbietern. Von dieser Ebene aus können wir auf Container (d. H. Einzelne Anwendungen) zoomen. Niedriger sind die Komponenten (definitiv einfacher dargestellt als in UML-Komponentendiagrammen). Bei Bedarf können wir zu einzelnen Komponenten gehen, um die Codestruktur anzuzeigen (das C4-Modell definiert auf dieser Ebene keine Notation – Masochisten können UML-Klassendiagramme verwenden ?). C4-Diagramme eignen sich bisher hervorragend zur Visualisierung der Architektur der von uns erstellten Software. Was unseren Programmierern gefällt, ist die Fähigkeit, alle ersten drei Ebenen von C4-Diagrammen mit einfachem Quellcode zu definieren. Ja, wir zeichnen unsere Architektur nicht. Wir schreiben es!