24
Hans-Jürgen Steffens Systemanalyse SS 04 1 5. Vorlesung: Grundkonzepte Objekt- Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen Stereotypes

Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Embed Size (px)

Citation preview

Page 1: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 1

5. Vorlesung: Grundkonzepte Objekt-Orientierung

Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen Stereotypes

Page 2: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 2

Objektorientierung

In der realen Welt begegnen wir zahlreichen Objekten• Menschen, Tieren, Autos, ...• Verträge, Gruppen, Dreiecke, ...

Objekte haben Eigenschaften (Attribute)• Z. B. Name, Alter, Farbe

Objekte haben ein Verhalten• Z. B. können Menschen ihr Alter nennen, ihre Adresse ändern

usw. Objekte können in Beziehung miteinander stehen

• Z. B. Freundschaft, Heirat, eine Person ist Kunde einer Firma, .. Objekte können sich aus anderen Objekten zusammen setzen Gleichartige Objekte können zusammen gefasst werden zu

Klassen• Z. B. umfasst die Klasse Person einzelne Objekte wie „Edmund

Stoiber“, „Gerhard Schröder“, „Angela Merkel“, „Joschka Fischer“

Page 3: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 3

Objektorientierte Modellierung

Reale Welt

Name = Sandra MüllerWohnort = ZweibrückenBeruf = Informatikerin

Sandra Müller

Marke = PeugeotAutonr = ZW-AB 97Baujahr = 2001

: Fahrzeug

besitzt

Objektorientiertes Modell

Abbildung

Abbildung

Page 4: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 4

Objekt

Ein Objekt im Sinne der objektorientierten Software-Entwicklung

• besitzt eine Struktur (Attribute)

• hat zu einem Zeitpunkt einen definierten Zustand (repräsentiert durch Attribut-Werte)

• hat ein bestimmtes Verhalten (beschrieben durch eine Menge von Operationen)

– Änderungen oder Abfrage des Zustands nur über Operationen möglich

• Hat eine eindeutige Identität, die es von allen anderen Objekten unterscheidet

• Kann ein oder mehrere andere Objekte kennen (mit diesen in Beziehung stehen)

Page 5: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 5

Beispiel: Mitarbeiter-Objekt

Personalnr = 1234

Name = Müller

Gehalt = 3000

einstellen ()

erhöheGehalt ()

druckeAusweis ()

Personalnr = 1234Name = MüllerGehalt = 3000

Müller : Mitarbeiter

UML-Darstellung:

Page 6: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 6

UML-Notation von Objekten

Angabe von Attributen:

Attribut : Typ = Wert (i.d.R. ist der Typ aber bei der Klasse definiert)

Attribut = Wert

Attribut Operationen werden nicht beim Objekt angegeben

(sondern bei seiner Klasse)

Attribut 1 = Wert 1Attribut 2 = Wert 2

Objekt : Klasse Objekt

:Klasse

Objektnameimmer unterstrichen!

Wenn der Namekeine Rolle spielt,wird nur die Klasse angegeben (Doppelpunkt davor!)

Page 7: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 7

Prinzipien

Kapselung:

• Zustand und Verhalten eines Objekts bilden eine Einheit, das Objekt kapselt Zustand (Daten) und Verhalten (Operationen)

Geheimnisprinzip:

• Attribute sind von außen nicht sichtbar

• Es kann nur über Operationen darauf zugegriffen werden Objektidentität:

• Auch wenn zwei Objekte identische Attributwerte besitzen (Gleichheit der Objekte), sind sie aufgrund ihrer Identität verschieden.

Page 8: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 8

Klasse

Objekte mit gleichartiger Struktur und gleichartigem Verhalten werden zu Klassen zusammengefasst

Die Klasse definiert für ihre Objekte die Attribute, Operationen und Beziehungen (Assoziationen und Vererbungsstrukturen)

Jedes Objekt gehört zu genau einer Klasse Verhalten einer Klasse:

• Wird beschrieben durch die Botschaften, auf die seine Objekte reagieren können

