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

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

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

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

BIT – Schaßan – WS 02/03

Basisinformationstechnologie

HK-Medien

Teil 1, 12. SitzungWS 02/03

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

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 AlgorithmenObjektorientiert Klassen und ObjekteLogikorientiert Ziele, oft als PrädikatenkalkülRegelorientiert If-Then-RegelnBedingungsorientiert Invarianten-Beziehung

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

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

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

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.

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

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."

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

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)

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

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.

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

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."

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

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.

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

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."

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

BIT – Schaßan – WS 02/03

Objektmodell

Hauptelemente des Objektmodells:AbstraktionKapselungModularitätHierarchie

Weniger wichtige Elemente:TypisierungNebenläufigkeitPersistenz

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

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.

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

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."

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

BIT – Schaßan – WS 02/03

Arten der Abstraktion

Entitäts-Abstraktion: nützliches Modell einer Entität eines Problem- oder LösungsbereichsAktions-Abstraktion: verallgemeinerte Menge von Operationen, die alle dieselbe Art von Funktionen realisierenVirtuelle-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 sindZufällige Abstraktion: Kombination einer Menge von Operationen, die in keinerlei Zusammenhang stehen

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

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."

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

BIT – Schaßan – WS 02/03

Charakteristika von Objekten

BeispielEin Client ist ein Objekt, das die Ressourcen eines anderen Objektes verwendet.

Verhalten des Objekts:Betrachtung der Dienste, die es für andere Objekte bereitstellen sollBetrachtung 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.

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

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.

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

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.

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

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."

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

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üssenBeziehungen

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

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.

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

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-Bereicheprivate-Bereicheprotected-Bereiche enthalten.

C++ unterstützt das Friends-Prinzip.

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

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.

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

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."

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

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."

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

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.

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

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.

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

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)

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

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

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

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 Oberklassenwiederholte Vererbung

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

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.

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

BIT – Schaßan – WS 02/03

Typisierung

Theorie der abstrakten DatentypenTyp ist eine "präzise Charakterisierung der Eigenschaften bezüglich Struktur und Verhalten, die einer bestimmte Menge von Entitäten gemeinsam sind."Typ und Klasse synonymzentrale Idee: Konformität

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

BIT – Schaßan – WS 02/03

Typisierung (2)

Arten der Typisierungstrengschwachuntypisiert

Zeitpunkt der Typisierungstatisches Bindendynamisches Binden

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

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äufigkeiteinfache Nebenläufigkeit

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

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.

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

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ückenlokale Variablen bei Prozeduraufrufeneigene oder globale Variablen, deren Ausdehnung über ihren Gültigkeitsbereich hinausgehtDaten, die zwischen den Ausführungen eines Programms existierenDaten, die zwischen verschiedenen Versionen eines Programms existierenDaten, die das Programm überdauern

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

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.

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

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.)

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

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