Problem

Bei neuen Projekten ist es hilfreich, ein Komponentendiagramm für die Package-Struktur anzulegen, um schnell einen Überblick zu bekommen wie die einzelnen Packages zusammenhängen. Allerdings ist eine manuelle Pflege bei vielen Änderungen sehr mühsam, vor allem bei refactorfreudigen Kollegen und ständig wechselnden Kundenvorstellungen.

Kann man das nicht automatisch erstellen lassen? Ja, aber sieht dann halt meistens nicht gut aus.
Was ist mit einem Bash-Skript, welches durch Suchen und Ersetzen die entstandene Datei zu verschönern? Ok, aber geht das nicht auch automatisch?

Lösung

Man schreibt sich seinen eigenen Codegenerator. Dafür gibt es eine ganze Reihe von bestehenden Tools. Eine Möglichkeit ist Apache Velocity, eine auf Java basierende Template Engine. Mit ihr können automatisiert Textdateien und somit auch textbasierende UML-Diagramme, wie z. B. PlantUML, erzeugt werden.

Velocity bietet die Möglichkeit Templates anzulegen, sie mit Kontext zu füllen und anschließend als Datei zu speichern. Für den Kontext muss zunächst ein Model entwickelt werden, in dem alle Komponenten und die dazugehörigen Relationen gespeichert werden. Jetzt muss nur noch ein bisschen Code drumherum gebastelt werden, der die Informationen aus dem bestehenden Diagramm parst, im Model abspeichert und dieses anschließend dem Template übergibt. Beim Parsen kann festgelegt werden, ob bestimmte Pakete komplett ignoriert werden oder eventuell anders behandelt werden.

Beispiel TP 144

Beispiel

Ein einfaches Template mit dazugehörigem Model könnte dann folgendermaßen aussehen:

Beispiel 1 TP 144
Die farbigen Markierungen veranschaulichen, wie Model, Template und Output miteinander zusammenhängen.
TP 144 Visual

Weiterführende Aspekte

---

Autorin: Vera Müller / Software Architect

SCHREIB UNS

* Pflichtfeld

SCHREIB UNS

* Pflichtfeld

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen