Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Faramond Schierling Geändert vor über 11 Jahren
1
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
2
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:
3
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.
4
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(); ... }.
5
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) …… }.
6
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.
7
Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche
die Operation aktualisiere() dient zum Anzeigen aller Objekte der Klasse MeineArtikelliste
8
Objektorientierter Entwurf (OOD) Anbindung an die Benutzeroberfläche
die Operation aendere() dient zum Ändern der Attribute eines Artikels
9
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
10
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.
11
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
12
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):
13
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
14
Ü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.
15
Anhang: Lösung der Übung (1von2)
Alternative 1:
16
Anhang: Lösung der Übung (2von2)
Alternative 2: Alternative 3:
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.