Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML...

Post on 05-Apr-2015

104 views 0 download

Transcript of Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML...

Institut für Kartographie und GeoinformationProf. Dr. Lutz Plümer

Objektorientierte Konzepte/UML

Geoinformation IVorlesung 2

WS 2000/2001

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

2 2

Übersicht I

• Idee von OO

• Kapselung

• Idee der Kapselung

• Abschließend noch einmal zur Beschreibung von Klassen

• Varianten der Notation

• UML: Beziehungen

• Beziehungen in UML - einführendes Beispiel

• Bezeichnung von Beziehungen

• Bezeichnung: Noch ein Beispiel

• Multiplizität von Beziehungen

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

3 3

Übersicht II

• Mögliche Multiplizitäten

• Wichtige Beziehungen I: Aggregation und Komposition

• Eine Komposition flächenhafter Objekte

• Wichtige Beziehungen (II):Generalisierung und Spezialisierung

• Vererbung

• Und was ist mit Methoden?

• Übung: Anwendung der Generalisierung auf Land, Kreis, Gemeinde

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

4 4

Punkt

Bezugssystem

Breite

Länge

x ytransform(..)

Sichtbarkeiteinschränken

Abstraktion

KapselungParametrisierung

Idee von OO

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

5 5

Kapselung

...

...

weitere Zugriffsfunktionen setLänge

getLänge

setBreite

getBreite

getysety

transform()

Punkt

Bezugssystem

Breite

Länge

x y

Unsichtbar

Sichtbar

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

7 7

Idee der Kapselung

• Attribute sind nur innerhalb der Klasse sichtbar– private– Notation: -– vor Änderung geschützt

• Zugriff auf Attribute nur durch „öffentliche“ Operationen („Methoden“)– public– Notation +– Methoden sind für Konsistenzwahrung zuständig

• Zusammenhang von– Länge/Breite und x/y

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

8 8

Typen undInitalwerte sind optional

Abschließend noch einmal zur Beschreibung von Klassen

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

9 9

Varianten der Notation

Klasse2

Klasse3

Klasse ohne Attribute und Operationen

Attribute und Methodennicht dargestellt

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

10 10

UML: Beziehungen

Flächen

Knoten

Kanten

begrenzen

begrenzen

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

11 11

Beziehungen in UML - einführendes Beispiel

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

12 12

KanteGrundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person2

3..*

begrenzt

Name

Multiplizität

• jedes Grundstück hat mindestens drei Kanten

• jede Kante begrenzt genau zwei Grundstücke

Beziehungen in UML - einführendes Beispiel

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

13 13

Klasse A Klasse BBeziehungsnameRolle A

Rolle B

Leserichtung

Bezeichnung von Beziehungen

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

14 14

Firma Mitarbeiterarbeitgeber arbeitnehmer

beschäftigt

arbeitet für

Bezeichnung: Noch ein Beispiel

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

15 15

KanteGrundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person2

3..*

begrenzt

Multiplizität von Beziehungen

G1

G2

Leserichtung

• eine Kante begrenzt genau 2 Grundstücke

• ein Grundstück hat mindestens 3 Kanten

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

16 16

Mögliche Multiplizitäten:

1 genau eins

0..1 null oder eins

0..4 zwischen null und vier

3,7 drei oder sieben

0..* größer oder gleich null (Standard)

* dto.

1..* größer oder gleich eins

0..3, 7, 9..*

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

17 17

Ganzes

Teil

Ganzes

Teil

n

1..1

Wichtige Beziehungen I: Aggregation und Komposition

• Aggregation: eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen

• Komposition: eine strenge Form der Aggregation, bei der die Teile vom Ganzen existenzabhängig sind

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

18 18

Land

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Kreis

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Gemeinde

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahln

1..1

Grundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person-Fläche : Zahl

n

1..1

1..1

n

Eine Komposition flächenhafter Objekte

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

19 19

Wichtige Beziehungen (II):Generalisierung und Spezialisierung

• Die „GeomFigur“ ist ein allgemeineres Konzept als „Dreieck,“ „Kreis“ oder „Rechteck“

• GeomFigur ist Oberklasse,Dreieck, Kreis und Rechteck sind Unterklassen

• Unterklassen erben die Attribute der Oberklasse und fügen ggf. weitere hinzu

GeomFigur

Dreieck Kreis Rechteck

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

20 20

Vererbung

• Generalisierung und Spezialisierung sind Abstraktionsprinzipien zur hierarchischen Strukturierung der Semantik eines Modells

• Generalisierung und Spezialisierung beschreiben eine „taxonomische“ (systematische) Beziehungen zwischen einem allgemeinen und einem speziellen Element, wobei das speziellere weitere Eigenschaften hinzufügt und sich kompatibel zum allgemeinen verhält

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

21 21

Und was ist mit Methoden?

GeomFigur

+anzeigen()+entfernen()+verschieben()

-Mittelpunkt : Punkt-sichtbar : Boolean

Dreieck

+anzeigen()+entfernen()

-a : Zahl-b : Zahl-c : Zahl

Kreis

anzeigen() entfernen()

-radius : Zahl

Rechteck

anzeigen() entfernen()

-a : Zahl-b : Zahl

Methoden werden vererbt oder überschrieben

Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2 Lutz Plümer - Geoinformation - 1./5. Semester - WS 00/01 - Vorlesung 2

22 22

Land

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Kreis

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahl

Gemeinde

+getBezeichnung() : Name+getEinwohner() : Zahl+getFläche() : Zahl

-Bezeichnung : Text-Einwohner : Zahl-Fläche : Zahln

1..1

Grundstück

+getFläche() : Zahl+getBesitzer() : Person

-Besitzer : Person-Fläche : Zahl

n

1..1

n

1..1

Übung: Anwendung der Generalisierung auf Land, Kreis, Gemeinde