1 4. Datenmodellierung mit der Unified Modeling Language (UML)

Ähnliche Dokumente
Das konzeptionelle Datenmodell

Einführung in die Modellierung

Rückblick: Entity-Relationship-Modell

Objektorientierte Modellierung (1)

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Java-Programmierung mit NetBeans

Medizininformatik Software Engineering

Kapitel DB:IV (Fortsetzung)

UML -Klassendiagramme

Einführung in die Programmierung

Veranstaltung Pr.-Nr.: Datenmodellierung. Veronika Waue WS 07/08. Phasenschema der Datenbankentwicklung (grob) Informationsanalyse

10. Programmierungs-Phase: Objektorientierung Software Engineering

Übungen Softwaretechnik I

UML (Unified Modelling Language) von Christian Bartl

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

D1: Relationale Datenstrukturen (14)

Vorlesung Informationssysteme

Glossar für das Fach Informatik

Einführung in Datenbanken

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

10. Datenbank Design 1

Sommersemester Implementierung I: Struktur

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

ER-Modell, Normalisierung

Kapitel DB:IV (Fortsetzung)

Aufgabe 1) Übung 4: 1.2

Datenbanksysteme: Entwurf

3. Algorithmen und Programmierumgebung und Einführung in die Datenmodellierung Für die Implementierung von Algorithmen nutzen wir

Kapitel 3: Datenbanksysteme

Software Engineering Klassendiagramme Einführung

Algorithmen und Datenstrukturen 06

Kapitel 3: Datenbanksysteme

ERM/ERD Entity Relationship Model Entity Relationship Diagram.

Geoinformation I Datenmodellierung

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Realität zu modellieren eine

Konzeptueller Entwurf

Rückblick: Datenbankentwurf

SWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel

Von der UML nach C++

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Algorithmen und Datenstrukturen

Theorie zur Übung 8 Datenbanken

VU Objektorientierte Modellierung Übung 2

Hands-on-Workshop Datenmodellierung mit dem neuen Innovator for Database Architects. MID Insight Nürnberg,

3. Relationales Modell

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen

Das relationale Datenmodell

Datenbanken Unit 2: Das ER-Modell

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Assoziation und Aggregation

Datenbankentwurf. Kapitel 3. Datenbankentwurf 76 / 508

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Code-Erzeugung aus UML-Klassendiagrammen

1 Klassen und Objekte

Der Tabellenname wird in Grossbuchstaben geschrieben.

Themen. Unified Modelling Language (UML) Assoziation. Aggregation. Komposition

Übung zu Relationale Datenbanken in der Anwendung

4 Grundlagen der Datenbankentwicklung

Glossar für das Fach Informatik

Unified Modelling Language

Objektorientierte Analyse (OOA) OOA-Pattern

Kapitel 1: Einführung 1.1 Datenbanken?

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Entwicklung einer DB-Anwendung vergleichbar mit gewöhnlicher Anwendungsprogrammierung:

Arbeitsblätter zu Teil I des Praktikums

Beziehungen zwischen Klassen

Informations-, Daten- und Wissensmanagement

Abschnitt 15: Unified Modeling Language (UML)

Objektorientiertes Programmieren

Algorithmen & Datenstrukturen Midterm Test 2

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Geoinformation Abbildung auf Tabellen

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

3. Die Datenstruktur Graph

Beispielklausur. Methoden der Wirtschaftsinformatik

Einführung in die Datenorganisation. Informationssysteme

Objektorientierte Analyse (OOA) Strukturmodellierung

Programmieren 2 C++ Überblick

Software-Engineering

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Einführung in die Programmierung mit Java. Hörsaalübung

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Datenmodellierung im Zeitalter agiler Softwareentwicklung

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Einführung. Einführung

Grundbegriffe der Objektorientierung

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Javakurs für Anfänger

ER-Modell. Entity-Relationship-Model

Begriffe 1 (Wiederholung)

Informatik II: Modellierung Prof. Dr. Martin Glinz. Kapitel 2. Datenmodellierung. Universität Zürich Institut für Informatik

Kurzeinführung in UML

