Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 12. Sitzung WS 02/03.

Ähnliche Präsentationen


Präsentation zum Thema: "BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 12. Sitzung WS 02/03."—  Präsentation transkript:

1 BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 12. Sitzung WS 02/03

2 BIT – Schaßan – WS 02/03 Fünf Stile der Programmierung Programmierstil ist "eine Art, Programme auf der Grundlage eines konzeptuellen Programmiermodells und einer passenden Programmiersprache aufzubauen, um den Programmen einen klaren Stil zu geben." Es gibt fünf hauptsächliche Programmierstile: Prozedurorientiert Algorithmen Objektorientiert Klassen und Objekte Logikorientiert Ziele, oft als Prädikatenkalkül Regelorientiert If-Then-Regeln Bedingungsorientiert Invarianten-Beziehung

3 BIT – Schaßan – WS 02/03 Objektorientierte Programmierung (OOP) Ging es in der Modularen Programmierung um die Zerlegung komplexer Aufgabenstellungen, so geht es bei der OO um einen abstrakteren Datenbegriff: Objekte = Daten + Methoden

4 BIT – Schaßan – WS 02/03 Definition: Objekt "eine greifbare Einheit, die ein wohldefiniertes Verhalten zeigt." "Einheit, die die Eigenschaft von Prozeduren und Daten kombiniert; sie führt Programmschritte durch und speichert einen lokalen Status." Ein Objekt hat invariante Eigenschaften, die es und sein Verhalten charakterisieren.

5 BIT – Schaßan – WS 02/03 Definition: OOP "OOP ist eine Implementierungsmethode, bei der Programme als kooperierende Ansammlung von Objekten angeordnet sind. Jedes dieser Objekte stellt eine Instanz einer Klasse dar, und alle Klassen sind Elemente einer Klassenhierarchie, die durch Vererbungsbeziehungen gekennzeichnet ist."

6 BIT – Schaßan – WS 02/03 Zur Definition von OOP Die Definition beinhaltet drei wichtige Bestandteile: 1.OOP verwendet Objekte, nicht Algorithmen, als fundamentale Bausteine; (= "part of"-Hierarchie, Aggregation) 2.Jedes Objekt ist eine Instanz einer Klasse; 3.Klassen stehen miteinander in einer Vererbungsbeziehung. (= "is a"-Hierarchie, Generalisierung)

7 BIT – Schaßan – WS 02/03 Wann ist eine PS oo? Eine Programmiersprache ist objektorientiert, wenn sie Objekte als Datenabstraktionen mit einer Schnittstelle für benannte Operationen und einem verborgenen lokalen Status unterstützt; Objekte einen bestimmten Typ (Klasse) haben; die Typen (Klassen) Attribute von Obertypen (Oberklassen) erben können. Sollte z.B. die Vererbung nicht unterstützt werden, spricht man von einer objektbasierten PS.

8 BIT – Schaßan – WS 02/03 Definition: OOD "OOD ist eine Designmethode, die den Prozess der objektorientierten Zerlegung beinhaltet sowie eine Notation für die Beschreibung der logischen und physikalischen wie auch statischen und dynamischen Modelle des betrachteten Systems."

9 BIT – Schaßan – WS 02/03 Zur Definition von OOD Die Definition beinhaltet zwei wichtige Bestandteile: 1.OOD führt zur objektorientierten Zerlegung; 2.OOD verwendet unterschiedliche Notationen, um neben den statischen und dynamischen Aspekten des Systems auch die verschiedenen Modelle der logischen (Klassen- und Objektstruktur) und physikalischen (Modul- und Prozessarchitektur) Designs eines Systems zu beschreiben.

10 BIT – Schaßan – WS 02/03 Definition: OOA "Die objektorientierte Analyse ist eine Analysemethode, die die Anforderungen aus der Perspektive der Klassen und Objekte, die sich im Vokabular des Problembereichs finden, betrachtet."

