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

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

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

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