Transcript einfuehrung

Das SalesPoint-Framework v3.2
Einführung und Überblick
Steffen Zschaler
TU Dresden, SS 2006
Gliederung
Technische Realisierung des Frameworks SalesPoint
– Framework?
– Übersicht
– Anwendungsverwaltung
– Datenverwaltung
– Benutzerverwaltung
– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006
2
Framework? (nach Hußmann)
Klassenbibliothek
Anwendungsspezifische Teile
Framework
Vorgefertigte Teile
Don't call us,
Anpassung durch Instanziierung
durch Spezialisierung
we callAnpassung
you
Ablaufsteuerung nicht vordefiniert
Ablaufsteuerung im wesentlichen
vordefiniert
Die Grenze ist fließend, siehe z.B. Java AWT !
SS 2006
3
Übersicht SalesPoint
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
SS 2006
4
Beispiel: Großmarkt
SS 2006
5
Übersicht(2) – Paketstruktur
Zentrale Klassen
data::stdforms
data
Metriken:
 18431 LOC
(ohne Dokumentation und
 Leerzeilen)
 254 Klassen
SS 2006
sale
util
Datenverwaltung
log
sale::stdforms
users::stdforms
Protokollierung von
Anwendung saktionen
users
Nutzerverwaltung
6
Gliederung
Technische Realisierung des Frameworks SalesPoint
– Framework?
– Übersicht
– Anwendungsverwaltung
– Datenverwaltung
– Benutzerverwaltung
– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006
7
Anwendungsverwaltung
Zentrale Klassen
interface
ProcessContext
1
Shop
0..*
SaleProcess
background process
1
0..*
salespoint process
0..*
SalesPoint
0..1
users.User
currentUser
SS 2006
8
Beispiel: Videomaschine
Shop
VideoShop
SaleProcess
SaleProcessRent
SalesPoint
VideoAutomat
SaleProcess
SaleProcessAdmin
Metriken:
 1409 LOC
(ohne Dokumentation und Leerzeilen)
 45 Klassen
SS 2006
SaleProcess
SaleProcessLogOn
User
AutomatUser
SaleProcess
SaleProcessHandBack
Zur Erinnerung – Framework:
 18431 LOC
 254 Klassen
