Entwicklerhandbuch

Entwickler-Handbuch
EPC – Analyser
Version 1.0
Inhaltsverzeichnis
1 Grundlegender Anwendungsaufbau........................................................................................1
2 Paket- und Klassenbeschreibung............................................................................................2
2.1 GUI........................................................................................................................................ 2
2.2 View....................................................................................................................................... 2
2.3 Charts.................................................................................................................................... 5
2.4 Controller............................................................................................................................... 6
2.5 Model..................................................................................................................................... 6
2.6 Entities................................................................................................................................... 7
2.7 Ebean.................................................................................................................................... 8
2.8 Data..................................................................................................................................... 10
2.9 Images................................................................................................................................. 10
2.10 Properties ......................................................................................................................... 10
2.11 Utilities................................................................................................................................ 11
2.12 Exception........................................................................................................................... 11
2.13 Start................................................................................................................................... 11
3 Bibliotheken............................................................................................................................. 12
3.1 Ebean.................................................................................................................................. 12
3.2 H2 Database........................................................................................................................ 12
3.3 Zip4j..................................................................................................................................... 12
3.4 JFreeChart........................................................................................................................... 12
1 Grundlegender Anwendungsaufbau
Die Desktopanwendnung EPC-Analyser ist mit der Programmiersprache Java entwickelt worden.
Die grafische Benutzeroberfläche der Anwendungen wurde mit Swing-Komponenten aufgebaut.
Zum Erstellen der verschiedenen Diagrammtypen innerhalb der Swing-Benutzeroberfläche wurde
die Chart-Bibliothek „JFreeChart“ verwendet. Wichtiges Element der Anwendung bildet die Java
SQL-Datenbank „H2 Database Engine“, in der die Simulationsdaten gespeichert werden.
Der Aufbau der Anwendung orientiert sich an der klassischen Model-View-Controller-Architektur.
Die Java-Klassen sind dabei in folgenden Funktionsspezifischen Pakete unterteilt:
Funktion
Paket
Präsentation
de.progovis.epc.analyser.gui
de.progovis.epc.analyser.gui.view
de.progovis.epc.analyser.gui.charts
Modell
de.progovis.epc.analyser.model
Steuerung
de.progovis.epc.analyser.controller
Geschäftslogik / Datenberechnung
de.progovis.epc.analyser.data
de.progovis.epc.analyser.entities
de.progovis.epc.analyser.ebean
Unterstützende Pakete
de.progovis.epc.analyser.images
de.progovis.epc.analyser.properties
de.progovis.epc.analyser.utilities
de.progovis.epc.analyser.exception
de.progovis.epc.analyser.start
1
2 Paket- und Klassenbeschreibung
2.1 GUI
Im Paket GUI befindet sich die Klassen die das Grundgerüst der grafischen Benutzeroberfläche
(Abk. GUI für graphical user interface) darstellen.
GUI_Chosser_Export
•
Dialogfenster zum Speichern von Dateien.
GUI_Chosser_Import
•
Dialogfenster zum Öffnen/Importieren von Dateien.
GUI_MainFrame
•
Stellt die Hauptklasse der Benutzeroberfläche (JFrame) dar.
GUI_Menu
•
Enthält das Menü, das sich oben in der Anwendung befindet.
GUI_StatusBar
•
Enthält die Statusleiste, die sich unten in der Anwendung befindet.
GUI_PopupMenu
•
Kontextmenü (rechte Maustaste) der Anwendung.
GUI_Window
•
Wird nur für das Beenden der Anwendung über das Anwendungsfenster verwendet.
Custom_ListenerAdapter
•
Methoden-Adapterklasse und wird von GUI_Window geerbt.
2.2 View
Im Paket View befindet sich die Klassen die den Inhalt der grafischen Benutzeroberfläche
darstellen. Folgende Klassen werden nur einmal zum Anwendungsstart initialisiert.
View_Startseite
•
Startseite der Anwendung.
•
Menü ► Fenster ► Startseite
View_Datenverwaltung
•
Zeigt das Datenverwaltungsformular und Ausgabefenster (JTextArea).
•
Menü ► Fenster ► Datenverwaltung
View_Datenanlyse
•
Zeigt das Analyseformular und das Analysefenster (JTabbedPane).
•
Menü ► Fenster ► Datenanalyse
View_Logo
2
•
Zeigt das TH-Wildau und PROgoVIS Logo.
•
Wird der in den Klassen View_Datenverwaltung und View_Datenanlyse verwendet.
Die nächsten View-Klassen stellen die verschiedenen Analysevarianten dar, die nach der Auswahl
in dem Analysefenster der Klasse View_Datenanlyse angezeigt werden. (Controller_Name ►
Model_Name ► View_Name)
View_Event
•
Analyseansicht eines Ereignisses
View_Join
•
Analyseansicht eines Konnektors
View_Kpi
•
Analyseansicht einer KPI
View_Master_Overview
•
Analyseansicht einer Mastergruppe
•
Analyseansicht einer Route
View_Master
•
Analyseansicht einer Master Entität
View_Overview
•
Übersicht eines Prozessmodells
View_Process
•
Analyseansicht einer Funktion
View_ Queue_Process
•
Analyseansicht der Warteliste einer Funktion
View_Queue_Slave
•
Analyseansicht der Warteliste einer Ressourcengruppe
View_Route_Overview
•
Analyseansicht aller Routen einer Mastergruppe
View_Slave_Overview
•
Analyseansicht einer Ressourcengruppe
View_Slave
•
Analyseansicht einer Ressource
View_Summary
•
Übersicht mehrerer Simulationsergebnisse eines Prozessmodells
Zusätzlich befinden sich in dem View Paket mehrere Customize-Klassen die für die spezifische
Gestaltung der Anwendung genutzt werden.
3
Custom_AnalysisPanel
•
Grundgerüst eines individuell einstellbares JPanel mit mehreren Anzeigefelder.
•
Wird von allen Analyse Views geerbt.
Custom_ButtonTabComponent
•
Klasse ermöglicht das Schließen von Tabs im Analysefenster (JTabbedPane).
•
Wird von Custom_JTabbedPane verwendet.
Custom_FilterUtilities
•
Statische Methoden für definierte Abstände von JComponents.
•
Wird für die Erstellung des Analyseformulars in View_Datenanlyse verwendet.
Custom_JSplitPane
•
JSplitPane mit spezifischen Eigenschaften.
•
Wird von den Klassen Custom_AnalysisPanel und Custom_MainJSplitPane verwendet.
Custom_JTabbedPane
•
JTabbedPane mit spezifischen Eigenschaften.
•
Wird als Analysefenster in View_Datenanlyse verwendet.
Custom_JTable
•
JTable mit spezifischen Eigenschaften.
•
Wird von allen Analyse Views verwendet.
Custom_JTextArea
•
JTextArea mit spezifischen Eigenschaften.
•
Wird als Ausgabefenster in View_Datenverwaltung verwendet.
Custom_MainJSplitPane
•
Grundgerüst einer individuell einstellbaren JSplitPane mit mehreren Anzeigefelder.
•
Wird von View_Datenverwaltung geerbt.
Custom_ViewUtilities
•
Statische Methoden für definierte Abstände von JComponents.
•
Wird von allen View Klassen verwendet.
4
2.3 Charts
Insgesamt werden vier verschiedene Diagrammtypen verwendet. Die Diagramme wurden mit Hilfe
der Diagramm Bibliothek JFreeCharts (3.4 JFreeChart) entwickelt. Die Chart-Klassen haben keine
Model-Klassen da die Models (Dataset) in den Chart-Klassen selber erzeugt werden.
Chart_BarCategory
Chart_LineCategory
Chart_StackedBarCategory
5
Chart_StepLineTime
2.4 Controller
Controller sind für die Verarbeitung von Benutzer Eingaben verantwortlich und setzen View- und
Model-Klassen in Verbindung. Jede Controller-Klasse ist für eine View-Klasse zuständig.
Controller_Name (Analysename)
•
Controller_Name ► Model_Name ► View_Name
•
Controller Master_Overview und Controller_Route haben die gleichen View und Model
Klassen. Die Analysedarstellung für Mastergruppen ist gleich der einer Route.
•
Die Klasse Controller_Menu ist für die Klasse GUI_Menu im Package GUI zuständig
Interface_Controller
•
Wird von den Controller Klassen implementiert damit die Methode „refreshView()“
verwendet werden muss. Die Methode wird dann in allen Controllern beim verändern der
Sprache oder des Zeitformats aufgerufen.
2.5 Model
Im Paket Model liegen die Klassen mit DefaultTableModel für die JTable in den Analyse View
Klassen.
Model_Name (Analysename)
•
Controller_Name ► Model_Name ► View_Name
Model_Datenanalyse
•
DefaultComboBoxModels für das Analyseformular der Klasse View_Datenanlyse.
6
2.6 Entities
Im Paket Entities liegen die Datenobjekte die zum Speichern und Verteilen der Berechnungsergebnisse innerhalb der Anwendung genutzt werden.
7
Bei der Berechnung eines Prozessmodells wird immer ein Datenobjekt der Klasse
Entity_Overview generiert. Über Array Listen werden dann die Verbindungen zu den anderen
Datenobjekten hergestellt. Diese Datenobjekte werden nicht in die Datenbank gespeichert.
Ein Beispiel zum Aufbau der Datenobjekte: Ein Prozessmodell (Entity_Overview) kann mehrere
Mastergruppen (Entity_Master_Overview) besitzen. Eine Mastergruppe kann wiederum aus
mehreren Master Entitäten (Entity_Master) bestehen. Eine Master Entität setzt sich dann
zusammen aus allen Stationen (Entity_Master_Cmds) die beim durchlaufen durch das
Prozessmodell passiert wurden. Um den Typ der Station (z.B. Funktionen oder Ereignisse)
zuordnen zu können besitzt jede Station eine Bezeichnung bzw. Attribut (enum: MasterCmds).
Dieses Bezeichnungen werden in den Analysetabellen als Aktion dargestellt.
2.7 Ebean
Im Ebean Paket liegen alle Klassen zum Speichern der Daten in die Datenbank sowie zum
Auslesen der Daten aus der Datenbank. Verwendet wird hierbei das ORM (Object Relational
Mapping) Werkzeug Ebean (3.1 Ebean).
Ebean_Settings
•
Konfiguration der Datenbankverbindung.
Entity_Conditions
•
Datenobjekt zur Speicherung der init:true Informationen der Cmds-Datei (siehe Tabelle).
Entity_Parameter
•
Datenobjekt zur Speicherung der init:false Informationen der Cmds-Datei (siehe Tabelle).
Entity_Summary
•
Datenobjekt zur Speicherung der Zusammenfassung mehrerer Simulationsvarianten eines
Prozessmodels beim dem Import einer Zip-Datei.
Bean_Conditions
•
Methoden zum Speichern und Auslesen von Daten des Datenobjektes Entity_Conditions
aus der Datenbank.
Bean_Parameter
•
Methoden zum Speichern und Auslesen von Daten des Datenobjektes Entity_Parameter
aus der Datenbank.
Bean_Summary
•
Methoden zum Speichern und Auslesen von Daten des Datenobjektes Entity_Summary
aus der Datenbank.
8
9
2.8 Data
Im Package Data befinden sich alle Klasse, die für die Datenverarbeitung bzw. Datenberechnung
zuständig sind.
Data_Chart
•
Methoden zur Transformation der Ergebnisse für die verschiedenen Diagrammtypen.
Data_Commands
•
Statische String Werte die den Bezeichnungen in der CMDS-Datei entsprechen.
Data_Import
•
Methoden zum Import von Cmds- und Zip-Dateien.
•
Cmds-Datei ► Liste Entity_Conditions und Liste Entity_Parameter (In ► Out)
Data_Overview
•
Berechnungslogik der Anwendung.
•
Methoden zur Berechnung des Prozessmodells.
•
Liste Entity_Conditions und Liste Entity_Parameter ► Entity_Overview (In ► Out)
Data_Summary
•
Methoden zur Berechnung einer Zusammenfassung mehrerer Simulationsvarianten eines
Prozessmodels (Zip-Datei).
•
Liste Entity_Overview ► Entity_Summary (In ► Out)
2.9 Images
Im Paket Images liegen alle Bilder und Icons die in der Anwendung verwendet werden.
2.10 Properties
Die verschiedenen Eigenschaften bzw. Einstellungen der Anwendung werden durch die Properties
Klassen und Dateien verwaltet.
Properties_Color
•
Statische Werte für Farben die in den Tabellen und Diagrammen verwendet werden.
Properties_Database
•
Methoden zur Verarbeitung der Informationen zur Datenbankverbindung.
Properties_File
•
Methoden zum Laden und Speichern der Propertiedateien (*.properties).
Properties_Language
•
Methoden zur Verarbeitung der Sprachdatei.
Properties_Menu
10
•
Methoden zum Speichern der Menü-Einstellungen zur Laufzeit der Anwendung.
Properties_Path
•
Ordnerpfade als statische String Werte.
database.properties
•
Textdatei mit Informationen zur Datenbankverbindungen.
language_de_DE.properties
•
Textdatei für die deutsche Sprache.
language_en_EN.properties
•
Textdatei für die englische Sprache.
2.11 Utilities
Utilities Paket mit unterstützenden Klassen.
Util_File_Export
•
Methoden zum Speichern von Dateien.
Util_File_Import
•
Methoden zum Öffnen von Dateien.
Util_Print
•
Methoden zum Drucken von JComponents.
Util_Timeformat
•
Methoden zum Transformieren von Zeitangaben.
2.12 Exception
Im Paket Exception liegt die Klasse ExceptionLog die dafür sorgt, dass abgefangene
Programmabstürze in eine Logdatei geschrieben werden.
2.13 Start
Im Paket Start liegt die Klasse Start_EPC_Analyser mit der Main-Methode zum Starten der
Anwendung.
11
3 Bibliotheken
3.1 Ebean
Zum Speichern und Auslesen von Daten aus der Datenbank wird Ebean verwendet. Ebean ist ein
Open Source Java-Object Relational Mapping Tool und unter der LGPL Lizenz (GNU Lesser
General Public Licence) verfügbar. Es nutzt JPA Annotations für die Zuordnung und bietet eine
einfache API zum Abrufen und Speichern von Objekten.
•
ebean-2.7.7.jar
•
persistence-api-1.0.jar
3.2 H2 Database
Zum Speichern der Daten wird die dateibasierte Java-SQL-Datenbank H2 im Embedded-Mode
verwendet. Die H2 Database Engine ist Open Source und verfügbar unter der MPL 2.0 (Mozilla
Public License Version 2.0 ) und EPL 1.0 (Eclipse Public License) Lizenz.
•
h2-1.3.173.jar
3.3 Zip4j
Zum Entpacken von Zip-Dateien wird die Open Source Bibliothek Zip4j verwendet. Zip4j ist unter
der Apache Lizenz, Version 2.0 (Apache Licenses) verfügbar.
•
zip4j_1.3.1.jar
3.4 JFreeChart
Zum Erstellen der verschiedenen Diagramme wird JFreeChart verwendet. JFreeChart ist Open
Source und unter der LGPL Lizenz (GNU Lesser General Public Licence) verfügbar.
•
jfreechart-1.0.16.jar
•
jcommon-1.0.20.jar
12