33
Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Embed Size (px)

Citation preview

Page 1: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Objektorientierte Modellierung mit UML

Gerhard Röhner18. März 2006

Page 2: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

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

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

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

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

Drei-Schichten-Architektur

Page 7: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Objektorientierte Programmierung

Implementierung des OOD-Modells in einer objektorientierten Programmiersprache

Page 8: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

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

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

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

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

Klasse

Abstraktion gleichartiger Objekte Beschreibung der Objekte Datentyp der Objekte

Page 13: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Stempelmetapher

Page 14: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

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

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

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

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

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

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

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

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

Beispiel Assoziation

Page 23: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Aggregation

Ganzes Teilbesteht aus

Universität Fachbereichhat

Instituthat

Page 24: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

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

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

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

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

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

Klassendiagramm

Index für Datenbanktabelle

Page 30: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Sekundarstufe I

Page 31: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

Sequenzdiagramm

Page 32: Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006

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

ER-Modellierung

Verhältnis ERM zu OO

Problembereiche Spiele Simulationen Anwendungen