Ich denke, UML-Diagramme können nur nützlich sein, wenn sie etwas auf einer höheren Abstraktionsebene ausdrücken als Ihr Code .
Das Schreiben von UML nur zum Zwecke des Schreibens von UML wird zu einer unnötigen Bürokratie und macht das Projekt und den Code weniger anpassungsfähig für Änderungen, ohne dass dies irgendeinen Nutzen bringt.
Zum Beispiel liefert ein UML-Klassendiagramm, das alle Klassen eines Pakets mit all ihren Attributen und Methoden zeigt - etwas, das leicht automatisch generiert werden kann - überhaupt keinen Wert: Es befindet sich auf derselben Abstraktionsebene wie Ihr Code . Außerdem wird der Code mit Sicherheit eine bessere Quelle für diese Informationen sein, da er immer auf dem neuesten Stand ist und wahrscheinlich auf eine Weise dokumentiert und organisiert wird, die es einfacher macht zu wissen, welche Methoden / Attribute / Dinge wichtiger sind.
Auf der anderen Seite kann es eine gute Idee sein, die Konzepte in einem Diagramm zu dokumentieren, wenn die Abstraktionsebene über der im Code ausgedrückten Ebene liegt.
Beispielsweise kann ein Diagramm, das die übergeordneten abstrakten Module eines komplexen Systems mit ihren Abhängigkeiten und möglicherweise einer kurzen Beschreibung ihrer Zuständigkeiten und dem Paket / Namespace zeigt, dem sie im Quellcode zugeordnet sind, für ein neues Teammitglied von großem Nutzen sein Das muss in das Projekt eingeführt werden oder kann auch verwendet werden, um herauszufinden, wo eine neue Klasse / Funktionalität geworfen werden soll.
Ein anderes Beispiel eines nützlichen Diagramms könnte ein Sequenzdiagramm sein, das die in einem Kommunikationsprotokoll auszuführenden Schritte auf hoher Ebene zeigt. Vielleicht hat jeder dieser Schritte kleine Macken und Komplexitäten, aber es ist wahrscheinlich genug, um sie im Code selbst zu beschreiben. Das übergeordnete Diagramm kann einem Programmierer helfen, das "Gesamtbild" der Dinge leicht zu verstehen, ohne sich um die Komplexität jeder Interaktion kümmern zu müssen.
Wie auch immer, das sind nur einige Beispiele; Es gibt viele Fälle, in denen ein einfaches Diagramm sehr hilfreich sein kann. Denken Sie daran, dass Sie sie nur dann ausführen sollten, wenn Sie im Code selbst nichts ausdrücken können. Wenn Sie feststellen, dass Sie UML-Diagramme verwenden, um den Quellcode selbst zu erklären, sollten Sie den Quellcode stattdessen selbstdokumentierender gestalten.
Schließlich können einige der allgemeinen Regeln, die für Code gelten, auch für Diagramme gelten: Vermeiden Sie es, sich zu wiederholen, halten Sie es einfach, fürchten Sie sich nicht davor, Dinge zu ändern (nur weil etwas in einem UML-Diagramm dokumentiert ist, heißt das nicht, dass es nicht möglich ist geändert werden) und denken Sie immer daran, wer diese Diagramme in Zukunft lesen / pflegen wird (wahrscheinlich Ihr zukünftiges Ich), wenn Sie sie schreiben :)