Aufgabe
  | 
       
Entwicklung einer Abstrakten Syntax und einer Klassenstruktur
für eine Datenstruktur für ein einfaches Projektverfolgungssystem
(ein  Thema aus dem Software-Praktikum).
  | 
  |  | 
     
     
       Aufgabenbeschreibung
  | 
       
         | 
     
     
        | 
       
Neben den festen Größen eines Projekts wie Titel,
Teilnehmer, Zeitrahmen, ..., sollen die einzelnen
Aufgabengebiete und der Zeitaufwand und
Fertigstellungsgrad für die einzelnen
Arbeitspakete verwaltet werden.
  | 
  |  | 
     
     
        | 
       
Ein Projekt wird dabei in mehrere Arbeitsgebiete, manchmal auch
	      ungenau Phasen, eingeteilt. Beispiele sind Einrichten
	      der Arbeitsumgebung, Problemanalyse, Design, Codierung,
	      Testen, Auswahl, Einarbeitung und Installation von
	      Werkzeugen,
	      Dokumentation.
  | 
  |  | 
     
     
        | 
       
Jedes Arbeitsgebiet wird in Arbeitspakete aufgeteilt. Zum Beispiel
	      kann die Einrichtung der Arbeitsumgebung aufgeteilt
	      werden in: Einrichten des CVS-Archivs,
	      Makefile-Erstellung, Installation von Java-Paketen,
	      MySQL installieren und konfigurieren, ...
  | 
  |  | 
     
     
        | 
       
Für jedes Gebiet gibt es einen eindeutigen kurzen Namen und eine Beschreibung.
Der Gesamtaufwand für ein Gebiet soll beim Anlegen eines Gebietes geschätzt werden.
Der Aufwand ist beim Anlegen des Gebietes zu planen.
  | 
  |  | 
     
     
        | 
       
Ein Arbeitspaket hat einen ähnlichen Aufbau wie ein Gebiet.
Es gibt einen kurzen eindeutigen Namen und eine Beschreibung.
Zu jedem Arbeitspaket gehört ebenfalls ein geschätzter Aufwand in
	      Stunden. Dieser ist bei der Definition des Paketes
	      anzugeben. Des weiteren wird ein geschätzter Fertigstellungsgrad
	      in % angegeben, dieser kann jederzeit verändert
	      werden.
  | 
  |  | 
     
     
        | 
       
Zu jedem Arbeitspaket gehört eine Liste von Arbeitsschritten. Mit
	      diesen Arbeitsschritten wird die eigentliche Arbeit
	      an dem Projet dokumentiert. Zu einem
	      Arbeitsschritt gehört das Datum, die
	      Stundenanzahl, der Bearbeiter und eine kurze
	      Arbeitsbeschreibung. Diese Arbeitspakete können
	      ausschließlich zu dem System hinzugefügt werden.
  | 
  |  | 
     
     
        | 
       
Aus den Daten für die einzelnen Arbeitspakete können der tatsächliche
	      Aufwand und die Beziehung zum geschätzten
	      Aufwand für die Arbeitsgebiete und für das
	      Gesamtprojekt berechnet werden.
  | 
  |  | 
     
     
       Ziel
  | 
       
         | 
     
     
        | 
       
eine abstrakte Syntax in Haskell Notation
  | 
  |  | 
     
     
        | 
       
 ein OMT-Diagramm für ein
 geeignetes Datenmodell
  | 
  |  | 
     
     
        | 
       
 eine DTD
  | 
  |  |