Einführung und Überblick - TU Dresden

37
Das SalesPoint-Framework Einführung und Überblick Steffen Zschaler TU Dresden, SS 2005

Transcript of Einführung und Überblick - TU Dresden

Page 1: Einführung und Überblick - TU Dresden

Das SalesPoint-FrameworkEinführung und Überblick

Steffen ZschalerTU Dresden, SS 2005

Page 2: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 2

Gliederung

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

Ein paar Erfahrungen...

Page 3: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 3

Framework? (nach Hußmann)

Klassenbibliothek Framework

Vorgefertigte TeileAnwendungsspezifische Teile

Anpassung durch Instanziierung Anpassung durch SpezialisierungAblaufsteuerung nicht vordefiniert Ablaufsteuerung im wesentlichen

vordefiniert

Don't call us,we call you

Don't call us,we call you

Die Grenze ist fließend, siehe z.B. Java AWT !

Page 4: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 4

Übersicht SalesPoint

Bereichsspezifisches Framework (Domain Framework)

Entwicklung von Verkaufsanwendungen:– Abläufe in einem Geschäft und an Verkaufsständen

(Shop, SalesPoint und SaleProcess)– Datenverwaltung (Stock und Catalog)– Domainspezifische GUI-Komponenten

Page 5: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 5

Beispiel: Großmarkt

Page 6: Einführung und Überblick - TU Dresden

6

Übersicht(2) – Paketstruktur

log

util

data

saledata::stdforms sale::stdforms

users::stdforms users

Zentrale Klassen

Datenverwaltung NutzerverwaltungProtokollierung vonAnwendungsaktionen

Metriken:18347 LOC(ohne Dokumentation und Leerzeilen)252 Klassen

Page 7: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 7

Gliederung

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

Ein paar Erfahrungen...

Page 8: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 8

AnwendungsverwaltungZentrale Klassen

1

0..*

1

0..*

0..* salespoint process

background process

0..1currentUser

SalesPoint

Shop SaleProcess

interfaceProcessContext

users.User

Page 9: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 9

Beispiel: VideomaschineShop

VideoShopSalesPoint

VideoAutomat

SaleProcessSaleProcessHandBack

SaleProcessSaleProcessAdmin

SaleProcessSaleProcessLogOn

SaleProcessSaleProcessRent

UserAutomatUser

Metriken:1330 LOC (ohne Dokumentation und Leerzeilen)23 Klassen

Zur Erinnerung – Framework:18347 LOC252 Klassen

Page 10: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 10

Beispiel: Videomaschine (2)

Shop

SalesPoint

Page 11: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 11

Beispiel: Videomaschine (2)

SalesPoint

Page 12: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 12

Beispiel: Videomaschine (3)

public class VideoShop extends Shop {…

public static void main (String[] args){// VideoShop anlegen und registrierenVideoShop vidMachine = new VideoShop();setTheShop (vidMachine);…// Automat anlegenVideoAutomat va = new VideoAutomat (

“Video Rental”);

vidMachine.addSalesPoint (va);…// Anwendung startengetTheShop().start();

}}

public class VideoShop extends Shop {…

public static void main (String[] args){// VideoShop anlegen und registrierenVideoShop vidMachine = new VideoShop();setTheShop (vidMachine);…// Automat anlegenVideoAutomat va = new VideoAutomat (

“Video Rental”);

vidMachine.addSalesPoint (va);…// Anwendung startengetTheShop().start();

}}

Page 13: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 14

Prozeßeigenschaften

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

Gates:– Beliebig lang– Zu jedem Zeitpunkt unterbrechbar

Page 15: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 15

Beispiel: Videomaschine (4)Shop

VideoShopSalesPoint

VideoAutomat

SaleProcessSaleProcessHandBack

SaleProcessSaleProcessAdmin

SaleProcessSaleProcessLogOn

SaleProcessSaleProcessRent

UserAutomatUser

Page 16: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 17

