S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als...

32
s CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität des Themas Objektorientierung sind die praktischen Erfahrungen, die bei der Entwicklung der OO-Programmiersprachen (z.B. Smalltalk, C++, Eiffel, etc.) sowie dem Einsatz objektorientierter Applikationen (z.B. Desktop-Oberflächen, Simulationssysteme, etc.) gesammelt wurden und bereits zu Beginn der 80er Jahre zur Etablierung des Begriffs objektorientierte Programmierung (OOP) führten.

Transcript of S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als...

Page 1: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:1ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz

Ausgangspunkt für die Aktualität des Themas Objektorientierung

sind die praktischen Erfahrungen, die bei

der Entwicklung der OO-Programmiersprachen (z.B. Smalltalk, C++,

Eiffel, etc.) sowie

dem Einsatz objektorientierter Applikationen (z.B. Desktop-

Oberflächen, Simulationssysteme, etc.)

gesammelt wurden und bereits zu Beginn der 80er Jahre zur

Etablierung des Begriffs objektorientierte Programmierung (OOP)

führten.

Page 2: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:2ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz

Begonnen hat die Geschichte in den 70ern In der Programmiersprache SIMULA wurde das Klassenkonzept

eingesetzt Der Begriff Objektorientierung wurde jedoch von Smalltalk geprägt,

indem das Klassenkonzept von SIMULA übernommen wurde Smalltalk-76 sah Vererbungseigenschaften vor Ab ca. 1985 begann die Einbindung der objektorientierten Konzepte in

die prozeduralen Programmiersprachen, wodurch sogenannten hybride Sprachen entstanden, wie z.B. C++, Objective-C, Object Pascal, objektorientiertes COBOL.

Als reine objektorientierte Sprache entstand z.B. Eiffel. Ab ca. 1988 wurde die Notwendigkeit erkannt, ein methodisches

Vorgehen für die objektorientierte Analyse und das objektorientierte Design zu entwickeln.

Page 3: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:3ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz

Das Bestreben, die Paradigmen der objektorientierten Programmierung (OOP) auf die frühen Phasen des Software-Lebenszyklus zu übertragen, war methodisch fruchtbar.

Eine beachtliche Anzahl von Methoden zur objektorientierten Analyse (OOA) und zum objektorientierten Design (OOD) entstanden und entstehen immer noch, entweder

als neue Technik mit eigenem Regelwerk, im Gegensatz zu konventionellen Techniken (revolutionärer Ansatz); (vgl. /Booch/, /Embley u.a./), oder

als alte Technik modifiziert für die Objektorientierung (traditioneller Ansatz); (vgl. /Shlaer,Mellor/, /Rumbaugh u.a./) oder

als Synthese des revolutionären und traditionellen Ansatzes (evolutionärer Ansatz); (vgl. /Coad,Yourdon/, /Martin,Odell/, /Wassermann u.a./).

Page 4: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:4ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Der grundsätzliche Unterschied

In traditionellen Softwaresystemen arbeitet eine Reihe von Progammen oder Unterprogrammen auf einer Sammlung von mehr oder weniger in Beziehung stehender Daten. Dabei sind die Daten und die prozedurale Logik separate Komponenten.

Page 5: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:5ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Der grundsätzliche Unterschied

Das Konzept der Datenkapselung (encapsulation) sieht eine untrennbare Zusammenfassung von Daten und Funktionen, die ausschließlich zur Manipulation dieser Daten dienen, zu einer Einheit vor.

Page 6: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:6ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Der grundsätzliche Unterschied

Die Daten der Datenkapsel sind damit nur exklusiv von den

dazugehörigen Funktionen, und von niemand anderem sonst,

manipulierbar.

Die Funktionen werden von der Datenkapsel dem Umfeld

angeboten, um die Daten in der Datenkapsel lesen bzw.

manipulieren zu können.

Die künstliche Trennung von Daten und Funktionen der

klassischen Anwendungssysteme wird somit aufgehoben.

Page 7: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:7ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Die Stärken der OO-Methode

bessere Beherrschung der Komplexität von Systemen Abbildung der Objekte der realen Welt und deren Kommunikation

und (Re-)Aktionen entspricht damit menschlichen Denkweise einheitliche Darstellung des Systems in allen Entwicklungsphasen Förderung der Wiederverwendbarkeit von Teilen des Systems Modellierung von Gemeinsamkeiten und die Vererbung sorgen

einerseits für eine Codereduktion, andererseits für die Bildung abstrakterer, mehrfach verwendbarer Klassen

Zuverlässigkeit und Änderungsfreundlichkeit Langfristig sorgt die Wiederverwendung von vorhandenen und

