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

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
Prüfung objektorientierter Programme -1
Objektorientierung Auffassung der Software als eine Sammlung
Objektorientierte Programmierung
Frame-Logik Eine Einführung Andreas Glausch.
Objektorientierte Datenbanken
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Warum Objektorientierung?
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
Objektorientierter Entwurf
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
On a Buzzword: Hierachical Structure David Parnas.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
DOM (Document Object Model)
Sebastian Grahn Sebastian Kühn
Modellierung komplexer Realität mit Objekten
Grundlegende Analysen & Zwischendarstellungen
Prüfkriterien für objektorientierte Systeme
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
OO Analyse und Entwurf für Anwender
UML Begleitdokumentation des Projekts
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Objektorientierte Programmierung
Unified Modeling Language Repetition / Einführung zu UML
Einführung in die Programmierung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
UML-Kurzüberblick Peter Brusten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Vom Geschäftsprozess zum Quellcode
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Objektorientierung.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Software Engineering Grundlagen
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Unified Modeling Language UML
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vortrag - Diplomarbeiten (HS I)
Geoinformation I Lutz Plümer
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Sichtbarkeit einschränken
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Objektorientierte (OO) Programmierung
Objektorientierte Programmierung Was ist das eigentlich ?
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Implementieren von Klassen
 Präsentation transkript:

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

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.

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

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.

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

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

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.

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

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

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

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.

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.

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.

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

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

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.

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.

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.

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

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

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.

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.

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)

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

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

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.

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

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

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

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.

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

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.

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

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