Objektorientierter Entwurf (OOD) Übersicht

Slides:



Advertisements
Ähnliche Präsentationen
Objektorientierte Datenbanken
Advertisements

Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Objektorientierter Entwurf
Objektorientierter Entwurf
Verwendung der Funktion Suchverlauf
Objektorientierte Analyse (OOA) Inhaltsübersicht
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Systemanalyse In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System.
Objektorientierte Geschäftsprozessmodellierung
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Polymorphie (Vielgestaltigkeit)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Objektorientierter Entwurf
Weitere UML-Diagramme: Interaktionsübersichtsdiagramm Timing Diagramm
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Sebastian Grahn Sebastian Kühn
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Buch S70ff (Informatik I, Oldenbourg-Verlag)
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Objekt-Definitionssprache ODL (1/24) Alle Elemente des Objektmodells können beschrieben.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
UML Begleitdokumentation des Projekts
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Software Engineering SS 2009
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Delphi II - OOP IFB Fortbildung
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Entwurfs- und Implementationsdiagramme
Datenbank.
Fortsetzung DTDs, UML  XML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
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 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 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 (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Vom Geschäftsprozess zum Quellcode
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Mehrschichten- Architektur. Sinn: Zur Strukturierung von Software, die eine spätere Änderung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten.
Unified Modeling Language UML
Abbildung UML-Schema  Rel. Schema (1)
RelationentheorieObjektorientierte Datenbanken  AIFB SS C++-ODL (1/6) Erweiterung des deklarativen Teils einer C++-Klasse Datentypen d_String,
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Java-Kurs Übung Besprechung der Hausaufgabe
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.
Sichtbarkeit einschränken
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
 Präsentation transkript:

Objektorientierter Entwurf (OOD) Übersicht Das Ziel des OO-Designs (OOD) ist es, die endgültige Architektur festzulegen durch Teil 1: Anbindung der Fachklassen an weitere Systeme: Benutzeroberfläche (mit MVC) Datenhaltung (Datenbank-Lösung oder Programmierkonzepte) Schnittstellen (incl. Nutzung von eigenen Klassenbibliotheken) Teil 2: Optimierung des OO-Modells (OOA  OOD): Erweiterung um wichtige Details Anpassung an die Programmiersprache Alle Namen des OOD-Modells müssen der Syntax der Ziel-Programmiersprache entsprechen (in der Praxis so üblich), ggfs müssen Bezeichnungen aus dem OOA-Modell umgewandelt werden. Namen der Klassen-Operationen müssen mit einem Verb beginnen möglichst keine Abkürzungen, außer wenn allgemein bekannt konsistente Verwendung über das gesamte Modell Hinweis: Ab dieser Stelle im Entwicklungsprozeß verschwindet das fachspezifische OO-Modell und macht einem IT-spezifischen OO-Modell Platz. Christoph Riewerts, © Prof. Dr. Helmut Balzert V2.0

Objektorientierter Entwurf (OOD) Teil 1: Anbindung an die Benutzeroberfläche GUI-System auswählen (z.B. Java-GUI mit swing) Jedes GUI-Fenster ist eine Unterklasse von JDialog GUI-Klassen enthalten Interaktions-elemente, die man mittels einer Beziehung mit einem Attribut einer Fachkonzeptklasse verbindet Hierarchie der Fensterklassen mit Zuordnung zu Paketen:

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche GUI-Klasse für ein Erfassungsfenster enthält eine einfache Assoziation zur Fachkonzeptklasse, die Operation aktualisiere() zum Anzeigen der Attributwerte aus dem zugehörigen Fachkonzeptobjekt und die Operation speichere(), die die Eingaben aus dem Fensterobjekt an das Fachkonzeptobjekt übergibt.

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche In Java: public class MeinArtikelfenster extends MeinUnterfenster { //Attribute ... //Referenz auf das aktuelle Fachkonzeptobjekt Artikel einArtikel; ... }  Wenn das Erfassungsfenster für einen vorhandenen Artikel geöffnet und initialisiert wird, dann werden mittels der Operation aktualisiere() die Attributwerte des assoziierten Artikels angezeigt void aktualisiere() { artikelnrTextfeld = einArtikel.getArtikelnummer(); bezeichnungTextfeld = einArtikel.getBezeichnung(); verkaufspreisAlsString = einArtikel.getVerkaufspreis(); ... }.

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche Drücken des OK-Druckknopfs löst die Operation speichere() aus void speichere() { einArtikel. setArtikelnummer( artikelnrTextfeld) ; einArtikel. setBezeichnung( bezeichnungTextfeld) ; …… setVerkaufspreis( VerkaufspreisAlsString) …… }.

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche Zur Bearbeitung einer Liste aller Artikel benötigt man eine GUI-Klasse für Listenfenster; diese enthält eine einfache Assoziation zu der zugehörigen Containerklasse Die Container-Klasse (Fachkonzept-Klasse), enthält das Klassenattribut einzigesObjekt, das die Referenz auf das einzige Objekt enthält, und die Operation getObjektreferenz(), die auf diese Referenz zugreifen kann und beim ersten Aufruf das Objekt erzeugt.

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche die Operation aktualisiere() dient zum Anzeigen aller Objekte der Klasse MeineArtikelliste

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche die Operation aendere() dient zum Ändern der Attribute eines Artikels

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche Container-Klasse informiert ihre GUI-Listenklassen mittels Beobachter-Muster und enthält eine *-Assoziation zur GUI-Listenklasse (Beobachter) und: die Operation meldeAn(), die eine Verbindung zu einem Beobachter-Objekt aufbaut die Operation meldeAb(), die eine Verbindung zu einem Beobachter-Objekt abbaut die Operation benachrichtige(), die alle Beobachter über eine Veränderung benachrichtigt

Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche Szenario zum Aktualisieren aller Listenfenster mittels Beobachter, indem der Container alle seine GUI-Klassen, die er beobachtet, benachrichtigt. Jedes Listenfenster kann dann die benötigten Attribute pro Artikel aktuell anzeigen.

Objektorientierter Entwurf (OOD) Anbindung an die Datenhaltung Anbindung an eine OO-Datenbank i.d.R. problemlos Beim Einsatz einer OO-Datenbank (DB) stellt die OO-DB eine Klasse bereit, von der alle Fachkonzeptklassen mit persistenten Attributen erben müssen. ODMG-Standard unterstützt keine persistenten Attribute, so dass Hilfsklassen entworfen werden; jede Hilfsklasse besitzt nur ein Objekt, das die Klassenattribute verwaltet Selbstdefinierte Attributtypen werden durch eigene Klassen realisiert

Objektorientierter Entwurf (OOD) Anbindung an die Datenhaltung Anbindung an eine relationale Datenbank Transformation der Klassen in Relationen: Attributtyp  SQL-Typ, neue Spalte OID, .. Beziehungen in Fremdschlüssel umwandeln (1:n Assoziation/Aggregation):

Objektorientierter Entwurf (OOD) Anbindung an die Datenhaltung Anbindung an eine relationale Datenbank Beziehungen in Fremdschlüssel umwandeln (n:m Assoziation/Aggregation): Transformation der Vererbung, z.B. für jede Ober- und Unterklasse eine Tabelle, zusätzliches Attribut regelt die Zuordnung zur Oberklasse

Übung: Transformation der Vererbung in ein Relationenschema Entwerfen Sie weitere Alternativen, die nebenstehende Vererbung in ein Relationenschema zu transformieren. Prüfen sie bei ihren Lösungen, ob sich das Schema noch in der 3. Normalform befindet.

Anhang: Lösung der Übung (1von2) Alternative 1:

Anhang: Lösung der Übung (2von2) Alternative 2: Alternative 3: