das salespoint-framework v3.2 einführung und Überblick steffen zschaler tu dresden, ss 2006
Post on 05-Apr-2015
107 Views
Preview:
TRANSCRIPT
Das SalesPoint-Framework v3.2Einführung und Überblick
Steffen ZschalerTU Dresden, SS 2006
SS 2006 2
Gliederung
Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung
Ein paar Erfahrungen...
SS 2006 3
Framework? (nach Hußmann)
Anpassung durch Instanziierung Anpassung durch Spezialisierung
Ablaufsteuerung nicht vordefiniert Ablaufsteuerung im wesentlichenvordefiniert
Vorgefertigte TeileAnwendungsspezifische Teile
Die Grenze ist fließend, siehe z.B. Java AWT !
Klassenbibliothek Framework
Don't call us,we call you
Don't call us,we call you
SS 2006 4
Bereichsspezifisches Framework (Domain Framework)Version 3.2 basierend auf Java 1.5
Entwicklung von Verkaufsanwendungen:– Abläufe in einem Geschäft und an Verkaufsständen
(Shop, SalesPoint und SaleProcess)– Datenverwaltung (Stock und Catalog)– Domainspezifische GUI-Komponenten
Übersicht SalesPoint
SS 2006 5
Beispiel: Großmarkt
SS 2006 6
log
util
data
saledata::stdforms sale::stdforms
users::stdforms users
Zentrale Klassen
Datenverwaltung NutzerverwaltungProtokollierung vonAnwendungsaktionen
Übersicht(2) – Paketstruktur
Metriken: 18431 LOC
(ohne Dokumentation und Leerzeilen) 254 Klassen
SS 2006 7
Gliederung
Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung
Ein paar Erfahrungen...
SS 2006 8
AnwendungsverwaltungZentrale Klassen
1
0..*
1
0..*
0..* salespoint process
background process
0..1
currentUser
SalesPoint
Shop SaleProcess
interfaceProcessContext
users.User
SS 2006 9
ShopVideoShop
SalesPointVideoAutomat
SaleProcessSaleProcessHandBack
SaleProcessSaleProcessAdmin
SaleProcessSaleProcessLogOn
SaleProcessSaleProcessRent
UserAutomatUser
Beispiel: Videomaschine
Metriken: 1409 LOC
(ohne Dokumentation und Leerzeilen)
45 Klassen
Zur Erinnerung – Framework:
18431 LOC 254 Klassen
SS 2006 10
Shop
Beispiel: Videomaschine (2)
SalesPoint
SS 2006 11
Beispiel: Videomaschine (2)
SalesPoint
SS 2006 12
Beispiel: Videomaschine (3)
public class VideoShop extends Shop { …
public static void main (String[] args){ // VideoShop anlegen und registrieren VideoShop vidMachine = new VideoShop(); setTheShop (vidMachine); … // Automat anlegen VideoAutomat va = new VideoAutomat ( “Video Rental” ); vidMachine.addSalesPoint (va); … // Anwendung starten getTheShop().start(); }}
public class VideoShop extends Shop { …
public static void main (String[] args){ // VideoShop anlegen und registrieren VideoShop vidMachine = new VideoShop(); setTheShop (vidMachine); … // Automat anlegen VideoAutomat va = new VideoAutomat ( “Video Rental” ); vidMachine.addSalesPoint (va); … // Anwendung starten getTheShop().start(); }}
SS 2006 13
AnwendungsverwaltungProzesse
Prozeß besteht aus:– Kommunikation mit dem
Nutzer– Internen Bearbeitungsvor-
gängen
Automat besteht aus:– Zuständen (Gate)
– Zustandsübergängen (Transition)
Ort sämtlicher Interaktionen mit dem Nutzer– Realisiert durch Zustandsautomaten
1..* 1..*SaleProcessTransition Gate
SS 2006 14
Prozeßeigenschaften
An jedem Gate definiert unterbrechbarTransitionen:– Kurz, insbesondere keine Nutzerkommunikation– Ununterbrechbar
Gates:– Beliebig lang– Zu jedem Zeitpunkt unterbrechbar
SS 2006 15
ShopVideoShop
SalesPointVideoAutomat
SaleProcessSaleProcessHandBack
SaleProcessSaleProcessAdmin
SaleProcessSaleProcessLogOn
SaleProcessSaleProcessRent
UserAutomatUser
Beispiel: Videomaschine (4)
SS 2006 16
Beispiel Videomaschine RentProcess
RollbackGatedo/ Transaktion zurücksetzen
CommitGatedo/ Transaktionen komplettieren
LogGatedo/ Vorgang protokollieren
StopGate
confirmGatedo/ Wechselgeld entgegennehmen,Entleihung bestätigen
initialGatedo/ Videos ausleihen
payGatedo/ Videos bezahlen
rent[sum==0]
Cancel
Cancel
pay[enough]
rent[sum > 0]Ausgangspunkt ist derLogon-Prozeß
SS 2006 17
Hilfe durch das „Kochbuch“
SaleProcessSaleProcessRent
#payGate:Gate#confirmGate:Gate#toSelectionTransition:Transition#toPayingTransition:Transition#toDecisionTransition:Transition#toGetChangeTransition:Transition
+setupMachine:void
initialGate:Gate logGate:Gate
SS 2006 18
AnwendungsverwaltungBenutzeroberfläche
Ein Fenster je SalesPointZur Anzeige von Formularen (FormSheet) und Menüs (MenuSheet)
1
0..*
1
1..*
FormSheet
MenuSheetSeparator
MenuSheetObject
MenuSheetItem MenuSheetinterfaceAction
ContainerSerializable
javax.swing.JComponent
FormButton
SS 2006 19
FormSheet
KomponentenbereichBeliebige javax.swing-Komponenten(incl. spezielle GUI-Komponenten des Frameworks)
Knopfleiste
FormSheet
SS 2006 20
MenuSheet
FormSheets und MenuSheets:– Abstraktion von der konkreten
Darstellung• Aufgabe des Display
(Framework-interne Klassen)
– Verwenden Aktionen (Action), zur Anbindung von Programmcode
MenuSheet
SS 2006 21
Standard-GUI
Swing-Komponenten (packages *.swing)– Spezielle GUI-Klassen von SalesPoint (z.B. CatalogTableModel)
Standard-Formulare (packages *.stdforms)– Swing-Komponenten, die zu Standard-Formularen
zusammengesetzt sind
SS 2006 22
Gliederung
Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung– Benutzerverwaltung – Protokollverwaltung
Ein paar Erfahrungen...
SS 2006 23
DatenverwaltungKataloge und Bestände
0..*
1 0..*
myCatalog
0..*
interfaceStock
+add:void+remove:void+contains:boolean+get:StockItem
catalog:Catalog
interfaceStockItem
name:String stock:Stock associatedItem:CatalogItem
interfaceCatalog
+add:void+remove:void+contains:boolean+get:CatalogItem
interfaceCatalogItem
value:Object name:String
interfaceCountingStock
interfaceStoringStock
Zählt alle Objekteeines Typs
Jedes Objekt hat eineeigene Beschreibung.
SS 2006 24
Beispiel: Videomaschine (5)
CountingStock
StockItem
Catalog
CatalogItem
SS 2006 25
Datenkorb
Analysesicht:– Warenkorb
Entwurfssicht:– Transaktionseigenschaften
(Isolation und Atomizität)
enge Kooperation mit Katalogen und Beständen:– Parameter jeder Methode, die
Datencontainer manipuliert
SS 2006 26
DatenverwaltungZahlungsverkehr?
Nur primitiv unterstützt:– Währungen (Currency):
Katalog von Scheinen und Münzen
– Geldbeutel (MoneyBag) verwaltet Bargeld
– elektronischer Zahlungs-verkehr noch nicht unter-stützt
SS 2006 27
Beispiel: Videomaschine (6)
Keine eigenen Klassen notwendig
interfaceCurrency
CatalogImplCurrencyImpl
CatalogIteminterfaceCatalog
StockImpl Stockinterface
CountingStock
interfaceMoneyBag
CountingStockImpl MoneyBagImpl
Videos eines Titels werden nur gezählt
Repräsentiert dasMünzfach der Video-maschine
Nur Katalog- und Bestandseinträge zu implementieren
StoringStockItemImplVideoCassette
+dueForReturn:Date
CatalogItemImpl$CatalogItem
SS 2006 28
Gliederung
Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006 29
Benutzerverwaltung
Verwaltet Benutzer (User) und deren Rechte (Capability)Neu erzeugte Benutzer erhalten Standardrechte
SS 2006 30
Protokollverwaltung
Protokolle (Log) sind Ströme von Protokolleinträgen (LogEntry)Protokolleintrag:– Zeitpunkt der Protokollierung– Sachverhalt – …
Protokollierbare Objekte oder Vorgänge (Loggable):– Liefern Protokolleinträge
SS 2006 31
Gliederung
Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung
Ein paar Erfahrungen...
SS 2006 32
Metriken
Metriken SalesPoint-Framework– Anzahl Klassen: 254– Lines of Code (LOC): 18.431
Durchschnittliche Metriken für SalesPoint-Anwendungen (SS 2005, 58 Projekte):
– Anzahl Klassen: 88– LOC: 9.877
SS 2006 33
Einarbeitungsaufwand
SS 2005
SS 2006 34
Dokumentation – NutzungSS 2005
SS 2006 35
Dokumentation – Wo?
www-st.inf.tu-dresden.de/SalesPoint/v3.2/
Dokumentation studentischer Praktika aus vorigen Semestern– SS 2005: www-st.inf.tu-dresden.de
/sp/internesPraktikum/pages/gruppenzuteilung.html– SS 2004: www-st.inf.tu-dresden.de
/Lehre/SS04/sp/internesPraktikum/pages/gruppenzuteilung.html
SS 2006 36
Fröhliches Bauen!
top related