bereits getesteten Systemteilen für eine größere Zuverlässigkeit des Systems

Page 8: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:8ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt

Heute besteht weitgehend Einigkeit darüber, welche Elemente für die Objektorientierung erforderlich sind:

Objekt

Nachricht

Klasse

Assoziation

Aggregation

Vererbung

Polymorphismus

Page 9: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:9ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Page 10: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:10ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Die Einheit von Funktionen und Daten wird als Objekt (Instanz / object) bezeichnet.

Objekte sind damit Ansammlungen von Daten bzw. Attributen (in einer Einheit), die auf Anstoß (Botschaften) von anderen Objekten mit der Ausführung von Funktionen bzw. Methoden reagieren.

Attribute und Methoden können öffentlich oder privat sein. Öffentliche Attribute widersprechen dem Prinzip der Datenkapselung; sie sind zu vermeiden und zum Glück in einigen Programmiersprachen (z.B. Smalltalk) verboten.

Die öffentlichen Methoden ermöglichen die Kommunikation mit dem Objekt und legen sein Verhalten fest.

Die privaten Methoden tragen ebenfalls zum Verhalten des Objekts bei, die privaten Attribute beschreiben den inneren Zustand des Objekts.

Page 11: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:11ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Objekte haben Attribute

Alle Daten, die den aktuellen Zustand eines Objektes repräsentieren

und Bestandteil der Datenkapsel sind, werden als Attribute (attributes /

Instanzvariablen / instance variables) bezeichnet.

Attribute können elementare Elemente (z.B. NetzspannungInVolt :

INTEGER) oder auch wiederum Objekte (z.B. SpannungsWandler :

Transformator) sein. Jedem Attribut ist ein entsprechender (Daten-)

Typ zugeordnet.

Objekte können somit atomare Objekte (wenn sie nur elementare

Attribute haben) oder zusammengesetzte Objekte sein (wenn sie

mindestens ein Attribut haben, welches nicht elementar ist).

Page 12: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:12ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Objekte haben Methoden

Die Funktionen zur Realisierung der Manipulationen der Attribute und /

oder sonstiger Aktionsfolgen, die beim Empfang einer Botschaft im

Objekt aktiviert werden, werden als Methoden (methods / Operatoren /

operators / Dienste / services) bezeichnet.

Sie erlauben den Zustand eines Objektes abzufragen, zu verändern

und allgemein mit ihm zu kommunizieren.

Page 13: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:13ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Objekte haben einen Zustand

Objekte haben, über einen beliebigen Zeitraum betrachtet,

unterschiedliche Zustände. Zu jedem Zeitpunkt weiß jedes Objekt, in

welchem Zustand es sich gerade befindet. Der Zustand eines Objektes

muß also in irgendeiner Weise im Objekt gehalten werden (Zustands-

Attribute)

z.B. die Zustände eines Fahrscheinautomaten:

Z1 : bereit, wartet auf 1. Geldstück,

Z2 : wartet auf ein weiteres Geldstück.

Page 14: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:14ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Objekte empfangen Botschaften von anderen Objekten Objekte leben nicht in der Isolation, d.h. sie haben ein Umfeld, von dem

sie u.U. angesprochen werden Objekte müssen (sollten) sinnvoller Weise in der Lage sein, Anstöße

aus dem Umfeld aufzunehmen, z.B. Eingabemöglichkeiten bei einem Fahrscheinautomaten

Objekte sind (re-)aktionsfähig Wenn ein Objekt eine Botschaft empfängt, dann wird es abhängig von

seiner ihm eigenen Verhaltensweise, also abgestimmt mit seinem jeweiligen Zustand, auf diese Botschaft reagieren

Objekte senden Botschaften an andere Objekte Objekte, die ihren Zustand verändern bzw. auf empfangene

Botschaften reagieren, senden ggf. wiederum Botschaften an andere Objekte

Page 15: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:15ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Objekt

Objekte sind konkrete Ausprägungen einer Art z.B. ist ein Fahrscheinautomat nur einer von vielen der gleichen

Bauart, des gleichen Modells, des gleichen Typs. Dieser Fahrscheinautomat unterscheidet sich von seinen Brüdern durch seine eigene Identität, z.B. der Serien-Nr., seinen Standort und seinen aktuellen Zustand

Bei Vernachlässigung dieser drei Aspekte ist er gleich, d.h. sogar identisch mit seinen Brüdern

Objekte sind abstrakt beschreibbar Alle verbrüderten Fahrscheinautomaten haben die gleichen

Eigenschaften und sind zu den selben (Re-) Aktionen fähig. Diese Eigenschaften und (Re-) Aktionen können losgelöst von einem konkreten Fahrscheinautomaten abstrakt, d.h. im Sinne einer Typdefinition für alle Objekte dieser Art, beschrieben werden

