Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Warum Objektorientierung?

Ähnliche Präsentationen


Präsentation zum Thema: "Warum Objektorientierung?"—  Präsentation transkript:

1 Warum Objektorientierung?
Hauptprobleme der industriellen Softwareentwicklung: Beherrschung der Komplexität Wartbarkeit Wiederverwendung (Ökonomie der Softwareentwicklung) Objektorientierte Programmierung: bietet Lösungsansätze für obige Hauptprobleme bietet natürlichen Übergang von Problemformulierung zum Programm objektorientierte Modellierung in Systemanalyse und Design paßt zu graphischen Oberflächen und verteilten Systemen (Internet!) aber: erfordert völlig anderes Denken als klassisches prozedurales Programmieren

2 Programmierparadigmen
Maschinennahe Programierung: Sprungbefehle (GO TO), Adressierung auf Speichereben Prozedurale (strukturierte) Programmierung: Verwendung von IF, WHILE und Unterprogrammen Modulare Programmierung: Zusammenfassung von Unterprogrammen und Datentypen in geschlossene Einheiten Objektorientierte Programmierung Programm als Gemeinschaft kooperierender Einheiten Methoden (lokale Operationen auf Dateneinheiten) statt Prozeduren Komponentenorientierte Programmierung: Programm zusammengesetzt aus vorgefertigten Bausteinen Delphi: ermöglicht alle Programmierparadigmen und deren Mischung

3 Verantwortungsbereiche
Sachbearbeiter in einem Betrieb oder einer Behörde Ist unter definierter Adresse/Telnr. erreichbar. (Identität) Hat genau definierten Zuständigkeitsbereich Bearbeitet genau definierte Einzelaufgaben Verfügt über spezielles Wissen bzw. spezifische Information Bearbeitet komplexe Geschäftsvorfälle in Zusammenarbeit mit anderen Sachbearbeitern “Software-Sachbearbeiter” = Objekte Meine Verantwortung: Produktkatalog Meine Verantwortung: Kontoführung Objekte können als "Sachbearbeiter" für bestimmte Teilaufgaben eines Softwaresystems gesehen werden.

4 Objektorientierung Identität: „DD-0X5A“ Zustand: Verhalten:
„gelbes Licht“ Zustand: Normalbetrieb Wie ist das Objekt bezeichnet? Wie verhält es sich zu seiner Umgebung? Welche Informationen sind „Privatsache“ des Objekts?

5 Grundkonzepte der Objektorientierung
Ein System besteht aus vielen Objekten. Ein Objekt hat ein definiertes Verhalten. Verhalten setzt sich zusammen aus einer Menge genau definierter Methoden zur Erfüllung von Einzelaufgaben. Eine solche Methode wird beim Empfang einer Nachricht ausgeführt. Ein Objekt hat einen inneren Zustand. Der Zustand des Objekts ist Privatsache. Das Resultat einer Methode des Objekts (bei Empfang einer Nachricht) hängt vom aktuellen Zustand des Objektes ab. Ein Objekt hat eine eindeutige Identität. Die Identität eines Objektes ist unabhängig von seinen anderen Eigenschaften. Es können mehrere verschiedene Objekte mit identischem Verhalten und identischem inneren Zustand im gleichen System existieren. SCHÖNE ILLUSTRATION: BOOCH 91, S. 77

6 Beispiel: Ampel-Objekt
Objekt zur Repräsentation einer Ampel Ampel DD-0X5A Zeittakt Lichtsignale Verhalten des Ampel-Objekts: Reaktion auf Nachrichten wie ‚Zeittakt‘, ‚Fahrzeugsensor‘ Zustand des Ampel-Objekts: Schaltphase, Restzeit, Betriebsmodus, ... Identität des Ampel-Objekts: Unabhängig vom Zustand Unterscheidbar von anderen Ampeln (auch solchen im gleichen Zustand!) In der Vorlesung wird diese Folie auf einem zweiten Projektor parallel zur vorletzten gezeigt.

