UniKL Logo

Lehrgebiet Informationssysteme

FB Informatik

FB Informatik
 
LG IS
AG DBIS
AG HIS
Jobs / Tasks
Courses
SWP
2003
Start / Aktuelles
Neue Infos
Hiwi-Sprechstunden
Kontakt
Allgemeine Informationen
Gruppenseiten
Aufgabenbeschreibung
Aktuell:
SWP 2003
Archiv:
SWP 2002
Publications
Contact
Misc
Impressum
(C) AG DBIS
 

Softwarepraktikum im Sommersemester 2003
Grundlagen betrieblicher Informationssysteme

Subsections

3 Hinweise und Richtlinien

3.1 Abgaben & Besprechungen

3.1.1 Besprechungen

Zu den Besprechungen sollen immer drei von einer Gruppe kommen, und zwar aus jedem Zweier-Team einer. Die Zweier-Teams wechseln sich ab, so dass am Ende jeder ungefähr gleich oft bei einer Besprechung teilgenommen hat.

3.1.2 Abgaben

Für jede Aufgabe gibt es einen bestimmten Abgabetermin. Für manche Aufgaben auch einen Zwischenabgabetermin. Eine Übersicht findet sich in Abschnitt 6. Ungefähr zwei Tage nach jeder (Zwischen)abgabe wird diese besprochen.

3.1.2.1 Zwischenabgaben

Die Zwischenabgaben sind nicht bewertet. Mit ihnen soll festgestellt werden, wie gut das Praktikum bei den einzelnen Gruppen vorangeht. Bei Problemen kann so rechtzeitig eigegriffen werden. Der Abgabetermin soll eingehalten werden, es ist natürlich nicht notwendig, zu diesem Zeitpunkt schon vollständige Dokumente zu haben.

3.1.2.2 Abgaben

Die Abgaben fließen mit in die Gruppenbewertung ein. Bei einer verspäteten Abgabe werden 25% der Punkte abgezogen, bei mehr als einem Tag Verspätung 50%, bei mehr als zwei Tagen 100%.

3.1.2.3 Format

Alle Dokumente müssen in einem druckbaren Format (Postscript oder PDF) bis zum Abgabetermin an den jeweiligen Betreuer der Gruppe geschickt werden (Gruppennumer bei der Abgabe nicht vergessen!).

Nach der Besprechung werden die Abgaben im Web (Uni-intern) veröffentlicht. Details hierzu finden sich in Abschnitt 3.2.


3.2 Veröffentlichen der Abgaben im Web

Für jede Gruppe wird ein Verantwortlicher bestimmt, auf dessen Account ein eigenes lokales WWW-Verzeichnis für Dokumentationen angelegt wird. Die Einstiegsseite wird dann über einen Link auf der zentralen Seite zugänglich gemacht. Die Seiten können lokal von allen gelesen werden, sind aber nicht im gesamten WWW verfügbar. Besonders ist darauf zu achten, das die Dateirechte richtig gesetzt werden. Siehe auch Abschnitt5

Auch das Bereitstellen der Abgaben im Web gehört zum Praktikum!.

3.3 Allgemeine Entwurfshinweise

Sie sollten, wenn möglich, Design Patterns einsetzen. Einige Beispiele für Design Patterns sind hier genannt.

  • Erzeugungsmuster
    • Abstrakte Fabrik (Abstract Factory)
    • Erbauer (Builder)
    • Singleton
  • Strukturierungsmuster
    • Adapter
    • Fliegengewicht (Flyweight)
  • Verhaltensmuster
    • Beobachter (Observer)
    • Besucher (Visitor)
    • Strategie (Strategy)

In Abschnitt 4 sind einige Verweise zu Webseiten über Design Patterns aufgelistet. Der Aufwand, sich einige Patterns mal anzuschauen lohnt sich. Es ist besser, schon bekannte und erfolgreiche Lösungen zu verwenden, als das Rad neu erfinden zu müssen. Ein Hinweis in der Dokumentation auf die Verwendung eines Patterns wird es anderen Entwicklern sehr erleichtern, sich in den Code einzuarbeiten.

