Warum Objektorientierung?

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
Konzepte objektorientierter Systeme
Frame-Logik Eine Einführung Andreas Glausch.
Objektorientierte Datenbanken
Unter- und Oberklassen: Beispiel
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Universität Paderborn
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Einsatz von XML zur Kontextspeicherung in einem agentenbasierten ubiquitären System Faruk Bagci, Jan Petzold, Wolfgang Trumler und Theo Ungerer Lehrstuhl.
Informatik II (für Fakultät Maschinenwesen)
Delphi-Datenbankkomponenten
Sebastian Grahn Sebastian Kühn
Modularisierungstechniken
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Zhaohan Chen SS061 SIMULA-an Algol Based Simulation Language geschrieben von: Zhaohan Chen Betreuer: Prof. Dr. Rainer Manthey.
Objektorientierte Programmierung am Beispiel von Java
RDF-Schema Seminar: „Semantic Web“ André Rosin,
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
OO Analyse und Entwurf für Anwender
Wizards & Builders GmbH Einführung in die objektorientierte Programmierung Norbert Abb.
Objektorientierte Softwareentwicklung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
grundlagen der Wirtschafts- informatik
Einführung in die Programmierung
Objektorientierte Programmierung
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
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.
Konzepte der objektorientierten Programmierung
Eine Präsentation von Peter Rasser
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Konzept einer Programmiersprache!
Vom Geschäftsprozess zum Quellcode
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
EPROG Tutorium #4 Philipp Effenberger
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Objektorientierung.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vortrag - Diplomarbeiten (HS I)
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Modellierung der Wirklichkeit
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.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Datenaustausch und Interoperabilität
Sichtbarkeit einschränken
Programmieren mit Delphi Informatik. Inhalt Projekt Reaktion Objekte im Programm Reaktion Klassen Klassen im Programm Reaktion Objekte verfügen über Methoden,
UML-Klassendiagramm: Klassen
Objektorientierte (OO) Programmierung
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Objektorientierte Programmierung Was ist das eigentlich ?
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
1 Eine Einführung in die objektorientierte Programmierung.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Objektorientierte Programmierung
Programmierung und Vererbung in Java
OO-Programmierung & Vererbung
 Präsentation transkript:

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

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

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 Meine Verantwortung: Produktkatalog Meine Verantwortung: Kontoführung Objekte können als "Sachbearbeiter" für bestimmte Teilaufgaben eines Softwaresystems gesehen werden.

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

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. SCHÖNE ILLUSTRATION: BOOCH 91, S. 77

Beispiel: Ampel-Objekt Objekt zur Repräsentation einer Ampel Ampel DD-0X5A Zeittakt Lichtsignale 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!) In der Vorlesung wird diese Folie auf einem zweiten Projektor parallel zur vorletzten gezeigt.

Beispiel: Termin-Objekt Objekt zur Repräsentation eines Termins 12. Abteilungsrunde gibDatum versendeEinladungen Ergebnis: Datum 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 In der Vorlesung wird diese Folie auf einem zweiten Projektor parallel zur vorhergehenden gezeigt.

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

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

Beispiel: Ampel-Klasse und Ampel-Objekte DD-0X5A: SensorAmpel DD-0Y3C: ZeitAmpel DD-0X5B: SensorAmpel Ampel In der Vorlesung wird diese Darstellung durch ein Venn-Diagramm illustriert. SensorAmpel ZeitAmpel Instanz einer Klasse Generalisierung (Vererbung)

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)

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ß. Unterklassen spezialisieren das Verhalten ihrer Oberklassen. DD-0Y3C: ZeitAmpel DD-0X5A: SensorAmpel AR-13: Teambesprechung Figaro: Theaterbesuch

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 Diese Aussagen geben eine gutetheoretische Begründung für den zunehmenden Einsatz der Objektorientierung auf v ielen Eb enen. Dennoch ist der tatsächliche praktische Gewinn nicht unumstritten. Insbesondere die Verwendung von Vererbung wirft auch zusätzliche Probleme auf (erhöhte Kopplung zwischen Klassen). Ausserdem verhindert fürviele Unternehmen der hohe Schulungsaufwand die Einführung objektorientierter Methoden und Programmierung. Wieder- verwendung Benutzung vorgefertigter Klassenbibliotheken, Anpassung durch Spezialisierung (mittels Vererbung) Baukastenprinzip

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