Projekt 6 - Dokumentenarchiv

Name _________________________________________________
Abgegeben am _________________________________________________
Aufwand (in h) _________________________________________________
Punkte (max. 24) _________________________________________________
Elektronische Abgabe ___________________________________________Ja/Nein

Anforderungen

Unser Auftraggeber wünscht eine Webanwendung zur Archivierung von Dokumenten beliebiger Art. Diese Dokumente sind möglicherweise PDF, Bilder (PNG, GIF, JPG, ...), Dokumente (DOC, XLS, ODP, ...) aber nicht genau festgelegt, sondern variabel in der Anwendung zu definieren. Zur Klassifikation dieser Dokumententypen gelangt üblicherweise der MIME-Type zur Anwendung. MIME-Typen können im System eingepflegt werden, entsprechende Funktionen (Erzeugen, Ändern und Löschen) sind vorzusehen. Wird ein neues Dokument angelegt, wählt der Benutzer aus einer Liste einen MIME Type aus.

Aus Sicherheitsgründen dürfen nur authentifizierte Benutzer das System nutzen, bei Archivierung eines neuen Dokumentes ist darüberhinaus die Benutzeridentifikation des authentifizierten Benutzers mit dem Dokument abzuspeichern.

Weiters sind mit einem Dokument auch die Attribute Archivierungsdatum, Dokumententitel und ein Kommentar hinterlegt. Darüberhinaus sind mit einem Dokument beliebig viele freie Schlagwörter verknüpft.

Das System erlaubt es, neue Dokumente hochzuladen, zu löschen und zu ändern. Beim Ändern eines Dokumentes sind alle Attribute sowie die Schlagwörter modifizierbar, das damit verbundene Dokument kann allerdings nicht mehr neu hochgeladen und der MIME Type nicht geändert werden. Grundsätzlich sind Formulardaten zu validieren und Eingabefehler anzuzeigen.

Zur Ansicht von Dokumenten ist das Dokumentenarchiv mit 2 Suchfunktionen ausgestattet. Diese Suche ermöglicht die Abfrage aller Dokumentattribute bzw. einer beliebigen Anzahl von Schlagwörtern. Bei Auswahl eines Dokumentes aus der Ergebnisliste wird das Dokument in einem neuen Browserfenster dargestellt oder in der zugeordneten Anwendung (z.B PDF im Browser, DOC in Microsoft Word o.ä.). Da ein großes Datenvolumen zu erwarten ist, sind alle Datensatzlisten (Tabellen) mit einer Funktion zum Blättern bzw. Sortieren auszustatten.

Die Anwendung muß Fehler abfangen und gegebenenfalls dem Benutzer in einer Art präsentieren so daß nach dem Auftreten eines Fehlers ein weiterarbeiten möglich/zumutbar ist.

Technische Anforderungen

  • Deployment erfolgt auf Apache Tomcat 6.x (Lauffähigkeit auf jedem JavaEE 5 Web Container muß aber gegeben sein)
  • Datenbank Apache Derby (mit Berücksichtigung eines möglichen Wechsels auf jede beliebige SQL Datenbank für die ein JDBC Treiber verfügbar ist). Falls Sie Features verwenden die nicht portabel sind, begründen Sie Ihre Entscheidung und dokumentieren Sie welche Aktivitäten bei der Portierung für eine anderes DBMS nötig sein könnten. Da die Datenbankverbindung im Rahmen des Deployments festgelegt wird, ist der JNDI Name jdbc/archive zu verwenden. Die Anwendung erzeugt beim erstmaligen Deployment alle nötigen Tabellen automatisch. Aus organisatorischen Gründen müssen die Dokumente und Schlagworte in getrennten Tabellen verspeichert werden.
  • JavaServer Faces 1.2 (RI von Sun)
  • JSF Komponenten Bibliothek (Siehe Liste mit Vorschlägen unten)
  • Zur Diagnostizierung von Fehlern (Exceptions) ist das Loggingframework log4j mit commons-logging zu verwenden.

Bewertung

Objektmodell

Definieren Sie ein Objektmodell. Dokumentieren Sie dieses Objektmodell mit Hilfe eines UML Klassendiagramms.

Punkte ?

Relationales Modell

Definieren Sie für Ihr Objektmodell ein passendes relationales Modell und dokumentieren Sie es (z.B. Welche Attribute sind auf welche Spalten abgebildet, welche Klassen entsprechen welchen Tabellen, etc.).

Legen Sie passende Constraints für die Tabellenspalten fest (z.B. NOT NULL, max. Länge, min. Länge, etc.), diese Constraints sind auch im Web Interface zu überprüfen!

Punkte ?

Implementation der Datenbankzugriffe und Services

Implementieren Sie Komponenten welche die Persistierung der einzelnen Objektklassen realisieren. Alle Komponenten sind mittels JUnit zu testen!

Punkte ??

Implementation des Web Interface

Wählen Sie eine für die Anforderungen passende UI Komponentenbibliothek und begründen Sie Ihre Auswahl. Achten Sie auf eine optisch gefällige und benutzerfreundliche Implementation der Web Oberfläche! Alle Java Komponenten dieses Bereichs sind mittels JUnit zu testen!

Punkte ??

Tests

Benutzen Sie JUnit um die gesamte Anwendung ausführlich zu testen und halten Sie die Testergebnisse in der Projektdokumentation fest. Für funktionale Tests/Integrationstests stellen Sie ein Skript/eine Funktion zur Verfügung das/die einfach ausgeführt werden kann und ausreichende Daten produziert um die Gesamtanwendung zu testen.

Punkte ?

Projektergebnisse

  • WAR File
  • Java Quellcode als Zip Datei
  • Projektdokumentation (enthält JUnit Test Bericht)

Allgemeines

Es gelten sofern nicht hier anders vereinbart die allgemeinen Festlegungen .

Erläutern sie detailliert ihren Lösungsansatz! Sollten Sie während der Implementation auf Uneindeutigkeiten stoßen so treffen Sie eine sinnvolle Entscheidung zur Beseitigung der Uneindeutigkeit und dokumentieren/begründen Sie Ihre Entscheidung.