Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Visualisierung von UML-Diagrammen

Ähnliche Präsentationen


Präsentation zum Thema: "Visualisierung von UML-Diagrammen"—  Präsentation transkript:

1 Visualisierung von UML-Diagrammen
Christian M. Meyer

2 „A New Approach for Visualizing UML Class Diagrams“
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 Agenda Einleitung Grundlagen Motivation Ziele GoVisual Algorithmus
Visualisierung von UML-Diagrammen » Agenda Agenda Einleitung Grundlagen Motivation Ziele GoVisual Algorithmus Zusammenfassung Software und Links

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

5 Graph Graph G = (V, E) mit V Knotenmenge E Kantenmenge
Visualisierung von UML-Diagrammen » Grundlagen » Graphen Graph Graph G = (V, E) mit V Knotenmenge E Kantenmenge gerichteter Graph ungerichteter Graph

6 Einbettung, Planarität
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 UML UML = Unified Modeling Language Modellierungssprache für Software
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 Booch: OOAD Jacobsen: OOSE 1995 Unified Method 0.8 Oracle Microsoft Hewlett Packard 1996 Unified Modeling Language 0.9 1997 Unified Modeling Language 1.0 und 1.1 (von der OMG zum Standard erklärt) 2003 Unified Modeling Language 2.0

9 Warum UML? Abstrakter als Programmiersprache
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 Interaktionsdiagramm
Visualisierung von UML-Diagrammen » Grundlagen » UML Diagramme Graphische Interpretation der Modelle: Use-Case-Diagramm Klassendiagramm Interaktionsdiagramm Zustandsdiagramm Sequenzdiagramm Deploymentdiagramm Komponentendiagramm Timingdiagramm

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

12 Klassen Datentyp Attribute und Methoden Klassenname ClassName
Visualisierung von UML-Diagrammen » Grundlagen » UML Klassen Datentyp Attribute und Methoden Klassenname ClassName Attribute attribute1: Type attribute2: Type privateOperation() # protectedOperation() + publicOperation() Methoden Modifier – private # protected + public

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

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

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

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

17 Motivation (1) UML-Diagramme sind groß Layout von Hand ist aufwändig
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 Motivation (2) Aber: Tools haben viele Nachteile
Visualisierung von UML-Diagrammen » Motivation Motivation (2) Aber: Tools haben viele Nachteile Hierarchische Vererbungsstrukturen werden nicht behandelt Übersicht ist oft unzureichend Ästhetische Mängel Spezielle Algorithmen für UML-Diagramme sinnvoll

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

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

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

22 Ziele Kriterien für ästhetische UML-Diagramme: Minimale Kreuzungen
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 Agenda Einleitung Grundlagen Motivation Ziele GoVisual Algorithmus
Visualisierung von UML-Diagrammen » Agenda Agenda Einleitung Grundlagen Motivation Ziele GoVisual Algorithmus Zusammenfassung Software und Links

25 Visualisierung von UML-Diagrammen » Algorithmus » Übersicht

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

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

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

29 Visualisierung von UML-Diagrammen » Algorithmus » Übersicht

30 Hierarchie Generalisierungen bilden Hierarchien
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

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

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

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

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

36 Algorithmen G ist gleichgerichtet planar und G hat genau eine Senke:
Visualisierung von UML-Diagrammen » Algorithmus » Gleichrichten und Planarisieren Algorithmen G ist gleichgerichtet planar und G hat genau eine Senke: Algorithmus von Bertolazzi (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

38 ST-Graph (1) Quelle: Knoten s, nur ausgehende Kanten
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
Graph mit mehreren Quellen/Senken kann in ST-Graph umgewandelt werden: Sink SuperClass1 SuperClass2 Class SubClass1 SubClass2 SuperClass1 SuperClass2 Class SubClass1 SubClass2 Source

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

41 Visualisierung von UML-Diagrammen » Algorithmus » Übersicht

42 Assoziationen einfügen
Visualisierung von UML-Diagrammen » Algorithmus » Assoziationen einfügen 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 Leaf Composite Component Source Component Leaf Composite Source

43 Visualisierung von UML-Diagrammen » Algorithmus » Übersicht

44 Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen
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 c1 G T v1 v2 v3 v4 v5 v6 c2 c3 v1 v2 v3 c4 v5 v6 v4

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

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

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

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

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

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

51 Cluster-Graph erstellen
Visualisierung von UML-Diagrammen » Algorithmus » Cluster-Graph erstellen Cluster-Graph erstellen Alle Wheel-Graphen durch die berechnete planare Einbettung der Hierarchien ersetzen Fehlende Kanten zwischen den Hierarchien einfügen (Battista) Dummy-Kanten und -Knoten entfernen v1 v4 v2 v3 c1 v5 u2 u1 u3 c2 c2 c1 v3 v4 v5 v2 v1

52 Visualisierung von UML-Diagrammen » Algorithmus » Übersicht

53 Orthogonalisieren Knoten vom Grad ≥ 4 durch Cage ersetzen
Visualisierung von UML-Diagrammen » Algorithmus » Orthogonalisieren Orthogonalisieren Knoten vom Grad ≥ 4 durch Cage ersetzen Knickminimierung nach Tamassia Verschiedene Nebenbedingungen linearer Zeitaufwand Fläche minimieren Constructive flow-based compaction nach Klau, Klein und Mutzel

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

55 Zusammenfassung Vorberechnung Hierarchien finden
Visualisierung von UML-Diagrammen » Zusammenfassung Zusammenfassung Vorberechnung Hierarchien finden Gleichrichten und planarisieren ST-Graph erstellen Assoziationen einfügen Wheel-Graph bilden Planare Einbettung finden Wheel-Graphen ersetzen Orthogonalisieren

56 Resultate Microsoft Visio Oreas GDE
Visualisierung von UML-Diagrammen » Zusammenfassung Resultate Microsoft Visio Oreas GDE

57 Software und Links GoVisual wird von oreas entwickelt
Visualisierung von UML-Diagrammen » Software und Links Software und Links GoVisual wird von oreas entwickelt Diagramm Editor frei erhältlich Bibliotheken & Plug-Ins für Case-Tools werden kommerziell vertrieben

58 Vielen Dank für die Aufmerksamkeit
Fragen zum Vortrag? Folien zum Download:


Herunterladen ppt "Visualisierung von UML-Diagrammen"

Ähnliche Präsentationen


Google-Anzeigen