Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar."—  Präsentation transkript:

1 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar (Instanz) eines Gegenstandes oder Begriffs der Modellwelt; ein Objekt ist möglichst stark an Gegenstand oder Begriff der realen Welt angelehnt. Ein Objekt hat –eine Identität, z.B. vom Benutzer vergebene Namen. –einen Zustand, definiert durch private Daten (Werte für Attribute), –ein Verhalten, spezifiziert durch eine Menge von Operationen (Methoden), die auf den privaten Daten agieren und Operationen anderer Objekte aufrufen können; –Beziehungen (Relationen) zu anderen Objekten.

2 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 2 Objektmodellierung Unterscheidung in –passives Objekt vergleichbar mit einem Datenobjekt; Ausführung einer Methode geschieht nur auf Anforderung eines anderen Objekts; hat kein eigenständiges Leben, d.h. dem Objekt ist kein Prozess zugeordnet. –aktives Objekt Objekt hat zusätzlich einen Prozess zugeordnet, der die Ausführung der Methoden übernimmt; Objekt beinhaltet einen eigenen Steuerfluss (thread). Dieser Prozeß muß stattfinden, während das aktive Objekt existiert.

3 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 3 Objektmodellierung Klasse –Objekte mit gleichem Verhalten werden zu Klassen zusammengefasst. Ein Objekt "weiß", zu welcher Klasse es gehört. –Klassenattribute und –operationen beziehen sich nicht auf ein einzelnes Objekt, sondern auf die gesamte Klasse. Attribut: Datenwert, den Objekte oder Klassen enthalten. Operationen: Funktionen, die auf Objekte oder von Objekten anderer Klassen angewendet werden können. Methode: Implementierung einer Operation; Polymorphie: Implementierung von Methoden mit gleichem Namen, aber unterschiedlichen Parametern.

4 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 4 Objektmodellierung Zugriffsrestriktionen –private: nur sichtbar und damit zugreif- und aufrufbar für die Klasse selbst –protected: nur sichtbar und damit zugreif- und aufrufbar für die Klasse selbst und für abgeleitete Klassen –public: für alle sichtbar und damit zugreif- und aufrufbar