Assoziation und Aggregation

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Transkript:

1 4. Datenmodellierung mit der Unified Modeling Language (UML) Objekte, Klassen und Assoziationen Multiplizitäten - Kardinalitäten Rollen (Wiederholung) Einfache Abbildung von Modellen auf Tabellen Empfehlungen zur Qualitätssicherung Bewertung Datenmodelle und Quelltext

2 Objekte, Klassen und Assoziationen (Wiederh.) Objekt (eine erste Sicht, die später erweitert wird) Individuelles und identifizierbares Exemplar von Dingen Personen oder Begriffen der realen oder der Vorstellungswelt Durch Eigenschaften (Attribute) beschrieben Klasse Zusammenfassung von Objekten mit gleichen Eigenschaften unter eindeutigem gemeinsamen Oberbegriff Dargestellt durch ein Rechteck, das den Namen der Klasse enthält

3 Objekte, Klassen und Assoziationen(Wiederh.) Assoziation Wechselwirkungen und Abhängigkeiten zwischen Objekten werden durch Beziehungen (Relationen) dargestellt Assoziation ist die Zusammenfassung gleichartiger Beziehungen (Relationen) zwischen Objekten Wird durch Linie dargestellt Ehemann Ist verheiratet mit Ehefrau

4 Multiplizitäten Kardinalitäten 1:1-Assoziation 0:1-Assoziation 1:n-Assoziation n:m-assoziation 0..n:0..m (In UML immer n oder *!) 1..n:0..m (n hat keinen bestimmten Wert!) 0..n:1..m 1..n:1..m

5 Multiplizitäten - Kardinalitäten 1:1-Assoziation - Beispiel Ein Roboter besteht aus einem Roboterarm Alle Roboter vom Typ Teach- Robot besitzen einen Roboterarm und genau einen Greifer 1 Teach-Robot 1 hat hat 1 Roboterarm Greifer 1

6 Multiplizitäten - Kardinalitäten 1:n-Assoziation - Beispiel Ein Roboterarm besteht aus n Armelementen Umgekehrt ist ein Armelement Teil eines Roboterarms Roboterarm hat 1 1..n Armelement

7 Rollen Beispiel Jedes Element eines Roboterarms kann sich in einer Armelement-Sequenz befinden Jede Armelement-Entität spielt in der Assoziation»folgt«die Rolle des Vorgängers und die Rolle des Nachfolgers Vorgänger Armelement folgt Nachfolger

8 Fragen Wie sieht das Datenmodell für eine einfach verkettet Liste aus? Wie sieht das Modell für eine doppelt verkettete Liste aus? Wie sieht das Datenmodell für einen binären Baum aus?

9 Beispiel für ein Anwendungsmodell

10 Einfache Abbildung von Modellen auf Tabellen Für Datenmodelle muss man sich Speicherstrukturen überlegen, die eine Abspeicherung der entsprechenden Objekte ermöglichen Tabellen sind die grundlegenden Datenstrukturen von Datenbanken Es werden drei Regeln präsentiert, die eine Abbildung von Klassen und Assoziationen auf Tabellen ermöglichen

11 Einfache Abbildung von Modellen auf Tabellen Regel 1 Für jede Klasse wird eine Tabelle benötigt Jedes Objekt der entsprechenden Klasse stellt mit seinen Attributen einen Eintrag (Zeile) in dieser Tabelle dar Beispiel Die Klasse Firma ergibt folgende Tabelle:

12 Einfache Abbildung von Modellen auf Tabellen Schlüssel Minimale, identifizierende Attributkombination Schlüssel werden unterstrichen Oft auch mehrere Schlüssel möglich Klasse: Stadt Attribute: PLZ, Staat, Einwohnerzahl, Vorwahl Schlüssel: PLZ und Staat oder Vorwahl In einem solchen Fall wird stets ein Schlüssel als Primärschlüssel ausgezeichnet Im Falle der Firma kann der Kurzname als Primärschlüssel genutzt werden