11 BIT – Schaßan – WS 02/03 Objektmodell Hauptelemente des Objektmodells: Abstraktion Kapselung Modularität Hierarchie Weniger wichtige Elemente: Typisierung Nebenläufigkeit Persistenz

12 BIT – Schaßan – WS 02/03 Abstraktion Abstraktion ist eine der fundamentalen menschlichen Methoden zur Bewältigung von Komplexität. Abstraktion entsteht aus dem Erkennen von Gemeinsamkeiten verschiedener Objekte, Situationen und Prozessen in der realen Welt, sowie der Entscheidung, sich auf diese Gemeinsamkeiten zu konzentrieren und Unterschiede momentan zu ignorieren.

13 BIT – Schaßan – WS 02/03 Abstraktion (2) Definition: "Eine Abstraktion gibt die verschiedenen Charakteristika eines Objektes an, die es von allen anderen Arten von Objekten unterscheiden, wobei klar definierte konzeptuelle Grenzen gesetzt werden, und zwar unter Bezugnahme auf die Perspektive des Betrachters."

14 BIT – Schaßan – WS 02/03 Arten der Abstraktion Entitäts-Abstraktion: nützliches Modell einer Entität eines Problem- oder Lösungsbereichs Aktions-Abstraktion: verallgemeinerte Menge von Operationen, die alle dieselbe Art von Funktionen realisieren Virtuelle-Maschine-Abstraktion: Gruppe von Operationen, die alle von einer höheren Steuerungsebene verwendet werden, oder Operationen, die wiederum Operationen verwenden, die auf einer niedrigeren Ebene angesiedelt sind Zufällige Abstraktion: Kombination einer Menge von Operationen, die in keinerlei Zusammenhang stehen

15 BIT – Schaßan – WS 02/03 Objekt-Klassen-Prinzip "Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte. Ein Objekt ist eine zur Ausführungszeit vorhandene und für ihre Instanzvariablen Speicher allokierende Instanz, die sich entsprechend dem Protokoll ihrer Klasse verhält."

16 BIT – Schaßan – WS 02/03 Charakteristika von Objekten Beispiel Ein Client ist ein Objekt, das die Ressourcen eines anderen Objektes verwendet. Verhalten des Objekts: Betrachtung der Dienste, die es für andere Objekte bereitstellen soll Betrachtung der Operationen, die es mit Hilfe anderer Objekte ausführen soll Die Menge an Operationen, die ein Client für ein Objekt ausführen kann, heißt Protokoll.

17 BIT – Schaßan – WS 02/03 Charakteristika von Objekten (2) Alle Abstraktionen haben sowohl statische als auch dynamische Eigenschaften. Beispiel Dateiobjekt: Es nimmt einen bestimmten Speicherplatz auf einem Speichergerät ein; es hat einen Namen; es hat einen Inhalt statisch Der Wert dieser Eigenschaften ist dynamisch: das Dateiobjekt kann größer oder kleiner werden; der Name kann sich ändern; der Inhalt kann sich ändern.

18 BIT – Schaßan – WS 02/03 Kapselung Während die Abstraktion sich auf das beobachtbare Verhalten eines Objektes konzentriert, ist die Kapselung für die Implementation zuständig. Kapselung wird erreicht durch das Verbergen von Informationen, d.i. der Prozess, alle Geheimnisse eines Objektes zu verbergen, die nicht zu seinen wesentlichen Charakteristika gehören.

19 BIT – Schaßan – WS 02/03 Kapselung (2) Definition: "Die Kapselung ist der Prozess der Aufgliederung der Elemente einer Abstraktion, die die Struktur und das Verhalten repräsentieren. Die Kapselung dient dazu, die Schnittstelle einer Abstraktion und ihre Implementierung voneinander zu trennen."