Es müssen natürlich nicht alle der genannten Muster eingesetzt werden, und möglicherweise findet man ein nützliches, aber hier nicht aufgeführtes Muster, das man auch einsetzen kann.

3.4 Hinweise zu den Komponenten

3.4.1 DB-Zugriffskomponente und Generator-Komponente

Versuchen Sie, folgender Intention zu folgen:

  • Trennung zwischen der Strategie zur Erzeugung und dem Vorgang der eigentlichen Erzeugung, sowie der tatschlichen Repräsentation von Objekten,
  • Abstraktion von konkreten Tabellen des DB-Schemas und der Anfragesprache SQL,
  • Kapselung der Datenbankschnittstelle, um später auch andere DBS unterstützen zu können.

3.4.2 Grafische Benutzeroberfläche

Die grafische Benutzerschnittstelle sollte nicht nur die Möglichkeit geben, die Verarbeitung zu starten, zu beenden und zu unterbrechen, sondern auch Informationen über deren Fortschritt zur Verfügung stellen. Dazu ist es notwendig, etwas über den Zustand anderer Klassen, bzw. ihrer Objekte zu erfahren. Beachten Sie aber die Kapselung der Objekte! Prüfen Sie daher auch die Einsatzmöglichkeit des Observer-Patterns. Java bietet dafür spezielle Unterstützung.

3.4.3 Visualisierungs-Komponente

Es ist eine Komponente zu erstellen, die den Inhalt der erzeugten Datenbank visualisiert. Sie kann eingesetzt werden, um die Datenbank gegen die Anforderungen aus der Spezifikation zu validieren. Hierbei ist zweierlei zu beachten.

Zum einen soll die Verteilung der Attribute überprüft werden. Es sollte daher möglich sein, statistische Information über das Minimum, das Maximum, den Mittelwert, Anzahl der von Null verschiedenen Tupel und Anzahl der voneinander verschiedenen Werte zu erhalten. Anhand einer entsprechenden grafischen Darstellung soll ferner gezeigt werden, dass die gewählte Zufallsfunktion wirklich eine Gleichverteilung der Attributwerte erzeugt, d. h. jede Ausprägung ist mit ungefähr der gleichen Anzahl vorhanden. Zur Darstellung sind geeignete Diagramme anzubieten (z. B. Torten-, Linien-, Balken- oder Blockdiagramme) und dem Benutzer zur Auswahl anzubieten. Da es gilt, eine sehr große Anzahl von Daten auszuwerten, sind sinnvolle Maßnahmen zur Skalierung vorzusehen. Auch die Auswahl eines Anzeigebereichs (Zoom-Funktion) erscheint hier sinnvoll. Stichproben, also die Auswahl eines zufälligen Tupels aus einer vorgegeben Tabelle, sollten ebenso unterstützt werden wie die gezielte Auswahl anhand einer ID. Die grafischen Elemente und Realisierungsaspekte sind dabei allerdings der grafischen Benutzeroberfläche zuzuordnen.

3.4.4 Metadaten-Verwaltung

An verschiedenen Stellen des Systems ist es notwendig, auf Informationen über das zugrundeliegende Schema zuzugreifen. Beispielsweise soll in der GUI bei der Visualisierung der Daten bei Auswahl einer Tabelle automatisch eine Auswahlbox mit den zugehörigen Attributen gefüllt werden. Es hat sich hier als äußerst praktisch erwiesen, diese Metadaten in einer eigenen Hilfskomponente bereitzuhalten, die bei Bedarf diese Informationen liefern kann. Da es sich dabei um Schemainformationen handelt, wird diese Komponente sinnvollerweise der DB-Komponente angegliedert. Die Implementierung kann in einer recht primitiven Weise erfolgen, jedoch sollte dabei darauf geachtet werden, dass Änderungen im Schema nachgezogen werden müssen.

3.5 Richtlinien zu Dokumentation, Entwurf und Implementierung

3.5.1 Grundprinzipien

Verständliche Darstellung
Dazu gehört eine angemessene Notation und Struktur, sowie vollständige und konsistente Dokumente.

