1 / 14

Warum Objektorientierung?

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

galya
Télécharger la présentation

Warum Objektorientierung?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Meine Verantwortung: Produktkatalog Meine Verantwortung: Kontoführung 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

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

  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.

  6. Beispiel: Ampel-Objekt Objekt zur Repräsentation einer Ampel • 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!) Ampel DD-0X5A Zeittakt Lichtsignale

  7. Beispiel: Termin-Objekt Objekt zur Repräsentation eines Termins • 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 12. Abteilungsrunde gibDatum versendeEinladungen Ergebnis: Datum

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

  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 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ß. • Verschiedene Reaktionen: • 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 Wieder- verwendung Benutzung vorgefertigter Klassenbibliotheken, Anpassung durch Spezialisierung (mittels Vererbung) Baukastenprinzip

  14. Objektorientierte Programmiersprachen • Simula (1967) • Historisch erste objektorientierte Sprache • Smalltalk (1976-80) • 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

More Related