9
Beispiel: Videomaschine (2)
SalesPoint
Shop
SS 2006
10
Beispiel: Videomaschine (2)
SalesPoint
SS 2006
11
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();
}
SS 2006
}
12
Anwendungsverwaltung
Prozesse
Ort sämtlicher Interaktionen mit dem Nutzer
– Realisiert durch Zustandsautomaten
Prozeß besteht aus:
Automat besteht aus:
– Kommunikation mit dem
Nutzer
– Internen Bearbeitungsvorgängen
Transition
SS 2006
1..*
SaleProcess
– Zuständen (Gate)
– Zustandsübergängen
(Transition)
1..*
Gate
13
Prozeßeigenschaften
An jedem Gate definiert unterbrechbar
Transitionen:
– Kurz, insbesondere keine Nutzerkommunikation
– Ununterbrechbar
Gates:
– Beliebig lang
– Zu jedem Zeitpunkt unterbrechbar
SS 2006
14
Beispiel: Videomaschine (4)
Shop
VideoShop
SaleProcess
SaleProcessRent
SalesPoint
VideoAutomat
SaleProcess
SaleProcessAdmin
SaleProcess
SaleProcessLogOn
SaleProcess
SaleProcessHandBack
User
AutomatUser
SS 2006
15
Beispiel Videomaschine
RentProcess
Cancel
initialGate
do/ Videos ausleihen
Cancel
Ausgang spunkt ist der
Log on-Prozeß
RollbackGate
do/ Transaktion zurücksetzen
rent[sum==0]
rent[sum > 0]
Log Gate
do/ Vorg ang protokollieren
StopGate
payGate
do/ Videos bezahlen
pay[enough]
confirmGate
do/ Wechselg eld entgeg ennehmen,
Entleihung bestätigen
SS 2006
CommitGate
do/ Transaktionen komplettieren
16
Hilfe durch das „Kochbuch“
SaleProcess
SaleProcessRent
#payGate:Gate
#confirmGate:Gate
#toSelectionTransition:Transition
#toPaying Transition:Transition
#toDecisionTransition:Transition
#toGetChangeTransiti on:Transition
+setupMachine:void
initialGate:Gate
log Gate:Gate
SS 2006
17
Anwendungsverwaltung
Benutzeroberfläche
Container
Serializable
javax.swing.JComponent
MenuSheetObject
1..*
FormSheet
0..*
FormButton
1
interface
Action
1
MenuSheetItem
MenuSheetSeparator
MenuSheet
Ein Fenster je SalesPoint
Zur Anzeige von Formularen (FormSheet) und
Menüs (MenuSheet)
SS 2006
18
FormSheet
FormSheet
Komponentenbereich
Beliebige javax.swingKomponenten
(incl. spezielle GUIKomponenten des
Frameworks)
Knopfleiste
SS 2006
19
MenuSheet
MenuSheet
FormSheets und
MenuSheets:
– Abstraktion von der konkreten
Darstellung
• Aufgabe des Display
(Framework-interne Klassen)
– Verwenden Aktionen
(Action), zur Anbindung
von Programmcode
SS 2006
20
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
21
Gliederung
Technische Realisierung des Frameworks SalesPoint
– Framework?
– Übersicht
– Anwendungsverwaltung
– Datenverwaltung
– Benutzerverwaltung
– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006
22
Datenverwaltung
Kataloge und Bestände
interface
Catalog
interface
Stock
1
+add:void
+remove:void
+contains:boolean
+get:CatalogItem
myCatalog
interface
CountingStock
0..*
+add:void
+remove:void
+contains:boolean
+get:StockItem
catalog :Catalog
interface
StoringStock
Zählt alle Objekte
eines Typs
Jedes Objekt hat eine
eig ene Beschreibung .
0..*
interface
CatalogItem
value:Object
name:String
SS 2006
0..*
interface
StockItem
name:String
stock:Stock
associatedItem:CatalogItem
23
Beispiel: Videomaschine (5)
Catalog
CatalogItem
CountingStock
StockItem
SS 2006
24
Datenkorb
Analysesicht:
– Warenkorb
Entwurfssicht:
– Transaktionseigenschaften
(Isolation und Atomizität)
enge Kooperation mit
Katalogen und Beständen:
– Parameter jeder Methode, die
Datencontainer manipuliert
SS 2006
25
Datenverwaltung
Zahlungsverkehr?
Nur primitiv unterstützt:
– Währungen (Currency):
Katalog von Scheinen und
Münzen
– Geldbeutel (MoneyBag)
verwaltet Bargeld
– elektronischer Zahlungsverkehr noch nicht unterstützt
SS 2006
26
Beispiel: Videomaschine (6)
interface
Currency
CurrencyImpl
Catalog Item
interface
Catalog
StockImpl
CatalogImpl
Stock
interface
CountingStock
CountingStockImpl
MoneyBagImpl
Catalog ItemImpl
$CatalogItem
StockItemImpl
CassetteStoringStockItem
+dueForReturn:Date
Keine eigenen
Klassen notwendig
Repräsentiert das
Münzfach der Videomaschine
Videos eines Titels
werden nur g ezählt
Storing StockItemImpl
VideoCassette
interface
MoneyBag
Catalog ItemImpl
VideoCassette
Nur Katalog- und
Bestandseinträge
zu implementieren
+setValue:void
SS 2006
date:String
27
Gliederung
Technische Realisierung des Frameworks SalesPoint
– Framework?
– Übersicht
– Anwendungsverwaltung
– Datenverwaltung
– Benutzerverwaltung
– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006
28
Benutzerverwaltung
Verwaltet Benutzer
(User) und deren
Rechte (Capability)
Neu erzeugte Benutzer
erhalten Standardrechte
SS 2006
29
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
30
Gliederung
Technische Realisierung des Frameworks SalesPoint
– Framework?
– Übersicht
– Anwendungsverwaltung
– Datenverwaltung
– Benutzerverwaltung
– Protokollverwaltung
Ein paar Erfahrungen...
SS 2006
31
Metriken
Metriken SalesPoint-Framework
– Anzahl Klassen:
254
– Lines of Code (LOC): 18.431
Durchschnittliche Metriken für SalesPointAnwendungen (SS 2005, 58 Projekte):
– Anzahl Klassen:
– LOC:
SS 2006
88
9.877
32
Einarbeitungsaufwand
SS 2005
SS 2006
33
Dokumentation – Nutzung
SS 2005
SS 2006
34
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
35
Fröhliches Bauen!
SS 2006
36