Habe Konzept zum Vorgehen Lennart Bucher Seminararbeit

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Inhalt Saarbrücken,.
Datenmodellierung Externe Phase Informationsstruktur
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Seminar Software-Engineering für softwareintensive Systeme
Franziska Schmidt Sarah Ahlheit
Ausnahmen HS Merseburg (FH) WS 06/07.
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Sortierverfahren Richard Göbel.
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Software-Technik: (fortgeschrittene) Klassendiagramme
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Software Engineering Seminar Metamodellierung
Dieter Bergmann, Lichtenfels
7.3 Hinweise für den Aufbau von ER-Schemata (1|7)
UML Begleitdokumentation des Projekts
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
6. Vorlesung: Statische Konzepte
Arbeiten mit Ordner und Dateien
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Unified Modeling Language Repetition / Einführung zu UML
Fortsetzung DTDs, UML  XML
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
LVA , SS021 Im Mittelpunkt aller Bemühungen steht der Kunde und die Steigerung des Kundennutzens. Deswegen: Wer alles reinlässt kann nicht.
UML-Kurzüberblick Peter Brusten.
Software-Technik: (fortgeschrittene) Klassendiagramme
Vom Geschäftsprozess zum Quellcode
Von UML 1.4 zu UML 2.0 InfoPoint vom Mittwoch
Arbeitgruppentreffen Weimar, März 2004 TU Dresden, Institut für Bauinformatik Weise 18. März 2004 Ein Kooperationsmodell für die Kontrolle divergierender.
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
A Workshop About this chapter General description Units Time Schedule
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
1 1.Man beginne mit „leicht erkennbaren natürlichen Objekten“ (Personen und konkreten Gegenständen) und fasse diese zu Objekttypen zusammen. (etwa Substantive.
Thema: Präsentationen (Arbeiten mit mehreren Programmen) Arbeiten Sie die folgenden Seiten durch und fertigen Sie Notizen zu folgenden Fragen an! 1..Wenn.
Java Programme nur ein bisschen objektorientiert.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Manuel Friedrich Schiller-Gymnasium Hof Datenbanken Erstellen des „Semantischen Modells“
Jan Dovermann Uniklinik RWTH Aachen University Institut für Medizinische Informatik Modellierung und Entwicklung eines generischen Tools zum Export von.
Was ist ein HTML-Dokument? - Ein WWW-Dokument, das mit anderen Dokumenten verknüpft ist. - Es kann beinhalten: Text, Bilder, Geräusche, Videos, Animationen,
SurveyCAU Handbuch - Dozent*innen -.
Einführung in die Objektorientierung
Analytics und Job-Verarbeitung
UML – Unified Modeling Language
Einführung DI Harald Sander.
Das IT - Informationssystem
Comprehension and Production of Analogical Problems by a Chimpanzee
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Semantic Text Annotator
Testresultatsvergleich mit UML-Analysemodellen und OCL-Ausdrücken
4. Modellieren und Diagrammarten
ER-Modell und Relationales Schema
Methodische Grundlagen des Software-Engineering
Michael Barth, Fabian Birzele und Gefei Zhang
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
1. Die rekursive Datenstruktur Liste 1
9. Vererbung und Polymorphie
Objektorientierte Programmierung
Programmiermethodik Übung 11
Informatik Softwareentwicklung – 4.2 Diagramme
 Präsentation transkript:

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

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

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

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???

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fragen Gibt es noch Fragen?

Fini. Wir danken für Ihre Aufmerksamkeit.

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

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

Bildquellen https://www.eclipse.org/emf/compare/ http://www.20min.ch/diashow/174858/408C680591763F16F86E602E47BB8E69.jpg https://i.ytimg.com/vi/z6E_LmLuXrA/maxresdefault.jpg https://upload.wikimedia.org/wikipedia/commons/2/2d/UML_logo.gif