Das SalesPoint-Framework v3.2 Einführung und Überblick Steffen Zschaler TU Dresden, SS 2006
Gliederung Technische Realisierung des Frameworks SalesPoint Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen... SS 2006
Framework? (nach Hußmann) Klassenbibliothek Framework Vorgefertigte Teile Anwendungsspezifische Teile Don't call us, we call you Anpassung durch Instanziierung Anpassung durch Spezialisierung Ablaufsteuerung nicht vordefiniert Ablaufsteuerung im wesentlichen vordefiniert Die Grenze ist fließend, siehe z.B. Java AWT ! SS 2006
Ü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
Beispiel: Großmarkt SS 2006
Übersicht(2) – Paketstruktur Metriken: 18431 LOC (ohne Dokumentation und Leerzeilen) 254 Klassen SS 2006
Gliederung Technische Realisierung des Frameworks SalesPoint Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen... SS 2006
Anwendungsverwaltung Zentrale Klassen
Beispiel: Videomaschine Metriken: 1409 LOC (ohne Dokumentation und Leerzeilen) 45 Klassen Zur Erinnerung – Framework: 18431 LOC 254 Klassen SS 2006
Beispiel: Videomaschine (2) SalesPoint Shop SS 2006
Beispiel: Videomaschine (2) SalesPoint SS 2006
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
Anwendungsverwaltung Prozesse Ort sämtlicher Interaktionen mit dem Nutzer Realisiert durch Zustandsautomaten Prozeß besteht aus: Kommunikation mit dem Nutzer Internen Bearbeitungsvor- gängen Automat besteht aus: Zuständen (Gate) Zustandsübergängen (Transition) SS 2006
Prozeßeigenschaften An jedem Gate definiert unterbrechbar Transitionen: Kurz, insbesondere keine Nutzerkommunikation Ununterbrechbar Gates: Beliebig lang Zu jedem Zeitpunkt unterbrechbar SS 2006
Beispiel: Videomaschine (4) SS 2006
Beispiel Videomaschine RentProcess
Hilfe durch das „Kochbuch“ SS 2006
Anwendungsverwaltung Benutzeroberfläche Ein Fenster je SalesPoint Zur Anzeige von Formularen (FormSheet) und Menüs (MenuSheet) SS 2006
FormSheet FormSheet Komponentenbereich Beliebige javax.swing-Komponenten (incl. spezielle GUI-Komponenten des Frameworks) Knopfleiste SS 2006
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
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 MsgForm, TextInputForm abeleitet von FormSheet, Paket sale.stdforms SS 2006
Gliederung Technische Realisierung des Frameworks SalesPoint Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen... SS 2006
Datenverwaltung Kataloge und Bestände SS 2006
Beispiel: Videomaschine (5) Catalog CatalogItem CountingStock StockItem SS 2006
Datenkorb Analysesicht: Entwurfssicht: Warenkorb Entwurfssicht: Transaktionseigenschaften (Isolation und Atomizität) enge Kooperation mit Katalogen und Beständen: Parameter jeder Methode, die Datencontainer manipuliert SS 2006
Datenverwaltung Zahlungsverkehr? 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
Beispiel: Videomaschine (6) Keine eigenen Klassen notwendig Nur Katalog- und Bestandseinträge zu implementieren SS 2006
Gliederung Technische Realisierung des Frameworks SalesPoint Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen... SS 2006
Benutzerverwaltung Verwaltet Benutzer (User) und deren Rechte (Capability) Neu erzeugte Benutzer erhalten Standardrechte SS 2006
Protokollverwaltung Protokolle (Log) sind Ströme von Protokolleinträgen (LogEntry) Protokolleintrag: Zeitpunkt der Protokollierung Sachverhalt … Protokollierbare Objekte oder Vorgänge (Loggable): Liefern Protokolleinträge log public void log(Loggable l) throws LogNoOutputStreamException, IOException Adds one entry to the log file. Calls l.getLogData(). Specified by: log in interface LogContext Parameters: l - the event to be logged. Throws: LogNoOutputStreamException - if no OutputStream has been specified. IOException - if an IOException occurs when writing to the stream. See Also: Loggable Override: Never public LogEntry getLogData() Called when the object is being logged. Should return a fresh instance of a subclass of LogEntry describing the object or event to be logged. Returns: the data to be stored in the log file. Always SS 2006
Gliederung Technische Realisierung des Frameworks SalesPoint Übersicht Anwendungsverwaltung Datenverwaltung Benutzerverwaltung Protokollverwaltung Ein paar Erfahrungen... SS 2006
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
Einarbeitungsaufwand SS 2005 SS 2006
Dokumentation – Nutzung SS 2005 SS 2006
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
Fröhliches Bauen! SS 2006