Ich denke, dass das Klassendiagramm immer verwendet werden sollte, um den Code zu dokumentieren. Ich glaube nicht, dass Sie die gesamte Architektur sehen können, wenn Sie sich den Code direkt ansehen. Ich bin damit einverstanden, dass Sie verstehen können, wenn Sie den Code selbst geschrieben haben oder lange daran gearbeitet haben, aber jedes Mal, wenn eine neue Nachfrage entsteht, müssen Sie den Code überprüfen und suchen, wo Sie diesen neuen Code hinzufügen können.
Was wir in unserem Unternehmen tun, ist, Klassendiagrammansichten unseres Projekts zu haben. Wir verbringen keine Zeit mit der Modellierung, sondern verwenden nur Klassendiagramme, um den Code nach einem Reverse Engineering zu visualisieren. Wenn sich der Code ändert, gibt es einen Zusammenführungsmechanismus und meine Klassendiagramme werden immer aktualisiert.
Was fantastisch ist, ist in der Lage zu sein, Kommentare und Einschränkungen zusätzlich zu Java Doc in das Diagramm einzufügen. Wir kehren das Projekt um, erstellen dann ein Modell und extrahieren abschließend Ansichten aus dem Modell, die als UML-Klassendiagramme angezeigt werden. Ich programmiere derzeit noch nicht, erhalte aber einen Entwurf für die Codearchitektur und arbeite daran, um meine aktuelle Architektur zu erstellen oder zu erweitern. Wenn es mir gefällt, drücke ich einen Knopf und mein bestehender Code wird mit meinen Diagrammen zusammengeführt. Ich meine Zusammenführen und schon gar nicht vollständige Codegenerierung. Es wird nur das Delta zwischen vorhandenem Code und meinen Diagrammen geschrieben, nicht jedes Mal der vollständige Code.
Ich studiere seit vielen Jahren, habe einen Master-Abschluss und noch Code, aber ich möchte nicht nur ein Java-Schriftsteller sein und möchte mein Gehirn ein wenig mehr nutzen. UML-Ansichten geben mir das, was ich brauche, um über meine Architektur nachzudenken, mit den anderen Teammitgliedern zu kommunizieren und eine bessere Architektur zu erstellen, ohne die modellgetriebene Entwicklung zu verwenden, sondern nur das Delta zwischen vorhandenem manuell geschriebenem Code und grafisch erstellten Klassendiagrammen. Ich erstelle meine Architektur auf Codeebene, kehre sie dann um und schaue mir das Modell an. Ich erstelle Ansichten und versuche, meine Architektur direkt im Code zu verbessern, dann wieder umzukehren und zu sehen, was getan wird usw. Es handelt sich um eine permanente Iteration ohne modellgetriebene Codegenerierung, sondern um Live-Synchronisation oder Zusammenführung von Code und UML. Was mir gefällt ist, dass der Code die UML antreibt und nicht das Gegenteil.