Minimale Darstellung
"`Minimal"' bedeutet in diesem Zusammenhang die Beschränkung auf das Wesentliche. Wenn z.B. etwas wunderbar in einer Strichliste dargestellt werden kann, muss man keinen seitenlangen Prosatext schreiben. Auf der anderen Seite muss natürlich darauf geachtet werden, das keine wichtigen Punkte ausgelassen werden!

Modulare Struktur
Modularisierung sollte in ausreichendem Maße in den Vorlesungen besprochen worden sein. Zur Erinnerung, nochmal einige Punkte:
  • Divide and Conquer
  • Minimale Kopplung von Komponenten
  • Maximale Kohäsion von Komponenten
  • Beachtung des Geheimnisprinzips

Vertikale Verfolgbarkeit
Verschiedene Dokumente unterschiedlichen Abstraktionsgrades müssen zueinander konsistent sein. Beziehungen zwischen Anforderungen, Entwurf und Realisierung müssen klar und explizit dokumentiert werden. Ein Beispiel sind Variablen- und Klassenbezeichner: in jeder Phase müssen die gleichen benutzt werden.

Horizontale Verfolgbarkeit
Verschiedene Sichten innerhalb einer Abstraktionsebene müssen nachvollziehbar und konsistent sein. (Beispielsweise muss im Klassendiagramm und in der Beschreibung des Verhaltens Namenskonformität herrschen.)

Dokumentation der Verifikation

  • Dokumentation der Verifikation des Entwurfs gegen die Anforderungen.
  • Dokumentation der Verifikation des Programmkodes gegen den Entwurf.
Dokumentation der Validation
Dokumentation der Validation des ausführbaren Systems gegen die Anforderungsbeschreibung (Spezifikation)

3.5.2 Dokumentation des Entwurfs

  • Es wird ein objektorientierter Entwurf erwartet.
  • Es ist ein Klassendiagramm zu erstellen und eine Darstellung nach UML zu wählen.
  • Es sind die Schnittstellen der Klassen zu definieren.
  • Es ist die Funktion einer Klasse und das Verhalten ihrer Methoden kurz zu erläutern.
  • Die Abhängigkeiten zwischen einzelnen Komponenten bzw. Klassen sind zu dokumentieren.
  • Die System-Entwurfs-Beschreibung sollte kurz, aber prägnant sein und alles wichtige enthalten. Implementierungsdetails haben im Entwurf nichts zu suchen.

3.5.3 Dokumentation und Formatierung des Codes

Es ist der Quelltext in einer für das Verständnis hinreichenden Art und Weise zu dokumentieren. Der Quelltext ist so mit Anmerkungen zu versehen, da mit Hilfe des JDK-Tools "`javadoc"' automatisch eine Dokumentation in HTML erstellt werden kann. Diese Dokumentation ist im lokalen WWW-Verzeichnis dem Betreuer zugänglich zu machen. Die Dokumentation beschränkt sich nicht nur auf die Signatur, sondern bezieht sich auch auf Anweisungen innerhalb von Methoden. Es sollen wichtige Stellen im Quelltext erläutert werden (beispielsweise Fallunterscheidungen, Schleifen o. ä.), um die Lesbarkeit zu erhöhen.

Die Java Code Conventions (Verweis in Abschnitt 4 geben Richtlinien vor, wie bei der Formatierung und Dokumentation von Code vorgegangen werden soll. Es muss sich nicht zwingend an dieses Format gehalten werden, jedoch soll das Code-Format einer jeden Gruppe konsistent sein!

3.5.4 Änderungen in späteren Entwicklungsphasen

In diesem Praktikum wird nach dem Wasserfallmodell vorgegangen, d.h. Entscheidungen aus früheren Phasen können nicht mehr Rückgängig gemacht werden. Diese Handhabung ist etwas zu strikt, und kann das weiterkommen unnötig erschweren, falls ein Fehler entdeckt wird.

Wenn in einer späteren Phase (z.B. Implementierung) schwere Fehler oder Probleme auftreten, die durch Entscheidungen in einer früheren Phase (z.B. Entwurf) resultieren, ist es unter Umständen möglich, hier eine Korrektur zu machen. Diese Korrekturen müssen dokumentiert werden und sind vorher mit dem Betreuer abzusprechen.