20 BIT – Schaßan – WS 02/03 Kapselung (3) Was beinhalten Struktur, Verhalten und Schnittstelle einer Klasse? Struktur Attribute (Bestandteile, enthaltene Informationen, etc.) Verhalten Operationen (Methoden) Zusicherungen Bedingungen, die die Objekte erfüllen müssen Beziehungen

21 BIT – Schaßan – WS 02/03 Kapselung (4) Jede Klasse muss zwei Bestandteile haben: eine Schnittstelle und eine Implementierung. Die Schnittstelle einer Klasse legt die äußere Ansicht fest, inklusive der Abstraktion des Verhaltens, das allen Instanzen der Klasse gemein ist. Die Implementierung einer Klasse umfasst die eigentliche Darstellung der Abstraktion sowie die Mechanismen, die das gewünschte Verhalten realisieren.

22 BIT – Schaßan – WS 02/03 Kapselung (5) Um Elementobjekte oder –funktionen zu verstecken, gibt es in C++ Kontrollmecha- nismen für ihre Sichtbarkeit: jede Klasse kann public-Bereiche private-Bereiche protected-Bereiche enthalten. C++ unterstützt das Friends-Prinzip.

23 BIT – Schaßan – WS 02/03 Modularität Aufteilung, Modularisierung eines Programms nicht nur zur Reduzierung der Komplexität, sondern vor allem, um dadurch mehrere wohldefinierte, dokumentierte Abgrenzungen innerhalb des Programms zu erhalten. Klassen und Objekte bilden die logische Struktur, Module die physikalische Architektur eines Systems.

24 BIT – Schaßan – WS 02/03 Modularität (2) Definition: "Modularität ist die Eigenschaft eines Systems, das in eine Menge von in sich geschlossenen und lose gekoppelten Modulen zerlegt wurde."

25 BIT – Schaßan – WS 02/03 Modularisierung "Modularisierung ist das Teilen eines Programms in Module, die separat kompiliert werden können, die jedoch mit anderen Modulen in Verbindung stehen können." "Die Verbindungen zwischen den Modulen sind die Annahmen, die die Module gegenseitig übereinander anstellen."

26 BIT – Schaßan – WS 02/03 Modularisierung (2) Hauptproblem der Modularisierung: Entscheidung über die richtige Anzahl von Modulen Alle logisch miteinander in Beziehung stehenden Klassen und Objekte sollten im gleichen Modul untergebracht werden. Anderen Modulen sollten nur diejenigen Elemente preisgegeben werden, die für diese von absoluter Notwendigkeit sind.

27 BIT – Schaßan – WS 02/03 Modularisierung (3) Zwei technische Aspekte spielen bei Entscheidungen um die Modularisierung eine Rolle: Module dienen normalerweise als elementare und unteilbare Softwareeinheiten, die in mehreren Applikationen wieder verwendet werden können. Es gibt physikalische Grenzen für die Größe einzelner Module, in Hinblick auf das Paging- Verhalten.

28 BIT – Schaßan – WS 02/03 Hierarchie Definition: "Hierarchie ist eine Rangfolge oder Anordnung von Abstraktionen." Die wichtigsten Hierarchien in einem komplexen System sind seine Klassenstruktur(= "is a"-Hierarchie) Objektstruktur(= "part of"-Hierarchie)

29 BIT – Schaßan – WS 02/03 Einfachvererbung Vererbung ist die wichtigste "is a"-Hierarchie und als solche wesentlicher Bestandteil von OO- Systemen. Vererbung definiert eine Beziehung zwischen Klassen, wobei eine Klasse die Struktur oder das Verhalten, das in einer oder mehreren anderen Klassen (für einfache bzw. mehrfache Vererbung) definiert ist, übernimmt. Verallgemeinerung/Spezialisierung-Hierarchie

30 BIT – Schaßan – WS 02/03 Mehrfachvererbung Klassen können Struktur und Verhalten von mehreren Oberklassen gleichzeitig erben. Bei der Mehrfachvererbung sind zwei Konflikte möglich: Konflikte zwischen Namen aus verschiedenen Oberklassen wiederholte Vererbung