• Eine Botschaft aktiviert eine Operation gleichen Namens

Page 9: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 9

Beispiel

einstellen()erhöheGehalt()druckeAusweis()

PersonalnrNameGehalt

Mitarbeiter

Personalnr = 1234Name = MüllerGehalt = 3000

Müller : Mitarbeiter

Personalnr = 5678Name = MeyerGehalt = 2800

Meyer : Mitarbeiter

Page 10: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 10

Darstellung von Klassen

Operation 1()Operation 2()...

Attribut 1Attribut2...

Klasse

Klasse

Page 11: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 11

Objektverwaltung

Jedes Objekt kennt seine Klasse

• Attribute und ihre Typen

• Operationen In der Systemanalyse geht man vereinfachend davon aus, dass

eine Klasse ihre Objekte ebenfalls kennt Objektverwaltung kann dann bei der Klasse dokumentiert

werden, z. B.:

• Erzeugen und Löschen von Objekten

• Anfragen und Manipulationen auf allen Objekten einer Klasse Im Entwurf und der Implementierung muss die Objektverwaltung

explizit realisiert oder von der verwendeten Umgebung bereit gestellt werden

Page 12: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 12

Klasse und Klassen-Extension

Klasse:

• Ist eine Abstraktion, die Gemeinsamkeiten von Objekten und Regeln zu ihrer Erzeugung beschreibt

Klassen-Extension:

• Menge aller Objekte dieser Klasse (Ansammlung von Objekten)

• Wird z. B. für die Objektverwaltung benötigt.

Beschreibung:• Personen haben

einen Namenund ein Alter

Max MeierBrad Pitt Nicole Kidmann

Michael Schumacher

Page 13: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 13

Attribute

Beschreiben die Daten, die von Objekten angenommen werden können

Jedes Attribut ist von einem bestimmten Typ Alle Objekte einer Klasse besitzen dieselben Attribute, jedoch

unterschiedliche Attributwerte

Page 14: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 14

Attribute: Beispiel

MatrikelnrNameGeburtsdatumImmatrikulationVordiplomNoten

Student

Matrikelnr = 868768Name = (Hans, Meyer)Geburtsdatum = 4.7.1983Immatrikulation = 1.10.2001VordiplomNoten = ((2.3, Mathematik), (1.3, Informatik))

: Student

Page 15: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 15

Attribut-Typen

Angabe des Typs ist optional UML gibt keine bestimmten Typen vor Hängen von der jeweiligen

Programmiersprache ab Häufig in der Analyse verwendete Typen:

• String• Int• Float• Fixed (Vorkommastellen, Nachkommastellen)• Boolean• Date• Time• Aufzählungstypen: {Wert1, Wert2, Wert3}• Listen: List of ...

Matrikelnr:IntName:StringGeburtsdatum: DateImmatrikulation:DateVordiplom:DateNoten:List of Note

Student

Page 16: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 16

Spezielle Attribute

Klassenattribute

• Es existiert nur ein Attributwert für alle Objekte einer Klasse

• Existieren auch, wenn noch kein Objekt für die Klasse besteht

• Klassenattribute werden unterstrichen

• Z. B. MaximaleAnzahlObjekte Abgeleitete Attribute

• Attribute, die jederzeit aus anderen Attributen berechnet werden können

• Werden mit Präfix / gekennzeichnet

• Z. B.: /Alter : Int {Akt. Datum – Geburtsdat.,

abge- rundet auf ganze Jahre}

/AnzahlObjekte

Page 17: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 17

Operationen

Ausführbare Tätigkeiten Alle Objekte einer Klasse verwenden dieselben Operationen Jede Operation kann auf alle Attribute eines Objekts dieser

Klasse direkt zugreifen Menge aller Operationen: Verhalten oder Schnittstelle der Klasse

Page 18: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 18

Beispiel, Notation

immatrikulieren()exmatrikulieren()druckeStudienbescheinigung()notiereNoten()berechneDurchschnitt()druckeVordiplomsliste()anmeldePraktikum()druckePraktbescheinigung()

