Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Habe Konzept zum Vorgehen Lennart Bucher Seminararbeit

Ähnliche Präsentationen


Präsentation zum Thema: "Habe Konzept zum Vorgehen Lennart Bucher Seminararbeit"—  Präsentation transkript:

1 Vergleich von Ansätzen zur Identifikation von strukturellen Unterschieden in Objektdiagrammen
Habe Konzept zum Vorgehen Lennart Bucher Seminararbeit Betreut vom Lehrstuhl für Software Engineering der RWTH Aachen Im Rahmen des Studiums „Scientific Programming“ an der FH-Aachen

2 Objektdiagramme (OD) Diagrammform der UML Modellierung von Software
Zur Beschreibung des Zustands eines Systems Aussehen ähnelt Klassendiagrammen Objekte haben Namen und Typ Attribute enthalten Werte Methoden werden weggelassen Keine Vererbung nötig Unified Modelling Language oft als Werkzeug Markiert durch OD Objektname im Diagramm eindeutig Zustand zu gewissen Zeitpunken Objektdiagramm Objektname OD foo:Object value = „42“ Objekttyp Objekt Attributswert Attribut

3 Objektdiagramme (OD) Anonyme Objekte ohne Namen
Verschiedene Links zwischen den Objekten Ausprägungen von Assoziationen Keine Kardinalitäten ID-Attribute möglich OD c:C id = 3 a:A id = 1 b:B id = 2 name = „foo“ :X id = 4 qualifizierter Link Link “x” Kompositionslink anonymes Objekt In CDs Normale Gerichtete Komposition/Aggregation -> wie bei CDs: C besteht aus Qualifizierte

4 Vergleichbare Algorithmen
UMLDiff Vergleichsalgorithmus auf Basis von Klassendiagrammen Vergleich der Struktur der Diagramme Nutzung der Assoziationen zum Finden ähnlicher Strukturen Nutzung von gleichgebliebenen Klassen als Landmarken Erkennung veränderter Strukturen Relativ aufwendig EMF-Compare-Tool Vergleich von UML-Modellen Vorgehen zum Vergleich zweier Modellelemente ohne IDs Algorithmus erscheint übertragbar Nutzung von Attributen und Attributwerten Metrik zur Bewertung der Änderungen eines Objektes Fokus Was hierbei besonders interessant ist Metrik erklären Metrik: Je häufiger Attribute desto unwichtiger; Praxistauglich???

5 Vergleich von Objektdiagrammen
Vorgestellte Algorithmen nutzen keine Objektdiagramme Gibt noch keinen Algorithmus Anderes Eingabeformat Verarbeitung der Änderungen nicht passend Thema dieser Arbeit: Algorithmus zum Vergleich der ODs Features zur Kategorisierung der Änderungen Hinzufügen/Löschen von Objekten Hinzufügen/Löschen von Links Änderung der Attributswerte Änderungen in Objektname / Objekttyp Kein Features: Änderungen der Reihenfolge -> irrelevant Liste erarbeitet

6 Vorgehen Entsprechend den vorgestellten Features
Berechnung bei Eingabe von 2 ODs + optional 1 Klassendiagramm Suche nach gleichen Objekten Essentiell Einfach möglich mit IDs Ohne ID -> Alternativen notwendig Berechnung der geänderten Objekte Berechnung der geänderten Links Wertung als Löschen/Hinzufügen Analyse der geänderten Attributwerte Nur von gleichen Objekten Ausgabe der Unterschiede Als Text oder mit GUI Grob gegliedert folgendermaßen ablaufen müsste Wie dies passiert -> später Hinzugefügt / gelöschte: Nur in einem Modell Für gleichgebliebene Objekte Bsp. Objektname oder Typ Verschiedene Typen von Links

7 Vorgehen Beispiel zum Vorgehen: Diagramm 1 Diagramm 2 OD OD a:Aufgabe
id = 1 name = „a“ dauer = 2 b:Aufgabe id = 2 name = „b“ dauer = 3 c:Aufgabe id = 3 name = „c“ dauer = 4 d:Aufgabe id = 4 name = „d“ dauer = 42 e:Student id = 42 name = „Joe“ semester = 4 e:Student id = 42 name = „Joe“ semester = 5

8 Vorgehen Gleiche Objekte suchen OD OD a:Aufgabe id = 1 name = „a“
dauer = 2 b:Aufgabe id = 2 name = „b“ dauer = 3 c:Aufgabe id = 3 name = „c“ dauer = 4 d:Aufgabe id = 4 name = „d“ dauer = 42 e:Student id = 42 name = „Joe“ semester = 4 e:Student id = 42 name = „Joe“ semester = 5 gleich

9 Vorgehen Berechnung der geänderten Objekte gelöscht hinzugefügt OD OD
a:Aufgabe id = 1 name = „a“ dauer = 2 b:Aufgabe id = 2 name = „b“ dauer = 3 c:Aufgabe id = 3 name = „c“ dauer = 4 d:Aufgabe id = 4 name = „d“ dauer = 42 e:Student id = 42 name = „Joe“ semester = 4 e:Student id = 42 name = „Joe“ semester = 5 gleich

10 Vorgehen Berechnung der geänderten Links gelöscht hinzugefügt OD OD
a:Aufgabe id = 1 name = „a“ dauer = 2 b:Aufgabe id = 2 name = „b“ dauer = 3 c:Aufgabe id = 3 name = „c“ dauer = 4 d:Aufgabe id = 4 name = „d“ dauer = 42 gelöscht hinzugefügt e:Student id = 42 name = „Joe“ semester = 4 e:Student id = 42 name = „Joe“ semester = 5 gleich