13 Einfache Abbildung von Modellen auf Tabellen Regel 2: Sind zwei Klasse A und B durch eine 1:1- oder n:1-assoziation verbunden, dann wird der Schlüssel von B als sogenannter Fremdschlüssel in A eingetragen, d.h. als zusätzliches Attribut

14 Einfache Abbildung von Modellen auf Tabellen Beispiel Kunde 1..n 1 Firma

15 Einfache Abbildung von Modellen auf Tabellen Regel 3 Sind zwei Klassen A und B durch eine m:n- Assoziation verbunden, dann wird für die Assoziation eine eigene Tabelle angelegt Als Attribute werden die Schlüssel der Klassen verwendet, die die Assoziation verbindet

16 Einfache Abbildung von Modellen auf Tabellen Kunde 1..n bucht 1..n Seminarveranstaltung

17 Beispiele Datenmodell der Fallstudie»Seminarorganisation«Kunde 1 bucht * * * Seminarveranstaltung 0..n 0..n wird durchgeführt von 1 Dozent * Ist beschäftigt bei hat gehört zu ist zugeordnet zu 1..n 1 1 Zahlungsverzug Firma Seminartyp 1..n Man Unterscheidet zwischen Seminartyp und Seminarveranstaltung In der Umgangssprache sind wir häufig nicht so exakt!

18 Beispiel Teach- Robot hat 0..1 0..1 0..1 hat hat Roboter- Sensor 10 1 1 Roboter- Arm Greifer 0..1 0..1 0..1 besteht aus besteht aus besteht aus Vorgänger 0..1 5 2 2 folgt Armelement Finger Greifer- Sensor 0..1 Nachfolger

19 Empfehlungen zur Qualitätssicherung Qualitätssicherung Aufgabe eines Datenmodells Relevante Klassen darstellen Assoziationen zwischen den Klassen darstellen Überprüfungen Besitzt jede Klasse mindestens ein Attribut? Ist dies nicht der Fall, dann macht Klasse keinen Sinn Sind die Klassen durch Substantive, die Assoziationen durch Verben beschrieben? Ist dies nicht der Fall, dann sind die Beziehungen zu überprüfen

20 Empfehlungen zur Qualitätssicherung Sind zwei Klassen identisch? Identität kann vorliegen, wenn eine oder mehrere der folgenden Bedingungen erfüllt sind: Die Klassen stehen in einer 1:1-Assoziation Sie sind durch dieselben Assoziationen mit der Umgebung verbunden Sie besitzen dieselben Attribute Jede Assoziation ist zu überprüfen auf... ihre Notwendigkeit, d.h. bringt sie neue Informationen korrekte Darstellung des Sachverhalts

21 Empfehlungen zur Qualitätssicherung Liegt eine Klasse oder ein Attribut vor? Klasse muss eindeutig identifizierbar sein und durch Attribute beschrieben werden Attribut liegt vor, wenn es selbst keine weiteren Attribute besitzt In der Systemanalyse hört man auf angemessenen Abstraktionsniveau auf, z.b. bei Adresse Ein solches Attribut zunächst als elementar ansehen Farbe ist ein Attribut vom Auto Würde aber die Zusammensetzung von Farbe interessieren, so wäre Farbe eine Klasse Abhängig vom Blickwinkel können Attribute zu Klassen werden und umgekehrt

22 Bewertung Bewertung + Im kaufmännischen Anwendungsbereich ist eine Datenmodellierung ein absolutes Muss + Auch in vielen technischen Bereichen ist die Komplexität der Daten so groß, dass ein Datenmodell erforderlich ist (Beispiel: Roboter-Modellierung) + Voraussetzung für einen relationalen Datenbankentwurf

23 Bewertung Bewertung Erfordert ein höheres Abstraktionsniveau als die bisher vorgestellten Basiskonzepte, daher schwerer zu erlernen und schwerer zu verstehen Datenmodelle können sehr umfangreich werden und sind dann schwer zu überblicken Es fehlt ein Verfeinerungsmechanismus um mehrere Abstraktionsebenen bilden zu können * In den folgenden Veranstaltungen werden die Datenmodelle zu objektorientierten Modellen erweitert

