• Keine Ergebnisse gefunden

Einf¨uhrung in die Informatik 1 – Objektorientierung – Sven Kosub

N/A
N/A
Protected

Academic year: 2021

Aktie "Einf¨uhrung in die Informatik 1 – Objektorientierung – Sven Kosub"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einf¨ uhrung in die Informatik 1

– Objektorientierung –

Sven Kosub

AG Algorithmik/Theorie komplexer Systeme Universit¨at Konstanz

E 202 | Sven.Kosub@uni-konstanz.de | Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.V.

Wintersemester 2008/2009

(2)

Objektorientierte Software-Entwicklung

1

Analyse

Untersuchung der Realit¨at auf Objekte und Objektbeziehungen Erstellung eines objektorientierten Modells der Realit¨at

Erstellung eines Nutzungsprofils: Welche Funktionalit¨at wird wem zur Verf¨ugung gestellt? Was passiert mit Objekten und warum?

2

Entwurf

Ubertragung des objektorientierten Modells auf Software-Architektur¨ Einbeziehung programmiertechnischer Notwendigkeiten

3

Implementierung

Konkretisierung der Software-Architektur in Programm Repr¨asentierung von Objektzust¨anden in Datenstrukturen

Realisierung und Ausprogrammierung der Objektfunktionalit¨aten als Algorithmen (Methoden)

(3)

Objekte

Objekt:

gedankliche oder reale Einheit in Umwelt oder Software

beschrieben durch Zustand und Funktionalit¨ at

Fernsehapparate:

Fernsehapparat

”TV2000“

Zustand setzt sich zusammen aus Werten von Zustandsvariablen

Funktionalit¨at setzt sich zusammen aus Methoden

(4)

Klassen

(Objekt-)Klasse

Zusammenfassung von Objekten mit gleichen Zustandsvariablen und Methoden

Objekte einer Klasse durch Werte der Zustandsvariablen beschrieben modelliert einen bestimmten Typ von Objekten

Fernsehapparate (Forts.):

Klasse: Fernsehapparate vom Typ

”TV2000“

Objekt: Fernsehapparat bestimmtes Ger¨at mit konkreter, eindeutiger Seriennummer

Beachte:graphische Repr¨asentierung von Objekten beschreibt Klassen

(5)

Objektbeziehungen

Objektbeziehungen modellieren Interaktion von Objekten

objektorientierte Software-Systeme = Objekte + Objektbeziehungen graphische Repr¨ asentierung: Linien mit Beschriftung (Annotation)

Objekte der Klasse

”Person“ und Objekte der Klasse

”Auto“ stehen in gerichteter Beziehung

”besitzt“

Person darf beliebig viele Autos besitzen (Beschriftung

”*“) Auto darf nur von einer Person besessen werden (Beschriftung

”1“)

(6)

Objektbeziehungen

Klassifikation von Objektbeziehungen:

Nachrichtenaustausch (message passing) Methodenaufruf

(method call, client-server) Einschluss

(containment,

” has-a“) Vererbung

(inheritance, subtype,

” is-a“)









verhaltensbezogene Beziehungen









strukturelle Beziehungen

(7)

Objektbeziehungen: Nachrichtenaustausch

Austausch von Nachrichten zwischen Objekten (message passing):

Methode des Absenders schickt Nachricht an Empf¨ anger

Methode des Empf¨ angers nimmt Nachricht an und verarbeitet sie graphische Repr¨ asentierung: Pfeil zwischen Objekten

Objekt der Klasse

”Student“ schickt die Personaldaten einem Objekt der Klasse

”Studentensekretariat“

Beachte:Nachrichtenaustausch erfolgtasynchron

Absenden und Empfangen geschieht unabh¨angig voneinander Absender kann nach Absenden sofort weiter arbeiten

(8)

Objektbeziehungen: Nachrichtenaustausch

Interaktionsdiagramme:

Modellierung komplexer Informationsfl¨ usse

Informationsfluss zwischen zwei Objekten ist Folge ausgetauschter Nachrichten

Nachrichten werden durchnummeriert in zeitlicher Abfolge

”Anmeldung mit Mahnung“

(9)

Objektbeziehungen: Methodenaufruf

Grundschema von Client-Server-Beziehungen:

ein Objekt (Kunde, Auftraggeber, Client) fordert Dienstleistung an anderes Objekt (Dienstleister, Lieferant, Server) erbringt

Dienstleistung

Methodenaufruf als Dienstleistung:

Client ruft Methode des Servers (mit geeigneten Parametern) auf Server f¨ uhrt Methode aus und liefert Ergebnis zur¨ uck

graphische Repr¨ asentierung: Pfeil mit geschlossener Spitze

Beachte:Methodenaufruf erfolgtsynchron

Client und Server im Gleichklang bei Methodenaufruf

Client wartet, bis Server Aufruf akzeptiert und Ergebnis liefert

(10)

Objektbeziehungen: Methodenaufruf

”Roboter“ gibt

”Antrieb“ einen Auftrag durch Methodenaufruf

”vorw¨arts()“

Methodenaufruf in Java:

Client-Objekt ruft auf einem Server-Objektdder KlasseDrive eine Methode auf

. . .

d.vorw¨arts();

. . .

(11)