Page 16: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:16ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt:Objekt

Objekte haben eine Identität als Bestandteil des Objektes (z.B. die Seriennummer 100998), durch

einen direkten Verweis auf das Objekt (z.B. der einzige Fahrscheinautomat) oder durch einen Selektivpfad für das Objekt (z.B. Berlin/Hauptbahnhof/Fahrscheinautomat/3)

Objekte haben eine Lebensdauer Objekte, die nur zeitlich begrenzt existieren, also nicht die Laufzeit eines

Anwendungsprozesses überleben, werden als temporäre, oder auch transiente, Objekte bezeichnet.

Objekte, die die Laufzeit eines Anwendungsprozesses überleben, und somit in einem beliebig zeitlich nachfolgendem Prozeß des Anwendungssystems noch vorhanden sind, werden als persistente Objekte bezeichnet.

In der Regel werden diese Objekte dann in Datenbanken oder in Dateien abgelegt und gespeichert.

Page 17: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:17ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Nachrichten

Als Nachricht (message / Botschaft) wird der Anstoß zur Ausführung einer öffentlichen Methode bei Interaktion zweier Objekte bezeichnet.

Eine Nachricht enthält einen Namen, die ihr Ziel identifiziert und, wenn erforderlich, Parameter. Sie ist vergleichbar mit einem konventionellen Funktionsaufruf.

Page 18: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:18ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Klassen

Die abstrakte, d.h. objektunabhängige Beschreibung der Eigenschaften, Strukturen und Verhaltensweisen gleichartiger Objekte erfolgt in Klassen (classes / Objekttypen / object types).

Die Klasse ist eine Schablone für Objekte. Ein Objekt wird durch Instanzbildung einer Klasse erzeugt.

Page 19: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:19ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Klassen

Klassen werden definiert durch Methoden und Attribute

Attribute sind ihrerseits nur durchMethodenaufrufe manipulierbar

und die Methoden binden letztendlich die Algorithmen an die

Attribute

Auf diese Art und Weise wird die Unkenntnis des Benutzers von

der Implementierung der Methoden, der Struktur dieser Attribute

und der Speicherrepräsentation der Attribute erreicht

(informationhiding, Objekte als black-box)

Page 20: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:20ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Assoziation

Assoziation ist eine bidirektionale Beziehung zwischen Objekten. Die Darstellung erfolgt analog zur Entity Relationship Modellierung Die Kardinalität definiert die Anzahl der Beziehungen Objekte können nur dann miteinander kommunizieren, wenn eine

Assoziation zwischen ihnen definiert ist.

Page 21: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:21ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Aggregation

Die Aggregation ist eine stärkere Form der Assoziation Es ist eine Ganzes-Teil-Beziehung (part of) Die Kardinalität gibt die jeweilige Anzahl der Teile an

Page 22: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:22ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Vererbung (inheritance)

Schon die Bezeichnungen Fahrschein-Automat und Blumen-Automat erinnern daran, daß diese Klassen gemeinsame Eigenschaften haben, die vergleichbar und teilweise sogar identisch sind, wie z.B.

Das Attribut Zustand kann die Werte (eingeschaltet, bereit, wartet auf 1. Geldstück), (wartet auf weiteres Geldstück) und (ausgeschaltet) annehmen.

Die Methode anschalten ändert den Zustand (ausgeschaltet) nach (eingeschaltet, bereit, wartet auf 1. Geldstück).

Es liegt deswegen nahe, die Definition eines Objekttypen als Generalisierung, d.h. Verallgemeinerung, eines / mehrer Objekttypen, z.B. FahrscheinAutomat, BlumenAutomat --> Automat, beziehungsweise die Definition eines / mehrer Objekttypen als Spezialisierung eines Objekttypen, z.B. Automat --> FahrscheinAutomat, BlumenAutomat, abzuleiten.

Page 23: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:23ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Vererbung (inheritance)

Generalisierung (generalization) = Abstraktion (abstraction) Spezialisierung (specialization) = Konkretisierung Generalisierung / Spezialisierung führt zu einer hierarchischen

Anordnung der Klassen, zur Klassen- oder Vererbungshierarchie

Page 24: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:24ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Vererbung (inheritance)

Die in der Hierarchie höher stehende Klasse ist der Supertyp (supertype) bzw. die Oberklasse (superclass),

die tiefer stehende Klasse ist der Subtyp (subtype) bzw. die Unterklasse (subclass).

In der Klassenhierarchie werden die Methoden und die Instanzvariablen der (Super-) Typen (also z.B. Automat) an die Subtypen (z.B. FahrscheinAutomat, BlumenAutomat) vererbt, d.h. sie stehen dort zur Verfügung.