11 Vorgehen Analyse der geänderten Attributwerte
Nur von gleichen Objekten gelöscht hinzugefügt OD OD a:Aufgabe id = 1 name = „a“ dauer = 2 b:Aufgabe id = 2 name = „b“ dauer = 3 c:Aufgabe id = 3 name = „c“ dauer = 4 d:Aufgabe id = 4 name = „d“ dauer = 42 gelöscht hinzugefügt e:Student id = 42 name = „Joe“ semester = 4 e:Student id = 42 name = „Joe“ semester = 5 gleich

12 Problematik – Ohne ID Ohne ID ist der Vergleich zweier Objekte schwierig Kriterium zur Erkennung gleicher Objekte fehlt Anderes Vergleichskriterium für Objekte nötig Name und Typ sind nicht möglich Name ist generiert und deshalb nicht immer eindeutig Typ ist als eine Oberklasse definiert Wie beim EMF-Compare Algorithmus Ähnlichkeit nutzen Attribute und Attributswerte können genutzt werden Oft problemlos möglich Ohne Identifikatoren mit Systemgleichheit OD OD p1:Person vorname = “foo” nachname = „bar“ alter = 42 p1:Person vorname = „foo“ nachname = „bar“ alter = 43

13 Problematik – Ohne ID Vorgehen: Suche nach ähnlichen Objekten
Wie eine unscharfe Suche Gruppieren von Objekten mit übereinstimmenden Attributen Alle Objekte eines Typs Zuordnen gleicher Gruppen in den Modellen Gleiche Typen der Modelle einander zuordnen Suche darin alle Objekte mit ähnlichen Attributswerten Finde nur Objekte, bei denen sich nur ein Teil geändert hat Nutzung einer Metrik zum Messen der Veränderung Als zusammengehörig speichern

14 Vorgehen ohne ID 2 Modelle sollen verglichen werden OD OD p1:Person
vorname = “foo” nachname = „bar“ alter = 42 p2:Person vorname = “Jens” nachname = „Link“ alter = 73 a1:Auto farbe = “rot” hersteller = „VW“ p1:Person vorname = “foo1” nachname = „bar“ alter = 42

15 Vorgehen ohne ID Gruppieren nach Attributen OD OD p1:Person
vorname = “foo” nachname = „bar“ alter = 42 p2:Person vorname = “Jens” nachname = „Link“ alter = 73 a1:Auto farbe = “rot” hersteller = „VW“ p1:Person vorname = “foo1” nachname = „bar“ alter = 42

16 Vorgehen ohne ID Zuordnen der Gruppen OD OD p1:Person vorname = “foo”
nachname = „bar“ alter = 42 p2:Person vorname = “Jens” nachname = „Link“ alter = 73 a1:Auto farbe = “rot” hersteller = „VW“ p1:Person vorname = “foo1” nachname = „bar“ alter = 42

17 Vorgehen ohne ID Suchen der passenden Objekte in den Gruppen OD OD
p1:Person vorname = “foo” nachname = „bar“ alter = 42 p2:Person vorname = “Jens” nachname = „Link“ alter = 73 hinzugefügt a1:Auto farbe = “rot” hersteller = „VW“ p1:Person vorname = “foo1” nachname = „bar“ alter = 42 gelöscht

18 Problematik – Bei unbekanntem CD ohne ID
Wäre mit IDs kein Problem Keine Prüfung möglich, ob ODs konform zu einem CD Informationen sind nicht vollständig Ungenaue Folgerungen möglich Probleme bei unterschiedlichen Attributs-Datentypen Müssen gesondert behandelt werden Änderungen sind teilweise nicht detektierbar Objekte werden dann als gleich angesehen unvermeidbar OD OD a:X serialNr = 123 b:Y serialNr = 123

19 Problematik Vergleich von Objekten ohne Attribute
Diese werden als gleich eingestuft Je weniger Informationen desto ungenauer das Ergebnis Einschätzung: Ist kein echtes Problem Keine scharfen Ergebnisse durch unscharfe Suche möglich Faktor Mensch als letzte Instanz entscheidet ob gleich OD foo:Object gar kein Attribut -> Keine Änderung

20 Problematik Grenzfälle, die in mehrere Kategorien fallen könnten
Werden vom Algorithmus in die Niedrigstmögliche eingeordnet Änderung von Attributwert, Objekttyp und Objektname OD OD b:X name = „b“ a:X name = „a“ c:X name = „c“ c:X name = „c“ a:X name = „a“ b:X name = „b“ wurden vertauscht

21 Zusammenfassung Vorgehen für Vergleich und Kategorisierung von zwei Objektdiagrammen Zukünftige Arbeiten: Implementierung Einbindung zur Nutzung in andere Programme Verwendung für Versionslisten von ODs Weiterentwicklung des Vorgehens

22 Fragen Gibt es noch Fragen?

23 Fini. Wir danken für Ihre Aufmerksamkeit.

24 Anhang: Beispiel Typenänderung
OD b:Y id = 1 name = „a“ a:X CD X id name Y Klasse Y Klasse X

25 Anhang: Beispiel Attributsänderung
OD a:X id = 1 name = „foo“ name = „a“ anderer String

26 Bildquellen https://www.eclipse.org/emf/compare/


Herunterladen ppt "Habe Konzept zum Vorgehen Lennart Bucher Seminararbeit"

Ähnliche Präsentationen


Google-Anzeigen