Das Softwaresystem Jazz - ub

Werbung
Softwarepraktikum WS 99/00
Das Softwaresystem Jazz
Beispiel für einen
konsequent objektorientierten Entwurf
Tobias Bosch, Uwe Bubeck
Jazz - Gesamtkonzeption
• Objektorientierter Ansatz mit Datenbankobjekten
und Verwaltern
• Datenbankzugriff auf wenige Programmstellen
konzentriert und gekapselt
• Datenkonsistenzprüfung erfolgt in den einzelnen
Verwaltern
• Vererbung konsequent ausgenutzt. Ergänzt durch
intensive Verwendung virtueller Methoden,
polymorpher Objektlisten und Methodenzeiger
Jazz - Klassendiagramm
TImEx (ImEx)
Intern
Extern
TTNVerw
(Teilnehmer)
TObject
TImExAngeb
(ImEx)
TVeranstVerw
(Veranstaltung)
Nummer
VGrp
Zusatz
Items
TZusatzVerw
(Zusatzleistung)
TBestellung
(Bestellung)
TDBObject
(DBObjekt)
TVerwalter
(Verwalter)
Teilnehmer
Zusatz
Menge
TID
Verwalter
BeenNotified
OnNotify
Table
TWunsch
(Wuensche)
Duplicate
Notify
Create
Destroy
Teilnehmer
Veranstaltung
Prior
TVGrpVerw
(Veranstaltung)
TPartnerVerw
(Partner)
Create
ObjNeu
Löschen
Speichern
AlleLesen
TZuteilung
(Zuteilung
TTeilnehmer
(Teilnehmer)
Teilnehmer
Veranstaltung
Fest
AnPerson
Anrede
Titel
Name
Adresse
Firma
Abteilung
Telefon
Telefax
EMail
Bezahlt
IstProblemfall
Anmeldedatum
Kommentar
TDBObjRefList
(Verwalter)
TObjList
(ObjList)
TWunschVerw
(Wuensche)
TBestVerw
(Bestellung)
TPartnerwunsch
(Partner)
Teilnehmer
Partner
VGrp
TObjRefList
(ObjList)
TImExVerw
(ImEx)
TVGruppe
(Veranstaltung)
TAngebot
(Angebot)
Titel
Kuerzel
Nummer
Titel
Beschreibung
Limit
TZusatzleistung
(Zusatzleistung)
TVeranstaltung
(Veranstaltung)
Gebuehr
Standard
VGrp
Ort
Zeit
Referent
TImExAngebVerw
(ImEx)
TZuteilung*
(Zuteilung)
TDBObjList
(Verwalter)
Jazz - Nachrichtenfluß
• Observer-Pattern
NotifyMethode
• Subject: Verwalter
onNotify
DBObjekt
DBObjekt
Dialog
• Observer: DBObjekte,
ObjektListe
Duplikat
Attach
Referenz
DBObjekt
DBObjekt
onNotify
Verwalter
ObserverListe
ObjektListe
Lesen Speichern
Datenbank
Dialoge
Jazz - Steuerung der Oberfläche
• Grundlage: „Model-View-Controller“-Modell
• Abstraktion von der tatsächlichen Datenstruktur
• Universell verwendbare Steuerungsroutinen kümmern sich
um Einfügen, Aktualisieren, Löschen, Sortieren von
Objekten in:
Mehrbenutzerfähigkeit:
Client-Server-Architektur
mit Distributed COM (DCOM)
Uwe Bubeck
JazzServer - Entwurfsidee
• Motivation: ereignisbasiertes Formularsystem
innerhalb des Programms auch für Inter-ProzeßKommunikation geeignet
• Fernziel: Mehrere Sachbearbeiter können eine
Akademiedatei gleichzeitig bearbeiten,
mit sofortiger Synchronisation auf allen Rechnern
• Designstudie
nur wenige Änderungen
gegenüber der Standalone-Version,
insbesondere gemeinsame Codebasis
JazzServer - Systemmodell
• Client-Server-Architektur
• JazzClient entspricht Standalone-Version,
aber Datenbankzugriff „abgeklemmt“. Statt
dessen Versorgung mit Objekten und
Änderungsereignissen durch Server.
Verwalterstruktur unverändert, d.h. lokale Kopie
der Objekte im RAM für Lese-Zugriffe
• JazzServer übernimmt bisherigen Systemkern,
aber eigene Oberfläche und zusätzliche
Routinen zur Verwaltung und Benachrichtigung
von Client-Applikationen
JazzServer - Systemdiagramm
DBObjekte
JazzClient
Verwalter
Connect
Notify
Disconnect
DBObjekte
JazzServer
ClientListe
Verwalter
Lesen Speichern
Datenbank
• Synchronisation zwischen
Client und Server nur an
zwei Stellen im Programm:
Speichern und Löschen im
abstrakten Verwalter
• In Designstudie noch nicht
vollständig implementiert:
Auflösung widersprüchlicher
Aktionen
(Transaktionskontrolle)
JazzServer - DCOM?!?
• Kommunikation über Distributed COM (DCOM):
um Netzwerkfähigkeit erweitertes Component
Object Model (COM)
• Vorteil: Weitgehende Abstraktion von
physikalischem Datentransfer. Über Interfaces
lassen sich entfernte Objekte wie lokale Objekte
ansprechen. Als Microsoft-Technologie große
Verbreitung
• Nachteil: Noch nicht voll ausgereift, geringere
Geschwindigkeit
Herunterladen