objektorientierte modellierung mit uml gerhard röhner 18. märz 2006
TRANSCRIPT
![Page 1: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/1.jpg)
Objektorientierte Modellierung mit UML
Gerhard Röhner18. März 2006
![Page 2: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/2.jpg)
Objektorientierter Entwicklungsprozess
Smalltalk, Eiffel, TP 5.5, Delphi, Java Entwicklung der UML Entwicklung der OO-Methodik objektorientierte Methoden ganzheitliche Gegenstände bessere Abstraktionsmöglichkeiten methodische Durchgängigkeit evolutionäre Entwicklung
![Page 3: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/3.jpg)
Durchgängige Modellrepräsentation
OOA – objektorientierte Analyse (Definition) OOD – objektorientiertes Design (Entwurf) OOP – objektorientierte Programmierung
(Implementierung)
Kunde
Name Anschrift Bonität
BonitätPrüfen()
type Kunde = class Name: String; StrasseNr: String; PLZOrt: String; Bonitaet: integer; procedure BonitaetPruefen; end;
![Page 4: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/4.jpg)
Objektorientierte Analyse
Wünsche und Anforderungen der Auftraggebers an ein neues System ermitteln und beschreiben
fachliche Lösung des zu realisierenden Systems
keine Implementierungsaspekte Entwicklung des Fachkonzepts
![Page 5: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/5.jpg)
Objektorientierter Entwurf
Realisierung des Fachkonzepts aus OOA auf einer Plattform
Effizienz und Standardisierung Realisierung der Drei-Schichten-Architektur
![Page 6: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/6.jpg)
Drei-Schichten-Architektur
![Page 7: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/7.jpg)
Objektorientierte Programmierung
Implementierung des OOD-Modells in einer objektorientierten Programmiersprache
![Page 8: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/8.jpg)
Objekt
Element des Anwendungsbereichs Geheimnisprinzip Attribute Methoden Exemplar einer Klasse Objektidentität
Personal nummer: 1234 Name: Müller Gehalt: 5500
einstellen()
erhöheGehalt()
druckeAusweis()
![Page 9: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/9.jpg)
UML-Darstellung
unterteiltes Rechteck Name im Singular zentriert, unterstrichen Attribute und Werte
Mitarbeiter 1
Personalnummer = 1234 Name = Müller Gehalt = 5500
![Page 10: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/10.jpg)
Attribut
Datenbereich eines Objekts Name und Datentyp Wert legt Zustand des Objekts fest alle Objekte einer Klasse haben gleiche
Attribute Substantiv
![Page 11: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/11.jpg)
Methode
Operation zum Manipulieren des Objekts Prozeduren Funktionen Konstruktoren alle Objekte einer Klasse haben gleiche
Methoden Verb oder Verb + Substantiv
![Page 12: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/12.jpg)
Klasse
Abstraktion gleichartiger Objekte Beschreibung der Objekte Datentyp der Objekte
![Page 13: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/13.jpg)
Stempelmetapher
![Page 14: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/14.jpg)
UML-Darstellung der Klasse
unterteiltes Rechteck Name im Singular zentriert, nicht unterstrichen Attribute Methoden
Klasse
Attribute
Methoden()
Mitarbeiter
Personalnummer Name Gehalt
einstellen() erhöheGehalt() druckeAusweis()
![Page 15: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/15.jpg)
Objekt-Klassen-Beziehung
R1
x1 = 5 y1 = 10 x2 = 100 y2 = 200
R2: Rechteck
x1 = 100 y1 = 50 x2 = 200 y2 = 100
Rechteck
x1 y1 x2 y2
zeigen() gibFlaeche()
![Page 16: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/16.jpg)
Programmierung in Java
public class Mitarbeiter { private int Personalnummer; private String Name; private float Gehalt; public void einstellen() { } public void druckeAusweis() { } public void erhöheGehalt(float Betrag) { }}
![Page 17: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/17.jpg)
Programmierung in Delphiunit UMitarbeiter;interface type Mitarbeiter = class private Personalnummer: integer; Name: String; Gehalt: real; public procedure einstellen; procedure druckeAusweis; procedure erhoeheGehalt(Betrag: real); end;implementation ...end.
![Page 18: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/18.jpg)
Assoziation
Kennt-Beziehung Objektbeziehung ist Exemplar einer Assoziation Darstellung durch Strecken ungerichtet - gerichtet
Schueler
Nachname Vorname Geburtsdatum Führerschein
machePrüfung()
Auto
KFZ-Kennzeichen Kilometerstand Tankvolumen Kraftstoffverbrauch Kraftstoffmenge
tanken() fahren()
fährt
![Page 19: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/19.jpg)
Kardinalität - Multiplizität
Kardinalität: 1, * Multiplizität: 0..3, 2..4, ... Optionalität: 0 – nicht 0
Kunde Kontobesitzt
1 0..3
![Page 20: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/20.jpg)
Implementierung Assoziation
Operation Beispiel Allgemein
Herstellen einer Beziehung setAuto(einAuto) link
Abfragen einer Beziehung getAuto(): Auto getlink
Aufheben einer Beziehung removeAuto() unlink
![Page 21: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/21.jpg)
Implementierung Assoziation
public class Schueler { private Auto dasAuto; ... public void setAuto(Auto einAuto) { dasAuto = einAuto; } public Auto getAuto() { return dasAuto; } public void removeAuto() { dasAuto = null; }}
![Page 22: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/22.jpg)
Beispiel Assoziation
![Page 23: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/23.jpg)
Aggregation
Ganzes Teilbesteht aus
Universität Fachbereichhat
Instituthat
![Page 24: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/24.jpg)
Aggregation
hat-Beziehung (besteht aus, Teil-Ganzes) Raute für Behälterobjekt Implementierung als Feld, Liste oder Vektor
Ganzes Teilbesteht aus
Universität Fachbereichhat
Instituthat
![Page 25: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/25.jpg)
Komposition
Spezialfall der Aggregation Teile sind existenzabhängig vom Ganzen
Ganzes
TeilAggregation
existenzabhängigesTeil
Komposition
Ordner Datei
enthält
enthältDokument
enthält
![Page 26: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/26.jpg)
Generalisierung
Beziehung zwischen allgemeiner und spezieller Klasse
Klassenhierarchie abgeleitete Klasse hat
zusätzliche Attribute und Methoden
Darstellung durch Pfeil mit geschlossenem Dreieck
Ist-Beziehung
Person
Name Anschrift Geburtsdatum
druckeAdresse()
Angestellter
Personalnummer Gehalt Bank
überweiseGehalt()
Student
MatrikelNr Immatrikulationen
druckeAusweis()
Hilfskraft
Beschäftigungen
druckeArbeitszeiten()
![Page 27: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/27.jpg)
Delegation
Liste
einfuegen() löschen() geben()
Keller
push() pop() top()
Liste
einfuegen() löschen() geben()
Keller
push() pop() top()
schlechte Modellierungmit Vererbung
gute Modellierungmit Delegation
![Page 28: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/28.jpg)
Implementierung der Vererbung
Type Unterklasse = class(Oberklasse) // allgemein TAutoFormular = class(TForm) // Beispiel
In Java benutzt man das Schlüsselwort extends:
public class Unterklasse extends Oberklasse {} // allgemein public class Hilfskraft extends Student() // Beispiel
![Page 29: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/29.jpg)
Klassendiagramm
Index für Datenbanktabelle
![Page 30: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/30.jpg)
Sekundarstufe I
![Page 31: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/31.jpg)
Sequenzdiagramm
![Page 32: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/32.jpg)
Zustandsdiagramm
POP3-Protokoll
STAT liefert die Anzahl der verfügbaren E-Mails und deren Gesamtgröße LIST liefert eine nummerierte Liste der verfügbaren E-Mails samt GrößeRETR # holt E-Mail mit der Nummer #DELE # markiert die E-Mail mit der Nummer # zum LöschenNOOP No OperationRSET alle Löschmarkierungen werden aufgehobenQUIT Verbindung beenden und markierte E-Mails löschen
![Page 33: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006](https://reader036.vdocuments.pub/reader036/viewer/2022062318/55204d8249795902118d502e/html5/thumbnails/33.jpg)
ER-Modellierung
Verhältnis ERM zu OO
Problembereiche Spiele Simulationen Anwendungen