24 Umsetzung von Assoziationen in Java I Kunde bucht Veranstaltung 1 * Seminarveranstaltung public class Kunde { private Vector<Seminarveranstaltung> veranstaltung = new Vector<Seminarveranstaltung>(); } } public class Seminarveranstaltung { private Kunde kunde; }

25 Regeln Rollennamen werden zu Attributnamen Klassennamen beginnen mit Großbuchstaben, Attributnamen mit Kleinbuchstaben Der Zugriff auf ein Attribut name sollte nicht direkt erfolgen, sondern durch die Methoden setname und getname Bei Vektoren müssen Methoden zum Hinzufügen und Entfernen von Elementen existieren.

26 Umsetzung von Assoziationen in Java II Kunde bucht Veranstaltung 1 * Seminarveranstaltung public class Kunde { private Vector<Seminarveranstaltung> veranstaltung = new Vector<Seminarveranstaltung>(); } public void hinzufügenveranstaltung (Seminarveranstaltung r) { veranstaltung.add(r); } public void entfernenveranstaltung (Seminarveranstaltung r) { veranstaltung.remove(r); } public class Seminarveranstaltung { private Kunde kunde; } public void setkunde (Kunde k){ kunde = k; } public Kunde getkunde(){ return kunde; }

27 Gerichtete Assoziationen Ein Buch kennt seine Seiten. Die Seiten kennen aber nicht das Buch, zu dem sie gehören

28 Gerichtete Assoziationen

29 Anpassung des Generators in Werkzeugen am Beispiel von Visual Pradigm

30 Mögliche Navigationsspezifikationen a) genau einseitige Navigation b) mindestens einseitige Navigation c) zweiseitige Navigation oder unspezifiziert

31 Assoziation und Leserichtung

32 Modellierung Modelle Deskriptive Modelle: Abbilder von etwas Präskriptive Modelle: Vorbilder für etwas Modellmerkmale Abbildungsmerkmal: Zum Modell gibt es das Original, ein Gegenstück, das wirklich vorhanden, geplant oder fiktiv sein kann. Verkürzungsmerkmal: Ein Modell erfaßt nicht alle Attribute des Originals, sondern nur einen Ausschnitt, der vor allem durch den Zweck des Modells bestimmt ist. Pragmatisches Merkmal: Modelle können unter bestimmten Bedingungen und bezüglich bestimmter Fragestellungen das Original ersetzen.

33 Modellierung Tätigkeiten in der Modellbildung (M.Glinz) Reflektieren: überlegen und verstehen, was modelliert werden soll (Pragmaitik des Modells, abzubildende/ wegzulassende Attribute, Umfang,...) Gewinnen: Informationen über das Original und die Intentionen der Wissensträger gewinnen (diskutieren, lesen, fragen, rückfragen, suchen, analysieren,...) Beschreiben: gewonnene Informationen verstehen, ordnen, strukturieren, bewerten,... und mit geeigneten Mitteln beschreiben Validieren: Modelle (auch Zwischenergebnisse) durch Wissensträger überprüfen lassen: Ist es das, was sie wollen und brauchen?

34 Modellierung Modelle in der Softwaretechnik Wir arbeiten fast nur mit Modellen mehrstufige Modelle: - Anforderungen = Modell der Software-Spezifikation - Software-Spezifikation = Modell des Codes - Code = Modell des ausführbaren Programms - ausführbares Programm = Modell der Ausführung... Unterscheidung in - Software-Modelle - Vorgehens- und Prozessmodelle Modelle oft durch Graphen dargestellt - meist gerichtete Graphen, oft Bäume - reiche Beschriftung von Kanten und Knoten - Darstellung ist wichtig ( Die Darstellung ist der Graph. ) - Konnotationen von Darstellungen sind auch gefährlich!

35 Zusammenfassung Datenmodelle sind eine wichtige Form der Modellierung von Domänen Sie sind ein Ausgangspunkt für die Softwareentwicklung und der Ausgangspunkt für die Datenbanken In der nächsten Veranstaltung steht die Erweiterung von Datenmodellen zu objektorientierten Spezifikationen im Mittelpunkt.