5 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 5 Objektmodellierung Beispiel: Klassendefinition public class circle { public double x, y; // Koordinaten der Kreismitte public double r; //Radius des Kreises // Konstruktor für die Erzeugung von Objekten public circle (double x-coord, double y-coord, double radius) {x = x-coord; y = y-coord; r = radius;} // Methoden, die Umfang und die Fläche als Ergebnis liefern public double umfang(){return 2 * 3.14159 * r;} public double flaeche(){return 3.14159 * r * r;} }

6 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 6 Objektmodellierung Vorgehen bei der Modellierung –Identifikation von Klassen und Objekten –Jede Klasse durch ein paar Sätze beschreiben; –Attribute hinzufügen –Kombination und Organisation der Klassen durch Vererbung –Kandidaten für Objektklasse identifizieren –ungeeignete Kandidaten entfernen, z. B.: redundante, irrelevante, vage Klassen –CRC-Karten verwenden

7 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 7 Objektmodellierung Motivation –einfach –informell –schnelle Ergebnisse durch Gruppendynamik –flexibel –Fördern das Verständnis des Modells Definition: CRC: –Class (Klasse) –Responsibility (Verantwortung) –Collaboration (Zusammenarbeit) Indizierte Karteikarte, die eine Klasse beschreibt –eindeutiger Klassenname –Liste aller Tätigkeiten, für die diese Klasse verantwortlich ist –Liste aller Klassen, mit denen eine Zusammenarbeit stattfindet bzw. die diese Klasse benötigt, um die eigenen Aufgaben erfüllen zu können.

8 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 8 Objektmodellierung Syntax: –keine allgemein akzeptierte Syntax –notwendige Elemente: Klassennname Anzahl von Tätigkeiten, die diese Klasse ausführt Anzahl von Klassennname, mit denen die Klasse zusammenarbeitet –Grundmodell: oberste Zeile: Klassenname darunter: –abgeleitete Klasse –übergeordnete Klassen Rest ist aufgeteilt in linke und rechte Seite –links: verantwortliche Tätigkeiten –rechts: Namen der Klassen, mit denen zusammengearbeitet wird

9 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 9 Objektmodellierung Klassennamen bilden Vokabular, das das zu lösende Problem hinreichend genau beschreibt. Gut gewählte Klassennamen erhöhen das Verständnis für das Modell. Liste der verantwortlichen Tätigkeiten dieser Klasse stellt Fähigkeiten und Service dieser Klasse dar den diese Klasse Anwendern bietet. Die Bezeichnungen der verantwortlichen Tätigkeiten sollten immer kurz aber auch beschreibend sein und immer ein aktives Verb enthalten: –SuchtEinträge –KenntKontostand Bezeichnungen der Klassen deren Zusammenarbeit eine Tätigkeit benötigt, werden genau gegenüber der Bezeichnung der Tätigkeit eingetragen. Dabei können dieselben Klassen mehrmals auf der Karteikarte auftreten.

10 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 10 Objektmodellierung Verknüpfungen und Assoziationen Assoziation gehört zu zwei Klassen Assoziation ist grundsätzlich bidirektional Darstellung durch eine Linie zwischen den Klassen bzw. Objekten Multiplizität: Anzahl der Instanzen einer Klasse, die mit der Instanz einer assoziierten Klasse verbunden sein können, z. B. –1genau 1 –0,10 oder 1 –n..*>= n –n.. m>= n, <= m –n, mgenau n oder m

11 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 11 Objektmodellierung Assoziationen bestimmen –Kandidaten für Assoziationen identifizieren Abhängigkeiten zwischen 2 oder mehreren Klassen aus Problemwissen oder Annahmen Verweise von einer Klasse zu einer anderen –ungeeignete Kandidaten entfernen, z. B. Assoziationen zwischen eliminierten Klassen irrelevante Assoziationen Assoziationen zwischen mehr als 2 Klassen (soweit möglich durch binäre darstellen) –abgeleitete Assoziationen aus mehreren Assoziationen erzeugbar

12 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 12 Objektmodellierung Aggregation –spezielle Assoziation, die die Teil – Ganzes-Relation repräsentiert –Beispiel: PC, besteht aus Bildschirm Rechner, besteht aus –Gehäuse –CPU –RAM Maus Tastatur

13 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 13 Objektmodellierung Komposition –spezielle Form der Aggregation –Teile existieren nicht unabhängig vom Ganzen –Beispiel: Rechnung, besteht aus Rechnungsposition 1 Rechnungsposition 2...

14 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 14 Objektmodellierung Generalisierung und Vererbung dient dazu –Ähnlichkeiten verschiedener Klassen herauszufinden –Unterschiede verschiedener Klassen zu erhalten gemeinsame Attribute und Methoden werden in einer Oberklasse zusammengefasst Spezielle Details werden in Unterklassen berücksichtigt Unterklassen erben Attribute und Methoden der Oberklasse Instanz der Oberklasse ist gleichzeitig Instanz all ihrer Oberklassen Unterklasse kann Methode der Oberklasse überschreiben, dient –der Verfeinerung –der Effizienzsteigerung Parameter und Ergebnistypen dürfen nicht geändert werden

15 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 15 Objektmodellierung Abstrakte Klassen hat keine direkten Instanzen; dienen als Oberklasse für konkrete Klasse; Methodendeklarationen werden festgelegt, Definition erfolgt in konkreter Klasse konkrete Klasse ist instanzierbar;

16 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 16 Objektmodellierung Bestimmung von Attributen –Kandidaten identifizieren Substantive mit Genitiv Wissen aus Anwendungsbereich –ungeeignete Kandidaten entfernen, z. B. Objekte Qualifikationsangaben Identifikatoren Verknüpfungsattribute interne Zustände, die außen nicht sichtbar sind Details, die sich auf die meisten Operationen nicht auswirken

17 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 17 Objektmodellierung Überarbeiten des Objektmodells Zugriffspfade testen Gibt es für einen erwarteten eindeutigen Wert einen Pfad, der ein eindeutiges Ergebnis liefert? Gibt es bei m-Multiplizitäten die Möglichkeit, eindeutige Werte herauszugreifen? Gibt es sinnvolle Fragen, die nicht beantwortet werden können? Doppelte Assoziationen den Oberklassen übertragen Unterscheidung Objekt und komplexes Attribut

18 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 18 Dynamisches Modellieren Aspekte eines Systems, die mit Zeit und Veränderungen zu tun haben, bilden das dynamische Modell Gegensatz zum statischen oder Objektmodell Ereignisse spielen zentrale Rolle, z. B.: –Signale –Eingabe –Entscheidungen –Unterbrechungen –Aktionen an oder von externen Objekten

19 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 19 Dynamisches Modellieren Szenarien –Szenario: Folge von Ereignissen, die bei einer ganz bestimmten Ausführung eines Systems auftritt –Sequenzdiagramm stellt zusätzlich Sender- und Empfängerobjekte für jedes Ereignis dar

20 Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 20 Dynamisches Modellieren Szenarien erstellen: –Aufschreiben von typischen Dialogen zwischen Benutzer und System –Reihenfolge beachten: Normalfälle, keine ungewünschten Eingaben, keine Fehler Berücksichtigung von Sonderfällen Berücksichtigung von Benutzerfehlern zusätzliche Interaktionsarten –Für jedes Ereignis wird notiert: das verursachende Objekt Parameter –Jedes Szenario wird als Sequenzdiagramm dargestellt


Herunterladen ppt "Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar."

Ähnliche Präsentationen


Google-Anzeigen