7 Beispiel: Termin-Objekt
Objekt zur Repräsentation eines Termins 12. Abteilungsrunde gibDatum versendeEinladungen Ergebnis: Datum Verhalten des Termin-Objekts: Reaktion auf Nachrichten wie ‘gibDatum’, ‘versendeEinladungen’ Zustand des Termin-Objekts: Datum, Ort, Teilnehmer, geplant/bestätigt Identität des Termin-Objekts: Unabhängig vom Zustand In der Vorlesung wird diese Folie auf einem zweiten Projektor parallel zur vorhergehenden gezeigt.

8 Klasse und Objekt Klasse: „Ampel“ Polymorphie:
Ampeln mit Sensorsteuerung reagieren in spezieller Weise auf Zeittakt Vererbung: Sensorgesteuerte Ampel Welcher Begriff beschreibt das Objekt? Welche Begriffshierarchie wird verwendet? Wie hängt das Verhalten des Objektes von der Hierarchie ab?

9 Erweiterte Konzepte der Objektorientierung
Ein Objekt gehört zu einer Klasse. Die Klasse schreibt das Verhaltensschema und die innere Struktur ihrer Objekte vor. Klassen besitzen einen ‘Stammbaum’, in der Verhaltensschema und innere Struktur durch Vererbung weitergegeben werden. Vererbung bedeutet Generalisierung einer Klasse zu einer Oberklasse. Polymorphie: Eine Nachricht kann verschiedene Reaktionen auslösen, je nachdem zu welcher Unterklasse einer Oberklasse das empfangende Objekt gehört. n n

10 Beispiel: Ampel-Klasse und Ampel-Objekte
DD-0X5A: SensorAmpel DD-0Y3C: ZeitAmpel DD-0X5B: SensorAmpel Ampel In der Vorlesung wird diese Darstellung durch ein Venn-Diagramm illustriert. SensorAmpel ZeitAmpel Instanz einer Klasse Generalisierung (Vererbung)

11 Beispiel: Termin-Klasse und Termin-Objekte
AR-12: Teambesprechung Figaro: Theaterbesuch AR-13: Teambesprechung Termin Geschäftstermin Privater Termin Teambesprechung Kundenbesuch Theaterbesuch Instanz einer Klasse Generalisierung (Vererbung)

12 Beispiele: Polymorphie
Jede Ampel reagiert auf den Zeittakt. Die Klasse Ampel schreibt vor, daß auf die Nachricht „Zeittakt“ reagiert werden muß. Verschiedene Reaktionen: Jeder Termin kann verschoben werden. Die Klasse Termin schreibt vor, daß auf die Nachricht „verschiebeTermin“ reagiert werden muß. Unterklassen spezialisieren das Verhalten ihrer Oberklassen. DD-0Y3C: ZeitAmpel DD-0X5A: SensorAmpel AR-13: Teambesprechung Figaro: Theaterbesuch

13 Prinzipielle Vorteile von Objektorientierung
Lokale Kombination von Daten und Operationen, gekapselter Zustand Zuständigkeitsbereiche Stabilität Definiertes Objektverhalten, Nachrichten zwischen Objekten Klare Schnittstellen Änderungs- freundlichkeit Vererbung und Polymorphie (Spezialisierung), Klassenschachtelung Hierarchie Diese Aussagen geben eine gutetheoretische Begründung für den zunehmenden Einsatz der Objektorientierung auf v ielen Eb enen. Dennoch ist der tatsächliche praktische Gewinn nicht unumstritten. Insbesondere die Verwendung von Vererbung wirft auch zusätzliche Probleme auf (erhöhte Kopplung zwischen Klassen). Ausserdem verhindert fürviele Unternehmen der hohe Schulungsaufwand die Einführung objektorientierter Methoden und Programmierung. Wieder- verwendung Benutzung vorgefertigter Klassenbibliotheken, Anpassung durch Spezialisierung (mittels Vererbung) Baukastenprinzip

14 Objektorientierte Programmiersprachen
Simula (1967) Historisch erste objektorientierte Sprache Smalltalk ( ) radikale Objektorientierung und graphische Oberflächen C++ (1984) Objektorientierte Erweiterung von C Java (1995) Einfache C-ähnliche Sprache, plattformneutral Object Pascal / Delphi (1995) Objektorientierte Erweiterung von (Turbo-)Pascal, Windows-orientiert


Herunterladen ppt "Warum Objektorientierung?"

Ähnliche Präsentationen


Google-Anzeigen