Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Aelitha Was ist Aelitha? • ein Play-by- Spiel •

Ähnliche Präsentationen


Präsentation zum Thema: "Aelitha Was ist Aelitha? • ein Play-by- Spiel •"—  Präsentation transkript:

1 Aelitha Was ist Aelitha? • ein Play-by-eMail Spiel •
• ein anspruchsvolles SciFi-Rollenspiel • • ein Gemeinschaftsprojekt • Spiel läuft seit über vier Jahren ca. 60 Spieler Deutschland, Schweiz, Österreich A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

2 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Projekt-Ziele (1) Neuimplementierung der Spielleiter - Software Kompletter Neuentwurf der Datenbank Übernahme der alten Datenbestände Internationalisierung Java als plattformübergreifende Sprache A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

3 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Projekt-Ziele (2) Einfache Auslieferung – Java Web Start Logging (Java Logging, Trigger) Druckfunktionalität Grundlegende Administrationsfunktionen A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

4 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Projekt-Ziele (3) Gute Performance Möglichst hohe Sicherheit GUI für die Spieler Import und Export von Daten (vCards, Objektdaten) Erstellung verschiedener Objekte (Nebel, Planeten, Asteroiden) Übersicht der Ressourcen / Objekte Diplomatie-Optionen (Datenaustausch unter den Spielern) A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

5 Verwendete Werkzeuge (1)
Eclipse 3.0 Entwicklungsumgebung Linux – Server (Debian) Datenbank, SVN-Repository PostgreSQL Als Datenbank, zuerst später 7.4.6 Subversion, Subclipse / Tortoise Zentrales Repository MindManager Projektplanung, Ideensammlung, Aufgabenzuordnung A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

6 Verwendete Werkzeuge (2)
MS Visio 2003 Diagramme für Planung und Visualisierung Aquastudio / PGAdmin III Datenbankzugriff: Tabellen anzeigen Abfragen durchführen Clay Database Modelling DB-Entwurf, SQL-Erzeugung für Anlegung der Tabellen Borland Together for Eclipse UML-Modellierung FATJAR (Ersatz für ANT) JAR-File - Erstellung mit korrekten Manifest Einträgen A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

7 Getestete Software (1) - und warum Sie nicht verwendet wurde -
Visual Editor Project (VEP) Erstellung grafischer Oberflächen per Drag&Drop Code-Overhead Verleitet zur Verwendung nicht aussagekräftigen Variablennamen unverträglich mit dem verwendeten Layoutmanager und speziellen Komponenten ANT Automatisiert den Build-Prozess (Kompilierung, Signierung, Upload) Generierung der Manifest-Datei nicht wie gewünscht Verbergen der Passworte wurde nicht umgesetzt A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

8 Getestete Software (2) - und warum Sie nicht verwendet wurde -
Doxygen Bessere Dokumentation als mit JavaDoc Spezielle Kommentierungsfunktionen im SourceCode wurden nicht eingesetzt Ausgabe erfolgt nicht wie gewünscht Datenbanksichere Swingkomponenten (SwingSet) Sorgenfreie Datenbankanbindung erhaltene Datenbank-Verbindungen werden nicht frei gegeben erfordert doppelte Abfragen (bei Objekterstellung & vor Schreiben) JAAS (Java Authentication & Authorization Service) Framework für Authentifizierung und Autorisierung zu mächtig / nicht notwendig A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

9 Eigene Implementierungen
Angepasste Tabellen SQL Table (Füllung der Tabelle direkt durch RowSet-Übergabe) Modifizierte JTree – Komponente Eigene Icons Checkboxen A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

10 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Entwürfe der GUI Planung / Erstentwürfe Zeichnungen Powerpoint Spätere Überarbeitung der fertigen Oberfläche Direkt in Eclipse A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

11 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- GUI Entwürfe A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

12 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- GUI Entwürfe A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

13 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- GUI Entwürfe A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

14 Datenbank-Modellierung mit »Clay«
DB-Modellierung war sehr aufwändig. Nachbesserungen immer wieder notwendig trotz intensiver Planungsphase Vergessene Aspekte / Spalten Vereinfachung der Programmierung Vereinfachungen für die komplexen Abfragen wurden bis zum Schluss gesucht A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

