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

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
ER-Modell: Objekte und Klassen
der Universität Oldenburg
Abstrakte Klassen Basisklassen sollten in der Regel sehr allgemein sein. Oft ist es nicht notwendig, dass Objekte dieser generellen Basisklassen angelegt.
Objektorientierte Programmierung
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Frame-Logik Eine Einführung Andreas Glausch.
Objektorientierte Datenbanken
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Objektorientierte Programmierung Definition von Klassen
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Sequenzdiagramm.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Abstrakter Datentyp in C++ I - Klasse -
Abstrakte Klassen, Interface
DVG Klassen und Objekte
Dieter Bergmann, Lichtenfels
Einführung in die Programmierung Klassendefinition und Objekte
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Systementwurf Überblick: Entwicklung der globalen Problemlösungsstrategie.
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
Software Engineering SS 2009
Das Wasserfallmodell - Überblick
Software Engineering SS 2009
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Software Engineering SS 2009
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
Einführung in die Programmierung
Entwurfs- und Implementationsdiagramme
Einführung in die Programmierung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vom Geschäftsprozess zum Quellcode
Java Programmierung.
Relationale Datenbanken
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Programmiervorkurs WS 2014/15 Instanzmethoden
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Sichtbarkeit einschränken
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
C++ FÜR cOMPUTERSPIELENTWICKLER
Implementieren von Klassen
 Präsentation transkript:

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.

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.

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.

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

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 * * r;} public double flaeche(){return * r * r;} }

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

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.

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

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.

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

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

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

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...

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

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;

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

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

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

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

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