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
© Copyright 2024 ExpyDoc