1 / 58

Visualisierung von UML-Diagrammen

Visualisierung von UML-Diagrammen. Christian M. Meyer christian.meyer@stud.tu-darmstadt.de. Visualisierung von UML-Diagrammen » Einleitung. Einleitung. Vorstellung des GoVisual -Algorithmus Artikel von Gutwenger, Jünger, Klein, Kupke, Leipert und Mutzel:.

eytan
Download Presentation

Visualisierung von UML-Diagrammen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visualisierung von UML-Diagrammen Christian M. Meyer christian.meyer@stud.tu-darmstadt.de

  2. Visualisierung von UML-Diagrammen » Einleitung Einleitung • Vorstellung des GoVisual-Algorithmus • Artikel von Gutwenger, Jünger, Klein, Kupke, Leipert und Mutzel: „A New Approach for Visualizing UML Class Diagrams“

  3. Visualisierung von UML-Diagrammen » Agenda Agenda • Einleitung • Grundlagen • Motivation • Ziele • GoVisual Algorithmus • Zusammenfassung • Software und Links

  4. Visualisierung von UML-Diagrammen » Agenda Agenda • Einleitung • Grundlagen • Motivation • Ziele • GoVisual Algorithmus • Zusammenfassung • Software und Links

  5. Visualisierung von UML-Diagrammen » Grundlagen » Graphen Graph • Graph G = (V, E) mit • VKnotenmenge • EKantenmenge gerichteter Graph ungerichteter Graph

  6. Visualisierung von UML-Diagrammen » Grundlagen » Graphen Einbettung, Planarität • Einbettung: Darstellung eines Graphen in der Ebene • Knoten sind Punkte • Kanten sind Verbindungslinien • Planar: Der Graph kann ohne Kreuzungen in der Ebene eingebettet werden

  7. Visualisierung von UML-Diagrammen » Grundlagen » UML UML • UML = Unified Modeling Language • Modellierungssprache für Software • Standardisiert von der OMG (Object Management Group)

  8. Visualisierung von UML-Diagrammen » Grundlagen » UML Entwicklung der UML 1991 Coad/Yourdan: OOA/OOD Rumbaugh: OMT 1994 Jacobsen: OOSE Booch: OOAD 1995 Unified Method 0.8 Oracle Microsoft Hewlett Packard 1996 Unified Modeling Language 0.9 Unified Modeling Language 1.0 und 1.1 1997 (von der OMG zum Standard erklärt) 2003 Unified Modeling Language 2.0

  9. Visualisierung von UML-Diagrammen » Grundlagen » UML Warum UML? • Abstrakter als Programmiersprache • Einheitliche Beschreibungen im Projekt • Sprachenunabhängig • Verschiedene Sichten: statisch, dynamisch • Verständigung zwischen Entwicklern, Architekten, Designer, Auftraggeber,… • Dokumentation

  10. Visualisierung von UML-Diagrammen » Grundlagen » UML Diagramme • Graphische Interpretation der Modelle: Use-Case-Diagramm Klassendiagramm Interaktionsdiagramm Zustandsdiagramm Sequenzdiagramm Deploymentdiagramm Komponentendiagramm Timingdiagramm

  11. Visualisierung von UML-Diagrammen » Grundlagen » UML Klassendiagramm • Beliebtestes Diagramm • Statische Struktur der Software • Klassen • Beziehungen

  12. Visualisierung von UML-Diagrammen » Grundlagen » UML Klassen • Datentyp • Attribute und Methoden Klassenname ClassName Attribute Methoden Modifier – private # protected + public

  13. Visualisierung von UML-Diagrammen » Grundlagen » UML Beziehungen (1) • Generalisierung • Attribute und Methoden werden „geerbt“ Oberklasse SuperClass Generalisierung, Vererbung SubClass Subklasse,Kindklasse

  14. Visualisierung von UML-Diagrammen » Grundlagen » UML Class1 Class2 Class1 Class2 Class1 Class3 Beziehungen (2) • Assoziation • Beziehung zwischen 2 oder mehr Typen • Navigierbarkeit, Multiplizität • Einfache Assoziation: • Aggregation: • Komposition:

  15. Visualisierung von UML-Diagrammen » Grundlagen » UML Klassendiagramm als Graph • Generalisierungen sind gerichtet • Assoziationsrichtung für automatische Layoutalgorithmen unwichtig • Daher: semi-gerichteter GraphG = (V, A, E) mit • V Klassenmenge • A Gerichtete Generalisierungskanten • E Ungerichtete Assoziationskanten

  16. Visualisierung von UML-Diagrammen » Agenda Agenda • Einleitung • Grundlagen • Motivation • Ziele • GoVisual Algorithmus • Zusammenfassung • Software und Links

  17. Visualisierung von UML-Diagrammen » Motivation Motivation (1) • UML-Diagramme sind groß • Layout von Hand ist aufwändig • Automatisches Layout für MDA notwendig • Viele Tools für automatisches Graphenlayout • Anbindung an führende Case-Tools: • Rational Rose • Together • Microsoft Visio

  18. Visualisierung von UML-Diagrammen » Motivation Motivation (2) • Aber: Tools haben viele Nachteile • Hierarchische Vererbungsstrukturenwerden nicht behandelt • Übersicht ist oft unzureichend • Ästhetische Mängel • Spezielle Algorithmen für UML-Diagramme sinnvoll

  19. Visualisierung von UML-Diagrammen » Probleme Probleme (1)   Viele Kreuzungen Unnötige Knicke Nicht orthogonal Einzelne Vererbungspfeile Überlappung Assoziation-Klasse    

  20. Visualisierung von UML-Diagrammen » Probleme Probleme (2)  Richtung der Vererbungspfeile Fehlende Hierarchie  

  21. Visualisierung von UML-Diagrammen » Probleme Probleme (3)  Verschachtelte Hierarchien 

  22. Visualisierung von UML-Diagrammen » Ziele Ziele • Kriterien für ästhetische UML-Diagramme: • Minimale Kreuzungen • Minimale Knicke • Einheitliche Richtung in Hierarchien • Keine verschachtelten Hierarchien • Beziehungen je nach Semantik betrachten • Orthogonales Layout • Kombinierte Vererbungspfeile • Gut lesbare Kantenbeschriftungen

  23. Visualisierung von UML-Diagrammen » Ziele Beispiel

  24. Visualisierung von UML-Diagrammen » Agenda Agenda • Einleitung • Grundlagen • Motivation • Ziele • GoVisual Algorithmus • Zusammenfassung • Software und Links

  25. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  26. Visualisierung von UML-Diagrammen » Algorithmus » Vorberechnung v v w1 w2 w3 w1 w2 w3 Vorberechnung (1) • Generalisierungen sollen verbunden werden • Dadurch ergeben sich u.U. neue Kreuzungen • Bleiben bei Planarisierung unerkannt

  27. Visualisierung von UML-Diagrammen » Algorithmus » Vorberechnung v v dv w1 w2 w3 w1 w2 w3 Vorberechnung (2) • Lösung: Zwischenknoten einfügen

  28. Visualisierung von UML-Diagrammen » Algorithmus » Vorberechnung v dv w1 w2 w3 Vorberechnung (3) O(|V|)

  29. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  30. Visualisierung von UML-Diagrammen » Algorithmus » Hierarchien Hierarchie • Generalisierungen bilden Hierarchien • Zusammenhängende Subgraphen von(V, A) • Tiefensuche,O(|V|+|A|)

  31. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  32. Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren SuperClass1 SuperClass2 Class1 Class3 SubClass Class2 Gleichgerichtete Graphen • Alle Kanten zeigen in die gleiche Richtung

  33. Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren SuperClass1 SuperClass2 Class1 SuperClass1 SuperClass2 Class3 SubClass Class3 Class1 Class2 Class2 SubClass Gleichgerichtete Graphen • Alle Kanten zeigen in die gleiche Richtung

  34. Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren Hierarchien gleichrichten • Hierarchien werden gleichgerichtet • bessere Übersicht • Hierarchiensofort erkennbar

  35. Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren Planar, aber nicht gleichgerichtet planar Planarisieren • Planare gleichgerichtete Einbettung finden • Aber: Nicht immer möglich

  36. Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren Algorithmen • G ist gleichgerichtet planar und G hat genau eine Senke: • Algorithmus vonBertolazzi (1998)O(|VH|), Algorithmus gibt Einbettung zurück • Mehrere Senken: Supersenke verwenden • sonst: NP-schwer, Kreuzungen durch Dummy-Knoten ersetzen, Algorithmen von Sugiyama oder Eades/Kelly,…

  37. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  38. Visualisierung von UML-Diagrammen » Algorithmus » ST-Graph ST-Graph (1) • Quelle: Knoten s, nur ausgehende Kanten • Senke: Knoten t, nur eingehende Kanten • ST-Graph: Graph mit genau einer Quelle s, einer Senke t und einer Kante (s, t) s t

  39. Visualisierung von UML-Diagrammen » Algorithmus » ST-Graph SuperClass1 SubClass1 SubClass1 SuperClass2 SubClass2 SubClass2 Class ST-Graph (2) • Graph mit mehreren Quellen/Senken kann in ST-Graph umgewandelt werden: Sink SuperClass1 SuperClass2 Class Source

  40. Visualisierung von UML-Diagrammen » Algorithmus » ST-Graph Sink SubClass1 SubClass2 SuperClass1 SuperClass2 Class Source ST-Graph (3) O(|V|)

  41. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  42. Visualisierung von UML-Diagrammen » Algorithmus » Assoziationen einfügen Component Leaf Leaf Composite Composite Source Assoziationen einfügen • Assoziationen innerhalb der Hierarchie H einfügen, Beispiel Composite-Pattern: • Kantenmenge:{(u, v)  E | u  VH v  VH} • Algorithmen von Battista oder Gutwenger Component Source

  43. Visualisierung von UML-Diagrammen » Algorithmus » Übersicht Algorithmus

  44. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen v5 v1 v3 v4 v6 v2 v3 v6 v5 v4 v2 v1 c3 c1 c4 c2 Cluster-Graph • Cluster-Graph: C = (G, T) mit G = (V, E) Graph und T = (VT, ET) gerichteter Baum • Cluster: C(v) = (G(v), T(v)) • T definiert Inklusionsrelation auf G G T

  45. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen Clusterhierarchien • Jede VererbungshierarchieH bildet Cluster • Gleichgerichtet planare Einbettungin PH vorhanden • Gesucht: Planare Einbettung des gesamten Graphen, Cluster sollen beachtet werden

  46. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen v1 v4 v2 v3 v7 v6 v5 Facetten • Facette: Flächen, die von Kanten eingeschlossen werden innere Facette äußere Facette

  47. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen v1 v4 v2 v3 c v5 Wheel-Graph • Wheel-Graph: Äußere Knoten bilden einen Kreis, Zentrum c ist mit allen äußeren Knoten verbunden.

  48. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen c1 v1 v4 v2 v3 c v5 v3 v4 v5 v2 v1 c2 Wheel-Graph bilden • Knoten der äußeren Facette von PH bilden den Kreis des Wheel-Graphen

  49. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen u3 v3 v3 u3 c2 v1 v4 v2 c1 v5 u1 u2 v1 v4 v2 c1 v5 u2 u1 c2 Planarisierung • Assoziationen zu anderen Wheel-Graphen • Planare Einbettung eines Subgraphen finden • Außenknoten des Wheel-Graphen verändert

  50. Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen v1 v1 v2 v2 v3 v5 v3 v3 v4 v5 v1 v4 v2 v3 v2 c v1 c v4 v4 v5 v5 Cluster-Eingänge • Wheel-Graph gibt Eingangsreihenfolge vor:

More Related