1 / 39

Basisinformationstechnologie HK-Medien

Basisinformationstechnologie HK-Medien. Teil 1, 12. Sitzung WS 02/03. Fünf Stile der Programmierung.

mari
Download Presentation

Basisinformationstechnologie HK-Medien

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. BasisinformationstechnologieHK-Medien Teil 1, 12. Sitzung WS 02/03 BIT – Schaßan – WS 02/03

  2. 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 BIT – Schaßan – WS 02/03

  3. 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 BIT – Schaßan – WS 02/03

  4. 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. BIT – Schaßan – WS 02/03

  5. 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." BIT – Schaßan – WS 02/03

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

  7. 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. BIT – Schaßan – WS 02/03

  8. 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." BIT – Schaßan – WS 02/03

  9. Zur Definition von OOD • Die Definition beinhaltet zwei wichtige Bestandteile: • OOD führt zur objektorientierten Zerlegung; • 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. BIT – Schaßan – WS 02/03

  10. 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." BIT – Schaßan – WS 02/03

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

  12. 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. BIT – Schaßan – WS 02/03

  13. 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." BIT – Schaßan – WS 02/03

  14. 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 BIT – Schaßan – WS 02/03

  15. 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." BIT – Schaßan – WS 02/03

  16. 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 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. BIT – Schaßan – WS 02/03

  17. 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. BIT – Schaßan – WS 02/03

  18. 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. BIT – Schaßan – WS 02/03

  19. 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." BIT – Schaßan – WS 02/03

  20. 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 BIT – Schaßan – WS 02/03

  21. 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. BIT – Schaßan – WS 02/03

  22. 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. BIT – Schaßan – WS 02/03

  23. 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. BIT – Schaßan – WS 02/03

  24. 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." BIT – Schaßan – WS 02/03

  25. 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." BIT – Schaßan – WS 02/03

  26. 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. BIT – Schaßan – WS 02/03

  27. 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. BIT – Schaßan – WS 02/03

  28. 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) BIT – Schaßan – WS 02/03

  29. 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 BIT – Schaßan – WS 02/03

  30. 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 BIT – Schaßan – WS 02/03

  31. 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. BIT – Schaßan – WS 02/03

  32. 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 BIT – Schaßan – WS 02/03

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

  34. 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 BIT – Schaßan – WS 02/03

  35. 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. BIT – Schaßan – WS 02/03

  36. 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 BIT – Schaßan – WS 02/03

  37. 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. BIT – Schaßan – WS 02/03

  38. 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.) BIT – Schaßan – WS 02/03

  39. 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 BIT – Schaßan – WS 02/03

More Related