Objektbeziehungen: Methodenaufruf

Methodenaufruf als spezielle Interaktion zwischen Objekten

”Roboter“ interagiert mit einem seiner

”Antriebe“

Modellierung als Nachrichtenaustausch (asynchrone Kommunikation)

Modellierung als Methodenaufruf (synchrone Kommunikation)

(12)

Objektbeziehungen: Methodenaufruf

Objekt kann sowohl Client als auch Server sein

(13)

Objektbeziehungen: Einschluss

Einschlussbeziehung zwischen Objektklassen:

Objekte der einen Klasse schließen Objekte der anderen Klasse ein

” hat“-Beziehung (has-a), da Objekt mehrere Teilobjekte besitzt modelliert Aggregation von Teilobjekten in Objekt

graphische Repr¨ asentierung: Raute am umfassenden Ende der Linie

Vorlesung

”hat“ 0,1,. . ., 200 Studenten Studenten nehmen an 0,. . ., 5 Vorlesungen teil

(14)

Objektbeziehungen: Einschluss

Komposition als spezielle Einschluss-Beziehung:

jedes Teilobjekt ist Attribut des umfassenden Objektes und Teil seines Zustandes

graphische Repr¨ asentierung: schwarz gef¨ ullte Raute

ein Auto

”hat“ 4 R¨ader Komposition in Java:

class Auto {

Rad vr, vl, hr, hl;

Motor m;

. . . m.ein();

. . . }

(15)

Objektbeziehungen: Vererbung

Subtyp-Beziehung zwischen zwei Klassen A und B

A ist Subtyp von B, falls A alle Eigenschaften von B besitzt, d.h.

Variablen

B

Variablen

A

und Methoden

B

Methoden

A

Vererbungsprinzip:

Subtyp erbt Eigenschaften des Supertyps

Subtyp durch Hinzunahme von Eigenschaften spezieller als Supertyp Supertyp durch Weglassen von Eigenschaften allgemeiner als Subtyp Vorteil:

Vermeidung von Replikation gleicher Variablen und Methoden in

¨ ahnlichen Typen durch Zusammenfassung zu gemeinsamem Supertyp

(16)

Objektbeziehungen: Vererbung

graphische Repr¨ asentierung: Pfeil mit breiter hohler Spitze

Zustandsvariable

”Seriennummer“ kommt in

”Motor“und

”TV“ vor

wird nur im gemeinsamen Supertyp

”Ger¨at“

gef¨uhrt und von dort vererbt

(17)

Objektbeziehungen: Vererbung

vollautomatische Kaffeemaschine vom Typ

”Cafe2000“ hat eine Funktion zur Bef¨ullung von Kaffee und Wasser bis zu 12 Tassen

Luxusmodell vom Typ

”Cafe2000LT“ hat zus¨atzlich noch eine Timer-Funktion zur Eingabe der gew¨unschten Startzeit

Vererbung in Java:

class Cafe2000LT extends Cafe2000 { Time t;

void timer(Time time);

. . . }

(18)

Objektorientierte Analyse und Entwurf

objektorientierte Analyse

umgangssprachliche Beschreibung auf Objekte, ihre Attribute, Funktionalit¨at und Beziehungen hin untersuchen

Substantive geben Hinweise auf Objekte und Zust¨ande, Verben geben Hinweise auf Funktionalit¨at,

Aussagen wie

”hat ein“ oder

”ist ein“ deuten auf Objektbeziehungen

objektorientierter Entwurf

bilde Strukturen auf jeweilige Programmmiersprache ab

erg¨anze um softwaretechnische Notwendigkeiten und Hilfskonstrukte (z.B. h¨ohere Datenstrukturen)

objektorientierte Implementierung demn¨ achst!

Referenzen

ÄHNLICHE DOKUMENTE

Es muss genau spezifiziert sein, welche Eingabegr¨ oßen erforderlich sind und welchen Anforderungen diese Gr¨ oßen gen¨ ugen m¨ ussen, damit das Verfahren

jeder Verbund hat h¨ ochstens einen Verbund, der auf ihn referenziert letzter Verbund der Liste referenziert auf sich selbst oder auf speziellen Bezeichner f¨ ur den leeren

i++ legt fest, dass i nach jedem Durchlauf inkrementiert wird Anweisung hinter for (...) wird in jedem Durchlauf ausgef¨ uhrt...

Klasse M2DT verbindet ein Objekt (Messwert) vom Typ Messwert2D mit einem Objekt vom Typ Time (Zeitpunkt der Messung). Variablen m und t

● Die Methode main kann auch in einer anderen Klasse programmiert werden.. ● Beide Klassen müssen zunächst im selben

Jedes ausleihbare Buch kann durch einen Bibliotheksbenutzer ausgeliehen werden. Ein ausgeliehenes Buch muss spätestens nach drei Wochen

■ Eine Klasse enthält einen speziellen Repräsentanten, ein spezielles Objekt, ein Schablonenobjekt (Prototyp) für ihre Objekte. ■ Ein Objekt wird aus einer Klasse

In der Analyse werden komplexe Objekte in der Regel aus einem Kern und einer Menge von zugehörigen Unterobjekten dargestellt In der Analyse werden komplexe Objekte in der Regel