Das SalesPoint-Framework v3.3 Einführung und Überblick

36
Das SalesPoint- Framework v3.3 Einführung und Überblick Steffen Zschaler TU Dresden, SS 2007

description

Das SalesPoint-Framework v3.3 Einführung und Überblick. Steffen Zschaler TU Dresden, SS 2007. Gliederung. Technische Realisierung des Frameworks SalesPoint Framework? Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen. - PowerPoint PPT Presentation

Transcript of Das SalesPoint-Framework v3.3 Einführung und Überblick

Page 1: Das SalesPoint-Framework v3.3 Einführung und Überblick

Das SalesPoint-Framework v3.3Einführung und Überblick

Steffen ZschalerTU Dresden, SS 2007

Page 2: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 2

Gliederung

Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung

Ein paar Erfahrungen...

Page 3: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 4: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 4

Bereichsspezifisches Framework (Domain Framework)Version 3.3 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

Page 5: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 5

Beispiel: Großmarkt

Page 6: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 6

log

util

data

saledata::stdforms sale::stdforms

users::stdforms users

Zentrale Klassen

Datenverwaltung NutzerverwaltungProtokollierung vonAnwendungsaktionen

Übersicht(2) – Paketstruktur

Metriken: 18993 LOC

(ohne Dokumentation und Leerzeilen) 263 Klassen

Page 7: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 7

Gliederung

Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung

Ein paar Erfahrungen...

Page 8: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 8

AnwendungsverwaltungZentrale Klassen

1

0..*

1

0..*

0..* salespoint process

background process

0..1

currentUser

SalesPoint

Shop SaleProcess

interfaceProcessContext

users.User

Page 9: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 9

ShopVideoShop

SalesPointVideoAutomat

SaleProcessSaleProcessHandBack

SaleProcessSaleProcessAdmin

SaleProcessSaleProcessLogOn

SaleProcessSaleProcessRent

UserAutomatUser

Beispiel: Videomaschine

Metriken: 1409 LOC

(ohne Dokumentation und Leerzeilen)

45 Klassen

Zur Erinnerung – Framework:

18993 LOC 263 Klassen

Page 10: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 10

Shop

Beispiel: Videomaschine (2)

SalesPoint

Page 11: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 11

Beispiel: Videomaschine (2)

SalesPoint

Page 12: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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(); }}

Page 13: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 14: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 14

Prozeßeigenschaften

An jedem Gate definiert unterbrechbarTransitionen:– Kurz, insbesondere keine Nutzerkommunikation– Ununterbrechbar

Gates:– Beliebig lang– Zu jedem Zeitpunkt unterbrechbar

Page 15: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 15

ShopVideoShop

SalesPointVideoAutomat

SaleProcessSaleProcessHandBack

SaleProcessSaleProcessAdmin

SaleProcessSaleProcessLogOn

SaleProcessSaleProcessRent

UserAutomatUser

Beispiel: Videomaschine (4)

Page 16: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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ß

Page 17: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 17

Hilfe durch das „Kochbuch“

SaleProcessSaleProcessRent

#payGate:Gate#confirmGate:Gate#toSelectionTransition:Transition#toPayingTransition:Transition#toDecisionTransition:Transition#toGetChangeTransition:Transition

+setupMachine:void

initialGate:Gate logGate:Gate

Page 18: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 19: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 19

FormSheet

KomponentenbereichBeliebige javax.swing-Komponenten(incl. spezielle GUI-Komponenten des Frameworks)

Knopfleiste

FormSheet

Page 20: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 20

MenuSheet

FormSheets und MenuSheets:– Abstraktion von der konkreten

Darstellung• Aufgabe des Display

(Framework-interne Klassen)

– Verwenden Aktionen (Action), zur Anbindung von Programmcode

MenuSheet

Page 21: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 22: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 22

Gliederung

Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung– Benutzerverwaltung – Protokollverwaltung

Ein paar Erfahrungen...

Page 23: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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.

Page 24: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 24

Beispiel: Videomaschine (5)

CountingStock

StockItem

Catalog

CatalogItem

Page 25: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 25

Datenkorb

Analysesicht:– Warenkorb

Entwurfssicht:– Transaktionseigenschaften

(Isolation und Atomizität)

enge Kooperation mit Katalogen und Beständen:– Parameter jeder Methode, die

Datencontainer manipuliert

Page 26: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 27: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 28: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 28

Gliederung

Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung– Protokollverwaltung

Ein paar Erfahrungen...

Page 29: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 29

Benutzerverwaltung

Verwaltet Benutzer (User) und deren Rechte (Capability)Neu erzeugte Benutzer erhalten Standardrechte

Page 30: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 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

Page 31: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 31

Gliederung

Technische Realisierung des Frameworks SalesPoint– Framework?– Übersicht– Anwendungsverwaltung – Datenverwaltung – Benutzerverwaltung – Protokollverwaltung

Ein paar Erfahrungen...

Page 32: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 32

Metriken

Metriken SalesPoint-Framework v3.3– Anzahl Klassen: 263– Lines of Code (LOC): 18.993

Durchschnittliche Metriken für SalesPoint-Anwendungen (SS 2006, 44 Projekte):

– Anzahl Klassen: 140– LOC: 10.135

Page 33: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 33

Einarbeitungsaufwand

SS 2006

Page 34: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 34

Dokumentation – NutzungSS 2006

Page 35: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 35

Dokumentation – Wo?

www-st.inf.tu-dresden.de/SalesPoint/v3.3/

Dokumentation studentischer Praktika aus vorigen Semestern– SS 2006 Gruppen– SS 2005: www-st.inf.tu-dresden.de

/sp/internesPraktikum/pages/gruppenzuteilung.html

Page 36: Das SalesPoint-Framework v3.3 Einführung und Überblick

SS 2007 36

Fröhliches Bauen!