31 BIT – Schaßan – WS 02/03 Verbund Der Verbund erlaubt die physikalische Gruppierung logisch verbundener Strukturen. Ein Verbund beschreibt "part of"- Hierarchien. Verbunde werfen als Problem das Thema "Eigentum" auf, denn die verbundenen Objekte sind nicht unmittelbar abhängig voneinander.

32 BIT – Schaßan – WS 02/03 Typisierung Theorie der abstrakten Datentypen Typ ist eine "präzise Charakterisierung der Eigenschaften bezüglich Struktur und Verhalten, die einer bestimmte Menge von Entitäten gemeinsam sind." Typ und Klasse synonym zentrale Idee: Konformität

33 BIT – Schaßan – WS 02/03 Typisierung (2) Arten der Typisierung streng schwach untypisiert Zeitpunkt der Typisierung statisches Binden dynamisches Binden

34 BIT – Schaßan – WS 02/03 Nebenläufigkeit Die gleichzeitige Verarbeitung verschiedener Ereignisse, die Verwendung mehrerer Prozessoren, Prozessoren, die Multitasking erlauben, konstituieren das Prinzip der Nebenläufigkeit: die gleichzeitige Ausführung mehrerer Steuerprozesse. Zu unterscheiden sind: komplexe Nebenläufigkeit einfache Nebenläufigkeit

35 BIT – Schaßan – WS 02/03 Nebenläufigkeit (2) Definition: "Nebenläufigkeit ist das Attribut, das ein aktives Objekt von einem nicht-aktiven Objekt unterscheidet." Jedes Objekt kann einen separaten Steuerprozess darstellen. Ein Objekt, welches einen separaten Steuerprozess darstellt, wird aktiv genannt.

36 BIT – Schaßan – WS 02/03 Persistenz Objekte benötigen Speicherplatz und existieren eine gewisse Zeit lang. Sechs "Arten" der Objektpersistenz: temporäre Ergebnisse bei der Auswertung von Ausdrücken lokale Variablen bei Prozeduraufrufen eigene oder globale Variablen, deren Ausdehnung über ihren Gültigkeitsbereich hinausgeht Daten, die zwischen den Ausführungen eines Programms existieren Daten, die zwischen verschiedenen Versionen eines Programms existieren Daten, die das Programm überdauern

37 BIT – Schaßan – WS 02/03 Persistenz (2) Persistenz ist nicht nur eine Frage der Lebensdauer der Daten, in OO Datenbanken müssen sowohl der Status eines Objekts als auch seine Klasse gespeichert sein, um den gespeicherten Status jederzeit in gleicher Weise interpretieren zu können.

38 BIT – Schaßan – WS 02/03 Persistenz (3) Definition: "Persistenz ist die Eigenschaft eines Objektes, durch die seine Existenz eine bestimmte Zeit überdauern kann (d.h. das Objekt existiert weiter, nachdem sein Erzeuger schon nicht mehr existiert) und/oder auch einen bestimmten Speicherplatz (d.h. die Position des Objektes ändert sich, so dass es sich nicht mehr an der Speicherstelle befindet, an der es erzeugt wurde.)

39 BIT – Schaßan – WS 02/03 Literatur zur OOP Booch, Grady: Objektorientierte Analyse und Design. Bonn u.a.: Addison-Wesley, 1994. Oestereich, Bernd: Objektorientierte Softwareentwicklung. Analyse und Design mit der Unified Modeling Language. 5., völlig überarbeitete Auflage. München, Wien: Oldenbourg, 2001. (Bes. Kap. 2) http://www.oose.de/uml http://www.oose.de/uml


Herunterladen ppt "BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 12. Sitzung WS 02/03."

Ähnliche Präsentationen


Google-Anzeigen