UML-Entwurf

Werbung
HPI MOOC
• n-äre Relationships
• Rollen von Relationships
• Konvertierung in binäre Relationships
• Attribute an Relationships
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Entwurfskriterien
Regeln zur Klassifikation von Entities und
Attributen:
Entities sollten deskriptive Informationen enthalten.
Mehrwertige Attribute sollten als Entities klassifiziert
werden.
Attribute sollten der Entity zugeordnet werden, die
sie am direktesten beschreibt.
Redundante Relationships sollten vermieden
werden.
Wie eine Informationseinheit repräsentiert wird,
ist anwendungsabhängig.
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Beispiel: Bestellung
Als Entity:
Kunde
1
platziert
N
Bestellung
M
Als Relationship:
für_ein
1
Produkt
Kunde
M
bestellt
Als Attribut:
Kunde
M
N
Produkt
BestellNr
kauft
N
Produkt
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Aufgabe für nächste Woche
Lesen und versuchen Sie zu verstehen aus
Datenmanagement mit SQL, HPI
open.hpi.de/courses/sql:
Woche 2: 2.08 –
Designprinzipien
Fragen dazu bitte nächste Woche!
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Modellierung einer kleinen
Beispielanwendung: E/R
Studenten
Vorlesungen
Reale Welt: Universität
Konzeptuelle Modellierung
MatrNr
Studenten
Vorlesungen
hören
Name
VorlNr
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
Titel
30.10.2016
Modellierung einer kleinen
Beispielanwendung: UML
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Datenmodellierung mit UML
UML: Unified Modelling Language
De-facto Standard für den objekt-orientierten Software-Entwurf
Zentrales Konstrukt: Klasse (class),
modelliert gleichartige Objekte hinsichtlich
• Struktur (~Attribute)
• Verhalten (~Operationen/Methoden)
Assoziationen zwischen Klassen entsprechen Beziehungstypen
Generalisierungshierarchien
Aggregation
Cheat sheet Class Diagram:
http://www.code-meets-design.de/wpcontent/uploads/2013/07/uml-classdiagram-cheat-sheet.pdf
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
UML Notation
Assoziation:
*
*
Generalisierung:
Aggregation:
(Teil-von)
Komposition:
(Spezialfall von Aggregation)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Multiplizität
KlasseA
+Att1
+Att2
KlasseB
Assoziation
1
k..l
+op()
1..*
i..j
+Att1
+Att2
+op()
Jedes Element von KlasseA steht mit mindestens i Elementen der
KlasseB in Beziehung
... und mit maximal j vielen KlasseB-Elementen
Analoges gilt für das Intervall k..l
Multiplizitätsangabe ist analog zur einfachen Funktionalitätsangabe
im ER-Modell
Nicht zur (min,max)-Angabe: Vorsicht!
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Assoziationsklasse
Klasse A
Klasse B
+Att1
+Att2
+Att1
+Att2
*
*
+ op()
+ op()
Klasse C
+Att1
+Att2
… für Attribute der Assoziation
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Klassen und Assoziationen
Studenten
+MatrNr : int
+Name : String
+Semester : int
+Notenschnitt() : float
+SummeWochenstunden() : short
+Hörer
voraussetzen
+Nachfolger
1..*
*
Vorlesungen
hören
*
*
+VorlNr : int
+Titel : String
+SWS : int
+AnzHörer() : int
+DurchfallQuote() : float
Legende:
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
+: public
30.10.2016
Komposition
Studenten
+MatrNr : int
+Name : String
+Semester : int
Prüfungen
+Prüfling
1
absolviert
*
+Notenschnitt() : float
+SummeWochenstunden() : short
+Note : Decimal
+Datum : Date
*
+verschieben()
*
...
+Prüfungsstoff
1
1
+Prüfer
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
...
30.10.2016
Begrenzungsflächendarstellung
Polyeder
1 (4, )
Hülle
N (1,1)
PolyID
Flächen
(3, )
N
FlächenID
BeispielPolyeder
Begrenzung
M (2, 2)
Kanten
N (2, 2)
StartEnde
M (3, )
Punkte
KantenID
X
Y
Z
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Begrenzungsflächenmodellierung von Polyedern in UML
Polyeder
+PolyID : int
+...
+Gewicht() : float
+Volumen() : float
+skalieren()
+verschieben()
+rotieren()
Punkte
Flächen
Hülle
11
1..*
4..*
Kanten
+FlächenID : int
+...
+Umfang() : float
+Volumen() : float
Begrenzung
2*
3..*
*
+KantenID : int
+...
+Länge() : float
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
StartEnde
3..*
*
2*
+X : float
+Y : float
+Z : float
+rotieren()
+verschieben()
+skalieren()
30.10.2016
+H örer
+M atrN r : int
+N ame : String
+Semester : int
+N achfolger
1..*
*
Vo rlesung en
hören
+N otenschnitt() : float
+SummeW ochenstunden() : short
1
voraussetzen
+Prüfling
+VorlN r : int
+T itel : String
+SW S : int
*
+AnzH örer() : int
+D urchfallQ uote() : float
Prüfung en
+N ote : D ecimal
+D atum : D ate
*
*
1
*
*
+Prüfungsstoff
gelesenVon
Stud enten
+verschieben()
*
1
+Prüfer
Pro fesso ren
Assistenten
+Boss
+F achgebiet : String
+G ehalt() : short
*
arbeitenF ür
Ang estellte
+PersN r : int
+N ame : String
+G ehalt() : short
1
+R ang : String
+N otenschnitt() : float
+G ehalt() : short
+Lehrstundenzahl() : short
1
+D ozent
Anwendungsfälle (use cases)
Fakultäten
-liest
*
-Lehrveranstaltung
-Hörer
*
1
Vorlesungen
anbieten
ProfessorIn
-prüft
1
«verwendet»
*
StudentIn
1
-Prüfling
*
*
Prüfungen
durchführen
*
«verwendet»
Studienplan
überprüfen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
-Beisitzer
1
AssistentIn
30.10.2016
Interaktions-Diagramm:
Modellierung komplexer Anwendungen
ProfessorIn
Bibliothek
Terminkalender
Raumvergabe
Vorlesungsverz.
entleihe_Buch()
freierTerm in()
reserv iereTerm in()
eintragenTerm in()
ankündigenVorlesung()
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Interaktions-Diagramm:
Prüfungsdurchführung
StudentIn
Prüfungsamt
Vorlesung
ProfessorIn
AssistentIn
anm elden()
berechtigt?()
gelesenVon()
inform ieren()
freierTerm in()
create()
Prüfung
bestätigen()
Beisitz()
benachrichtigen()
bewerten()
protokollieren()
UML Notationsübersicht:
http://www.oose.de/nuetzliches/fachliches/uml/uml-notationsubersicht/
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Quiz UML
Aus dem Stanford MOOC:
https://lagunita.stanford.edu/courses/DB/UML/SelfPaced/
courseware/ch-unified_modeling_language/seq-quizuml/
Quiz Q2 + Q5 – Q7
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
30.10.2016
Herunterladen