Objektorientierung Auffassung der Software als eine Sammlung diskreter
Objektorientierung Auffassung der Software als eine Sammlung diskreter Objekte, die sowohl eine Datenstruktur als auch Methoden zur Handhabung der Datenstrukturen in sich vereinigen. LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 1
Literatur Rumbaugh, James et al. : Objektrientiertes Modellieren und Entwerfen, Hanser Verlag 1993 Balzert, Heide: Objektorientierte Systemanalyse Spektrum Akademischer Verlag, 1996 Forbrig, P. : Objektorientierte Softwareentwicklung mit UML, Fachbuchverlag Leipzig 2001 LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 2
Ziele der objektorientierten Systementwicklung Unterstützung bei der Gewinnung eines tiefgehenden Verständnisses des zugrundeliegenden Problemraumes (Vorrang vor funktionaler Zergliederung) Unterstützung der Kommunikation zwischen den an der Systementwicklung beteiligten Personen Entwurf von flexiblen und stabilen Softwaresystemen LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 3
Objekt Ein Objekt ist einerseits eine Einkapselung von Eigenschaften (Attributen) und von Funktionalitäten (Methoden, Operationen, Services), die auf diese Eigenschaften anwendbar sind; andererseits ist ein Objekt eine Abstraktion des Problemfeldes und repräsentiert etwas im Problemfeld, das 1 - n - mal vorkommt. Ein Objekt ist eine Ansammlung von Informationen und eine Beschreibung ihrer Manipulationsmöglichkeiten Ein Objekt stellt einen abstrakten Datentyp dar LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 4
Kriterien der Objektbildung Die Entscheidung einer Objektbildung sollte von folgenden Kriterien abhängig sein: 1) Benötigt das System Informationen über das Objekt ? 2) Benötigt das System Operationen, Methoden, Services, etc. , d. h. funktionale Möglichkeiten, das Objekt zu manipulieren ? 3) Hat das Objekt mehr als eine Eigenschaft (Attribut), die für das zu analysierende System relevant ist ? Falls nur eine Eigenschaft Relevanz besitzt, ist zu überlegen, ob man das Objekt nicht als Eigenschaft eines anderen Objektes zu betrachten ist. 4) Gibt es Eigenschaften, die allen Ausprägungen eines Objektes gemeinsam sind ? LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 5
Nutzeffekte der objektorientierten Softwareentwicklung 1 Wiederverwendbarkeit Klassen können in verschiedenen Systemen wiederverwandt werden. Kapselung unterstützt die Wiederverwendbarkeit. Über Vererbungsstrukturen und Polymorphie können Attribute und Operationen mehrfach genutzt werden. Stabilität Durch die Wiederverwendbarkeit entstehen fehlerärmere und stabilere Softwaresysteme. Da Daten in ihrer Struktur weniger Änderungen unterworfen sind als Funktionalitäten, erhöht die Konzentration auf das Objektmodell die Stabilität der Systeme Entwickler denken in Terminologien, die der realen Welt entsprechen Durch die Betrachtung von Objekten, die in der realen Welt existieren, entspricht die konzipierte Software stärker den Anforderungen der Benutzer. LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 6
Nutzeffekte der objektorientierten Softwareentwicklung Reduktion der Komplexität Klassen kapseln Details und ermöglichen es, auch komplexe Sachverhalte leichter zu handhaben. Durch die Strukturierung von Klassen ist es möglich, komplexe Klassen aus einfacher aufgebauten Klassen zusammenzusetzen. Allerdings ergibt sich eine Erhöhung der 'externen' Komplexität durch die Vielzahl der Klassen! Fehlerreduktion Durch die Zusammensetzung eines Softwaresystems aus stabilen - einzeln testbaren Klassen - ist ein objektorientiertes System i. d. R. fehlerärmer als konventionell entwickelte Software. Zudem unterstützt die Wiederverwendbarkeit die Fehlerreduktion. , LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 7
Von der Realität zum Modell Realität Abstraktion Haus Modell Beispiele für weitere Objekte: Person, Auto, Baum, Heirat, Buchung, Projekt, Lampe, Kostenstelle, Einstellung, etc. LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 8
Die Bildung von Klassen und die Unterscheidung verschiedener Klassen Objekte mit gleicher Struktur (Attributen) lassen sich zu Klassen zusammenfassen Beispiel: Objekt: Kunde Attribute: - Name - Adresse - Kontonummer - BLZ etc. Die Menge aller Kunden eines Unternehmens bildet eine Klasse Auf die Elemente der Klasse (Objekte) anwendbare Operationen: - Kunde neu anlegen - Kunde anzeigen - Kunde ändern - Kunde löschen etc. LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 9
Instanz und Unterklasse Jedes konkrete Objekt einer Klasse wird als Instanz bezeichnet; Beispiel: Der Kunde Siegfried Müller ist eine Instanz der Klasse Kunde Klassen besitzen Mengencharakter. Klassen können von daher auch im Sinne von Teilmengen in sog. Unterklassen aufgeteilt werden. Beispiel: Klasse: Kunde Unterklassen: - Auslandskunden - Inlandskunden LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 10
Vererbung Hierarchisch untergeordnete Klassen erben alle Eigenschaften (Attribute) und alle Operationen der übergeordneten Klassen; Die untergeordneten Klassen können aber noch spezifische Attribute und Operationen besitzen! Beispiel für die Vererbung von Attributen: Klasse: Speichermedien Attribute: - Nummer - Kapazität - Hersteller Unterklassen (im Teilmengensinne): a) Bandspeicher Attribute: - Bandlänge - Beschichtung - Rückspulzeit b) Plattenspeicher Attribute: - Zylinderzahl - Spuranzahl - Zugriffszeit LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 11
Phasen der objektorientierten Softwareentwicklung Phase 1 Objektorientierte Analyse (OOA) Phase 2 Objektorientierter Entwurf (OOD) Phase 3 Objektorientierte Programmierung (OOP) LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 12
Modelle der objektorientierten Analyse Objektmodell (Daten) Objektmodell (Funktionen) Beschreibung der Objekte, der Attribute, der Beziehungen Beschreibung der Operationen Daten Funktionen Ereignisse Dynamisches Modell Beschreibung der Reaktionen des Systems auf Ereignisse (intern/extern) LV: SE 2001/2002 Zilahi Grundzüge der Objektorientierung 13
- Slides: 13