15 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- Datenbank-Design Abfragenkomplexität SELECT name, sum(summe) FROM ( SELECT name, sum(amount) AS summe FROM production_asteroid, spec_production WHERE data_asteroid.id_races =? AND production_asteroid.active = true AND data_asteroid.id = id_data_asteroid AND id_spec_productiontype = (SELECT id FROM spec_productiontype WHERE type='Material') AND id_spec_production = spec_production.id GROUP BY name UNION ALL SELECT name, sum(amount) AS summe FROM … ) AS production GROUP BY name ORDER BY name SELECT name, sum(amount) FROM data_asteroid_planet, production_asteroid_planet, spec_production WHERE data_asteroid_planet.id_races=? AND id_data_asteroid_planet = data_asteroid_planet.id AND production_asteroid_planet.active=true AND id_spec_productiontype = (SELECT id FROM spec_productiontype WHERE type='Material') AND id_spec_production = spec_production.id GROUP BY name ORDER BY name A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

16 Datenimport Access  PostgreSQL
Einrichtung einer ODBC-Brücke Komplette Datenübertragung ca. zwei Stunden Probleme / Hindernisse Strukturelle und logische Fehler der alten DB Zusammenfassung verschiedener Spalten in einer Zelle Rechtschreibfehler in der alten DB Weitgehend durch Mapping-Tabellen gelöst Mehrfacherfassung der Daten, ungültige Datensätze A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

17 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
UML & Visio UML Modellierung der logischen Strukturen Klassenbeziehungen Visio Ablaufdiagramme Würfelung eines Planeten Erschaffung eines Sternensystems A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

18 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- UML Sequenzdiagramm A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

19 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
- Würfelung eines Planeten A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

20 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

21 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

22 Aufgetretene Probleme (1)
Elementares Wissen musste erarbeitet werden Wie wechselt man in SWING die Panels in einer GUI JTable, JList, JTree – Darstellung- und Modelanpassung Validierung der Benutzereingaben, Filter usw. Arbeit mit einem zentralen Repository A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

23 Aufgetretene Probleme (2)
Zahlreiche Programmierungsprobleme SUNs Implementierungfehler in Rowsets (Tiger 5). Da die Fehlermeldung – NullPointer Exception - nicht eindeutig war führte der Weg über die Prüfung der eigener Klassen und Dekompilierung der Sun Implementierung zum Auffinden des Problems. Erst danach konnten bestätigende Hinweise im Internet gefunden werden. Fehlerursache Als Locale wurde US-Locale fest einprogrammiert, sonst Nullpointer Exception. Zwei Workarounds: Pro Land eine neue Property-Datei in der JAR-Datei Doppelte Initialisierung A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

24 Aufgetretene Probleme (3)
Doppelte Initialisierung: private CachedRowSetImpl getRowSet() throws SQLException {         try { rowsetUserData = new CachedRowSetImpl(); }         catch( NullPointerException npe ) {             npe.printStackTrace();             // on second try the default bundle should be used             rowsetUserData = new CachedRowSetImpl();         }          return rowsetUserData; } A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

25 Geplante Erweiterungen
Sicherung der Verbindung mit SSL Admin-Bereich Verknüpfung der Planetengenerierung mit der GUI Bessere Modularisierung Programmhilfe JavaHelp oder mit DocBook Drucklösung Freie Reportingsysteme decken die Bedürfnisse nicht ab. Der einfachste Weg wird wohl über HTML sein. Datenexport Textdateien und evtl. PDF / Excel A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

26 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Status Implementierung der angestrebten Funktionen: ca. 60 % - 65 % Ausgeliefert an die Spieler? Nein A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

27 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Aelitha Wir sagen herzlichen Dank an Prof Dr. Hinkelmann für Projektbetreuung und Beratung in Datenbank-Fragen Prof. Kriha für die ausführliche Besprechung des Sicherheitskonzeptes Intelligent Management Solutions für die Bereitstellung von Besprechungsräumen und Beamer Urs Schweri für die Aufbereitung der alten Daten Jan Koutny für die Visualisierung der alten Codeabläufe Andrea Wollens und alle anderen Spieler, die schon seit Jahren mit Begeisterung und Einsatz das Aelitha Universum formen A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann

28 A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann
Externe Komponenten Icons: Look & Feel Layout Manager Navigationsleiste Connection Pooling CachedRowset (Sun) /products/jdbc/download.html#rowset1_0_1 JConsole Java Mail (Sun): /products/javabeans/glasgow/jaf.html A. Wardaschko • M. Brenda • S. Brauch • J. Stoltmann


Herunterladen ppt "Aelitha Was ist Aelitha? • ein Play-by- Spiel •"

Ähnliche Präsentationen


Google-Anzeigen