Hilfe durch das „Kochbuch“

SaleProcessSaleProcessRent

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

+setupMachine:void

initialGate:Gate logGate:Gate

Page 18: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 18

AnwendungsverwaltungBenutzeroberfläche

1

0..*

1

1..*FormSheet

MenuSheetSeparator

MenuSheetObject

MenuSheetItem MenuSheetinterfaceAction

ContainerSerializable

javax.swing.JComponent

FormButton

Ein Fenster je SalesPointZur Anzeige von Formularen (FormSheet) und Menüs (MenuSheet)

Page 19: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 19

FormSheet

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

FormSheet

Knopfleiste

Page 20: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 22

Gliederung

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

Ein paar Erfahrungen...

Page 23: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 24

Beispiel: Videomaschine (5)

CountingStock

StockItem

Catalog

CatalogItem

Page 25: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 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: Einführung und Überblick - TU Dresden

SS 2005 27

Beispiel: Videomaschine (6)

Keine eigenen Klassen notwendig

interfaceCurrency

CatalogImplCurrencyImp

CatalogIteminterfaceCatalog

StockImpl Stockinterface

CountingStock

interfaceMoneyBag

CountingStockImp 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: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 28

Gliederung

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

Ein paar Erfahrungen...

Page 29: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 29

Benutzerverwaltung

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

Page 30: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 30

Protokollverwaltung

Protokolle (Log) sind Strömevon Protokolleinträgen(LogEntry)Protokolleintrag:– Zeitpunkt der Protokollierung– Sachverhalt – …

Protokollierbare Objekte oder Vorgänge (Loggable):– Liefern Protokolleinträge

Page 31: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 31

Gliederung

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

Ein paar Erfahrungen...

Page 32: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 32

Metriken

Metriken SalesPoint-Framework– Anzahl Klassen: 252– Lines of Code (LOC): 18.347

Durchschnittliche Metriken für SalesPoint-Anwendungen (SS 2004, 60 Projekte):

– Anzahl Klassen: 67– LOC: 7.270

ca. ein Viertel der Gesamtkomplexität

Page 33: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 33

Einarbeitungsaufwand

SS 20040

2

4

6

8

10

12

5,00% 10,00% 15,00% 20,00% 25,00% 30,00% 35,00% 40,00% 45,00% 50,00% 55,00% 60,00% 65,00% 75,00% 85,00%

Page 34: Einführung und Überblick - TU Dresden

SS 2005 34

Dokumentation – Nutzung

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Doku: Hooks

Technischer Überblick

CVS Tutorial (WinCVS)

elektr. Komm. mit Entwickler

Doku: HowTo's

Tutorial (Grossmarkt)

Einführungsvorlesung

Forum

Beispiel (Videomaschine)

CVS Tutorial (Eclipse und CVS)

Doku: JavaDOC

intensiv gelegentlich nicht genutzt k.A.

SS 2004

Page 35: Einführung und Überblick - TU Dresden

SS 2005 35

Dokumentation – Hilfe

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

CVS Tutorial (WinCVS)

Doku: Hooks

Einführungsvorlesung

Technischer Überblick

Doku: HowTo's

elektr. Komm. mit Entwickler

Tutorial (Grossmarkt)

Forum

CVS Tutorial (Eclipse und CVS)

Beispiel (Videomaschine)

Doku: JavaDOC

große Hilfe Hilfe na ja keine Hilfe k.A.

SS 2004

Page 36: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 36

Dokumentation – Wo?

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

Dokumentation studentischer Praktika aus vorigen Semestern– www-st.inf.tu-dresden.de

/Lehre/SS02/sp/SalesPoint/papers/betreuer.html– www-st.inf.tu-dresden.de

/Lehre/SS03/sp/internesPraktikum/pages/gruppenzuteilung.html

Page 37: Einführung und Überblick - TU Dresden

SS 2005 Steffen Zschaler 37

Fröhliches Bauen!