Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Programmierung Was ist das eigentlich ?

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Programmierung Was ist das eigentlich ?"—  Präsentation transkript:

1 Objektorientierte Programmierung Was ist das eigentlich ?

2 © till.haenisch@gmx.de Überblick Hintergrund Systemtheorie Komponenten, Attribute, Aktivitäten OO-Konzepte Objekte Kapselung Vererbung Polymorphie in JAVA

3 © till.haenisch@gmx.de „klassische“ Modularisierung Strukturierte Programmierung Funktionen Module Header Dateien, Datenstrukturen, Funktionsprototypen Funktionsorientierte Sicht

4 © till.haenisch@gmx.de Top Down Definition eines Problems durch Hierarchisierung Hauptfunktion Zerlegung in Module Mit Datenstrukturen Zerlegung in Funktionen Trennung von Daten und Funktionen (auch konzeptionell bei Entwicklung)

5 © till.haenisch@gmx.de Probleme Versagt bei großen Problemen (etwa > 500.000 Zeilen) „Softwarekrise“ 70‘er Jahre Wiederverwendung schwierig, da: Untergeordnete Funktionen speziell für Verwendung durch andere definiert Querverbindungen durch Datenstrukturen

6 © till.haenisch@gmx.de Noch mehr Probleme Realität besteht nicht aus Datenstrukturen und Funktionen, sondern aus: Dingen (Auto, Auftrag, Artikel,...) Personen (Kunde,...) Konzepten (Vertrag, Buchung,...) Abbildung ?

7 © till.haenisch@gmx.de Abhilfe Zusammenfassung von Daten und Funktionen zu Objekten Objekte sind eigenständig, unabhängig Deshalb Übersichtlicher Wiederverwendbar Hintergrund: Systemtheorie

8 © till.haenisch@gmx.de System (theorie) Menge von Komponenten von der Umgebung abgegrenzt durch Beziehungen miteinander verbunden offenes/geschlossenes System Beispiel : menschl. Körper Komponenten = Organe verbunden durch Nerven, Gefäße,... abgegrenzt durch Haut Je nach Sichtweise abgeschlossen oder offen Beispiel: Unternehmen Komponenten = Produkte, Maschinen, Mitarbeiter,... Herstellungsbeziehungen, Materialflüsse

9 © till.haenisch@gmx.de Komponenten differenzierbare Objekte “reale” Systeme: Komponenten physisch abgegrenzt (Mensch) “formale” Systeme: Komponenten immateriell (Mathematik: Zahlen, Sätze, Definitionen,...) (Computerprogramm: Module, Prozeduren, Variablen) soziotechnische Systeme: Komponenten sind Menschen und Maschinen (Unternehmen) formale Systeme als Modell für reale Systeme (Sprache, Mathematik ?)

10 © till.haenisch@gmx.de Modell Formales System zur Beschreibung eines Ausschnitts/einer Auswahl an Eigenschaften eines realen Systems (Beispiel: (Festkörper-) Physik) Abbildung der Realität durch Abstraktion und Vereinfachung Datenmodell : Abbildung von Unternehmesstrukturen Nur ein Teil der Informationen wird erfaßt, z.B. bildet ein Datensatz einen Mitarbeiter ab Problem: Gemeinsames Modell (Was passiert, wenn der Softwareentwickler und der Kunde ein unterschiedliches Modell verwenden ?)

11 © till.haenisch@gmx.de Struktur Komponente kann wiederum als System betrachtet werden--> Reduktion der Komplexität Mensch GehirnHerzLunge l. Ventrikelr. Ventrikel Muskelfaser Zelle Zellmembran Kanal

12 © till.haenisch@gmx.de Beziehungen Austauschbeziehungen: Fluß von Material Energie Informationen Anordnungsbeziehungen über/unter, vor/nach, neben,... Wirkungsbeziehungen aktive Komponenten (Prozedur ändert Inhalt einer Variablen) passive Komponenen (Variable) vernetzte Systeme

13 © till.haenisch@gmx.de Systembeschreibung Attribute eine Eigenschaft beschreibendes Merkmal z.B. Komponente “Mitarbeiter” hat Attribut “Gehalt” stetig (Temperatur) oder diskret (Geschlecht) Veränderbarkeit (konstant, änderbar) Vorhersagbarkeit (deterministisch, stochastisch, zufällig) Aktivitäten: ändern den Zustand des Systems endogen/exogen zeitstetig/zeitdiskret Kopplung einfache Kopplung Rückkopplung lineare Systeme (u.a. keine Rückkopplungen)

14 © till.haenisch@gmx.de Was soll das alles ? Programmierung: Abbildung (eines Ausschnitts) der Realität Nur bestimmte Aspekte (Modellbildung) System besteht aus Komponenten (Objekten) mit Eigenschaften (Attributen) Aktivitäten (Methoden) Kopplungen (Assoziationen) Modellbildung Im Rahmen von Analyse und Entwurf hier nicht Thema Abbildung in Programmiersprache ?

15 © till.haenisch@gmx.de Objekte Attribute Methoden Werden in Klassen zusammengefaßt Kapselung (Sichtbarkeit von „außen“) Beziehungen (Assoziationen) Vererbung (Fahrzeug, PKW, Motorrad) Polymorphie

16 © till.haenisch@gmx.de OO Schlüsselkonzepte Kapselung Daten und Funktionen werden zusammengefaßt Daten und Algorithmen sind "von außen" nicht sichtbar Vererbung Eine Klasse kann von einer anderen "erben" Wiederverwendung/Spezialisierung Polymorphie Flexibilität in der Gestalt generische Programmierung

17 © till.haenisch@gmx.de Kapselung Von "außen" ist nur eine Schnittstelle sichtbar Interna (Algorithmus,...) können geändert werden public class StringList { private Vector Strings; public add(String aString) {...} public void first() {...} public String next() {...} public void delete() {...} public int size() {...} }

18 © till.haenisch@gmx.de Vererbung Klasse Fahrzeug Attribute Geschwindigkeit, Position,... Methoden Beschleunigen, bremsen,... Klasse LKW erbt von Fahrzeug Zusätzl. Attribute Zuladung,...

19 © till.haenisch@gmx.de Polymorphie Basisklasse Fahrzeug mit Methode fahren() abgeleitet LKW, PKW, Motorrad... Fahrzeug F; PKW P = new PKW(); F = P; F.fahren();... Vector V = new Vector(); V.add(new PKW()); V.add(new LKW());... for(int i=0;i<V.size();i++) ((Fahrzeug)V.elementAt(i)).fahren();


Herunterladen ppt "Objektorientierte Programmierung Was ist das eigentlich ?"

Ähnliche Präsentationen


Google-Anzeigen