8. Konzepte

Diese Kapitel beschreiben vor allem querschnittliche Aspekte, die das gesamte System betreffen bzw. nicht eindeutig zu bestimmmten Teilen zugeordnet werden können.

Ein wichtiges Ziel ist es, auf die Verwendung von Bibliotheken und Frameworks von Drittanbietern weitgehend zu verzichten. Stattdessen sollen die Standardschnittstellen des JDK bzw. JEE-Containers zur Realisierung des Projekts verwendet werden. Der Zweck dieser Maßnahme ist es, dem Wildwuchs von Abhängigkeiten vorzubeugen. Die Abweichung von dieser Vorgabe darf nur in Absprache mit dem Softwarearchitekten erfolgen.

8.1 Fachliche Strukturen und Modelle

Das folgende Bild zeigt das Domänenmodell des Tangokalenders. Darin wird ersichtlich, dass es auch (Mehrfach-)Veranstaltungen gibt, welche sich aus (Einzel-)Veranstaltungen zusammengesetzen. Dieser Sachverhalt wird durch die Domänenobjekte SingleEvent und MultiEvent abstrahiert.

Domänenmodell

8.2 Persistenz

Für die dauerhafte Speicherung von Veranstaltungsdaten wird OR-Mapping unter Einsatz von JPA verwendet. Das entsprechende Framework wird durch den verwendeten JEE-Container bereitgestellt. Bei der Implementierung ist, soweit möglich, auf die Verwendung herstellerspezifischen Erweiterungen zu verzichten. Stattdessen dürfen nur Annotations aus dem JPA-2 Standard verwendet werden.

8.3 Benutzerschnittstellen

Die Schwerpunkte bei der Erstellung von Benutzerschnittstellen hängt von der jeweiligen Zielumgebung ab. Für die Verwaltung von Veranstaltungsdaten wird eine browser-basierte Oberfläche angestrebt, die dem Anwender eher das Gefühl eines Rich-Client vermittelt. Der Fokus bei der Darstellung der Daten im Veranstaltungskalender liegt klar auf der Optimierung der Ausgabe für mobile Endgeräte.

8.4 Ergonomie

Die Benutzschnittstellen der mobilen Endgeräte lassen sich vollständig über Berührungen und Gesten steuern. Dabei müssen mindestens 80% der am Markt verfügbarer Smartphones mit unterschiedliche Displaygrößen unterstützt werden.

8.5 Ablaufsteuerung

 

8.6 Transaktionsbehandlung

Bei der Transaktionverwaltung wird auf die Mechanismen des JEE-Containers zurückgegriffen. Auf das manuelle Starten und Beenden von Transaktionen soll verzichtet werden.

8.7 Sessionbehandlung

Die Verwaltung von Veranstaltungen erfolgt nach Authentifikation durch den Benutzer. Diese Anmeldung wird in einer Session zwischengespeichert. Die Session wird beim Abmelden der Benutzers beendet. Außerdem wird die Session automatisch nach 30 Minuten beendet, falls der Benutzer keine Aktionen am System vornimmt.

8.8 Sicherheit

 

8.9 Plausibilisierung und Validierung

 

8.10 Ausnahmen- und Fehlerbehandlung

Beim der Ausnahmen- und Fehlerbehandlung werden 2 Arten von Exceptions unterschieden.

  1. Fachliche Exceptions (z. B. ungültiger Wert im Eingabefeld)
  2. Technische Exceptions (z. B. Datenbank nicht verfügbar)

8.11 Management des Systems und Administrierbarkeit

 

8.12 Logging, Protokollierung, Tracing

Das Logging von Ereignissen erfolgt mit der Logging API von Java. Das Standard-Log-Level für den Betrieb ist INFO. Log-Ausgaben zu Debug-Zwecken müssen darum mit dem Log-Leveln: FINEST, FINER und FINE erfolgen. Die Menge der zu loggenden Informationen sollte mit Augenmaß erfolgen, um auf diese Weise unnötig große Log-Dateien im laufenden Betrieb zu vermeiden.

8.13 Geschäftsregeln

 

8.14 Konfigurierbarkeit

 

8.15 Internationalisierung

Die Mehrsprachigkeit des System ist ein wichtige Anforderung. Zur Umsetzung wird die in Java eingebaute i18n-Unterstützung verwendet. Die Localisierung erfolgt durch den Einsatz von Resource-Bundles, die in Abhängigkeit der ausgewählten Spache automatisch selektiert werden. Als Standardsprache wird Englisch voreingestellt.

8.16 Testbarkeit

 

8.17 Skalierung