MatrikelnrNameGeburtsdatumImmatrikulationVordiplomNoten

Student

Operation()Klassenoperation()AbstrakteOperation()

AttributKlassenattribut

Klasse

Page 19: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 19

Objekt- und Klassen-Operationen

Objekt-Operationen:

• Werden auf einzelnes (bereits bestehendes) Objekt angewendet

• (Abstrakte Operation: Operation einer abstrakten Klasse, wird erst in einer Unterklasse implementiert - siehe nächste Vorlesung).

Klassen-Operationen:

• Ist der Klasse zugeordnet und kann nicht auf ein einzelnes Objekt der Klasse angewendet werden

• Wird unterstrichen (z. B. drucke Vordiplomsliste( )) Konstruktor-Operationen:

• Erzeugt ein neues Objekt und führt entsprechende Initialisierungen und Datenerfassungen durch (z. B. Operation „immatrikulieren( )“)

Page 20: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 20

Darstellung von Operationen in der Analyse

Meist genügt der Name der Operation, gefolgt von einer leeren Argumentenliste ( )

Es werden vornehmlich die fachlich relevanten, von außen sichtbaren Operationen angegeben. Interne Operationen, d. h. solche, die nur von anderen Operationen aufgerufen werden, werden nur dann angegeben, wenn dies für das Verständnis erforderlich ist.

Trivial-Operationen zum Auslesen und Ändern von Attributwerten („get“, „set“) müssen nicht angegeben werden

Page 21: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 21

Arten von Operations

1. Operationen mit lesendem Zugriff auf Attribute

2. Operationen mit schreibendem Zugriff auf Attribute

3. Operationen zur Durchführung von Berechnungen

4. Operationen zum Erzeugen und Löschen von Objekten (Konstruktur, Dekonstruktor)

5. Operationen zur Selektion von bestimmten Objekten einer Klasse

6. Operationen zum Herstellen und Löschen von Verbindungen

7. Operationen, die Operationen der Objekte anderer Klassen aktivieren

Page 22: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 22

Namens-Konventionen

Klassen:

• Substantiv im Singular, kann durch Adjektiv ergänzt werden

• Sollte innerhalb des Systems eindeutig sein Attribute:

• Name beschreibt Daten, meist Substantiv

• Innerhalb der Klasse eindeutig Operationen:

• Name drückt aus, was die Operation tut, enthält daher meist ein Verb

• Innerhalb der Klasse eindeutig

Page 23: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 23

Zusammenfassung

Ein Objekt besitzt Attribute, einen Zustand (repräsentiert durch Attributwerte) und ein Verhalten (beschrieben durch seine Operationen). Es hat eine eindeutige Identität.

Eine Klasse beschreibt Objekte mit gleichartiger Struktur und Verhalten. Sie definiert deren Attribute, Operationen und Beziehungen.

Die Verantwortung für die Objektverwaltung liegt in der Systemanalyse ebenfalls bei der Klasse.

Attribute beschreiben die Daten eines Objekts. Spezielle Attribute sind Klassenattribute und abgeleitete Attribute.

Operations beschreiben die Tätigkeiten, die ein Objekt ausführen kann.

Page 24: Hans-Jürgen Steffens Systemanalyse SS 041 5. Vorlesung: Grundkonzepte Objekt-Orientierung Objekt Objektorientierte Prinzipien Klasse Objektverwaltung Operationen

Hans-Jürgen Steffens Systemanalyse SS 04 24

Übungsfragen

Was ist ein Objekt? Wie wird es in der UML dargestellt? Was versteht man unter Kapselung? Was besagt das Geheimnisprinzip? Erläutern Sie Gleichheit und Identität von Objekten Was ist eine Klasse? Erläutern Sie Verhalten und Schnittstelle einer Klasse. Was ist ein Objektattribut? Was ist ein Klassenattribut? Was ist ein abgeleitetes Attribut? Was ist eine Operation? Was ist eine Konstruktor-Operation? Welche Arten von Operationen kann man unterscheiden?