In den Subtypen kann bei Bedarf eine beliebige Erweiterung der Anzahl von Methoden und / oder Attributen erfolgen. Bei Bedarf können auch die Methodeninhalte ersetzt oder modifiziert werden (Methoden-Redefinition).

Page 25: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:25ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Vererbung (inheritance)

Wenn eine Klasse die Eigenschaften einer Klasse erbt, dann liegt einfache Vererbung (single inheritance) vor.

Erbt eine Klasse von mehreren Klassen, dann liegt Mehrfachvererbung (multiple inheritance) oder wiederholte Vererbung vor.

Page 26: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:26ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: abstrakte/konkrete Klassen

Klassen, für die es keine realen Ausprägungen (sprich Objekte)

gibt, werden als abstrakte Klassen (abstract class) bezeichnet.

„Fahrzeuge" ist eine solche abstrakte Klasse; in der realen Welt

wird es immer ein Objekt der Klasse Flugzeug, Straßenbahn,

Segelboot o.ä. sein.

Konkrete Klassen (concrete class) haben im Gegensatz zu

abstrakten Klassen reale Ausprägungen, d.h. Objekte. Da gibt es

z.B. in Berlin einen PkW mit der Nummer B-AD 2051.

Page 27: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:27ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: virtuelle Methoden

Abstrakte Klassen erlauben, Methoden zu deklarieren, aber deren Implementierung noch offen zu lassen, sogenannte virtuelle Methoden ( virtual method).

Damit ist die Möglichkeit gegeben, Platzhalter (als Erinnerung) für Methoden-implementierungen bereits auf einer hohen Ebene der Vererbungshierarchie einzuführen, obwohl die eigentliche Implementierung erst auf den tieferen Ebenen der Vererbungshierarchie erfolgt.

Z.B. kann eine Klasse Fahrzeuge bereits die Methoden anhalten und abfahren anbieten, aber die vollständige Implementierung erst bei den konkreten Klassen wie z.B. PkW erfolgen.

Bei einer nicht-strengen Vererbung können die geerbten Methoden in den Subtypen überschrieben werden; bei strenger Vererbung dagegen nicht. D.h. dort sind keine Methoden-Redefinitionen erlaubt.

Page 28: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:28ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Overloading, Polymorphismus und Binden

Das Overloading, auch funktionaler Polymorphismus genannt, erlaubt, daß Methoden, die gleiche Aufgaben an verschiedenen Typen von Objekten ausführen, den gleichen Methodennamen haben können.

Polymorphismus (polymorphism) ist die Fähigkeit einer Objektvariablen zur Laufzeit Objekte des statischen Typs der Variablen (static type) oder Objekte von Subtypen des statischen Typs der Variablen (dynamic type) beinhalten zu können.

Page 29: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:29ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Polymorphismus und Binden

N J

Polymorphismus typ Konto VarKonto;

VarKonto=SparbuchVarKonto.Buchen

Methode der Klasse Kontowird aufgerufen

dynamisches Binden

typ Sparbuch VarSparbuch;typ Aktiendepot VarAktien;

VarAktien=Aktiendepot

VarSparbuch=Sparbuch .switch Kontotyp{

case AKTIE VarAktie.Buchen

case SPARBUCH VarSparbuch.Buchen}

typ Konto VarKonto;

VarKonto=SparbuchVarKonto.Buchen

Methode der KlasseSparbuch wird aufgerufen

Page 30: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:30ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Terminologie und Notation

Page 31: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:31ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Terminologie und Notation

Page 32: S CA IN Methoden …\oo.ppt Folie:1 ICN CA IN TQM 13.08.1999 Objektorientierte SW-Entwicklung OO als neuer methodischer Ansatz Ausgangspunkt für die Aktualität.

s

CA IN Methoden …\oo.ppt Folie:32ICN CA IN TQM

13.08.1999

Objektorientierte SW-Entwicklung Konzept und Begriffe der OO-Welt: Sichten auf das Modell

Zur vollständigen Darstellung eines Systems reicht die Beschreibung der Objekte und ihrer Beziehungen nicht aus

Weitere Darstellungen, teilweise aus der Welt der strukturierten Analyse, zur Modellierung verwendet

Folgende Aspekte werden dargestellt statisch dynamisch funktional

Klassen- bzw. Objektdiagramme Ereignisdiagramme (event trace diagram und event flow diagram) Zustandsübergangsdiagramme (state transition diagram) Datenflußdiagramme (data flow diagram) Nicht alle Betrachtungsweisen müssen vorliegen Das System muß für einen Außenstehenden verständlich sein