Voraussetzungen |
Um an dem Software-Projekt / Praktikum teilzunehmen müssen
die Übungen zu den Veranstaltungen Algorithmen und Datenstrukturen in C
und OOP erfolgreich
abgeschlossen sein.
|
Studienordnung 11.0 oder neuer
|
Für Studierende, die nach der Studienordnung 11.0 oder neuer
studieren, git als zusätzliche Voraussetzung der erfolgreiche Abschluss des Programmierpraktikums.
|
Ausnahmeregelungen |
|
7-semestriges Studium
|
Für Studierende, die im 8. oder höheren Verwaltungssemester sind,
ist nur eine der Übungen zu den Veranstaltungen
Algorithmen und Datenstrukturen in C
oder OOP
Voraussetung für die Teilnahme, da diese Übungen nur jährlich stattfinden.
|
6-semestriges Studium
|
Für Studierende, die im 6.
oder einem höheren Verwaltungssemester an dem Projekt teilnehmen möchten,
entfällt die erfolgreiche Teilnahme an der Veranstaltung
Algorithmen und Datenstrukturen in C,
da diese Übung nur jährlich stattfindet.
|
Organisation |
Für das Praktikum/Projekt gibt es zwei fest eingeplante Stunden
im Semester-Stundenplan. In der ersten Veranstaltung eines Semesters
werden die im Web beschriebenen Themen vorgestellt und vergeben.
Die Themen können mehrfach vergeben werden.
Die Themenvergabe findet ausschließlich in dieser ersten Veranstaltung statt.
Es muß eines der vorgestellten Themen in einer 2-er Gruppe
selbständig bearbeitet
werden. 1-er Gruppen sind nicht möglich, 3-er Gruppen nur dann, wenn
dieses inhaltlich erforderlich ist.
|
|
|
Projekttagebuch |
Für die Projektorganisation wird ein
ein Web-Projekttagebuch eingesetzt werden. In diesem sind die Aufgaben
des Praktikums in Teilaufgaben zu strukturieren, deren Aufwand zu
schätzen und der Projektfortschritt zu dokumetieren und zu protokollieren.
Die Erfahrungen aus den letzten Semestern haben gezeigt, dass viele Studierende
sich weigern, ihr Projekt mit Hilfe dieses Tagebuchs zu organisieren.
Daher gilt folgende Regelung:
Wird das Tagebuch nicht ordnungsgemäß gepflegt, oder ist aus dem Tagebuch abzulesen,
dass keine kontinuierliche Projektarbeit stattgefunden hat, führt dies zum Abbruch des Projekts.
Die Benutzung des Projekttagebuchs wird in der zweiten Woche erklärt.
|
|
|
Projektverlauf |
In der ersten Woche ist ein Aufgaben- und Zeitplan zu erstellen.
Dieser muß mindestens pro Woche die zu bearbeitenden
Teilaufgaben beschreiben. Der Plan ist in das SVN-Archiv einzuchecken.
Ist der Aufgaben- und Zeitplan nicht oder nur rudimentär vorhanden,
wird das Projekt nicht gestartet.
In den ersten zwei bis drei Wochen nach der Themenvergaben
ist das Problem zu analysieren und ein Grobentwurf zu erstellen.
Außerdem ist in dieser Zeit die Projektumgebung einzurichten:
Das SVN-Archiv ist zu erstellen, erste Makefiles auszuprobieren,
Werkzeuge und zu verwendende Fremdsoftware sind zu beschaffen und
zu analysieren.
Nach dieser Phase werden in der Mitte des Projektes
die bis dahin erarbeiteten Resultate
in Einzelpräsentationen vorgestellt. Dieser Meilenstein im Projektplan
bildet gleichzeitig eine Sollbruchstelle: ist zu diesem Zeitpunkt
zu erkennen, daß die Aufgabe nicht ernsthaft bearbeitet worden ist,
so wird das Projekt abgebrochen.
Nach diesem Treffen gibt es keine festen Betreuungstermine mehr.
Betreuungstermine oder Treffen in größeren Gruppen werden nach Bedarf angesetzt.
Um Probleme und Lösungsansätze zu diskutieren, sind Einzeltermine mit den betreuenden
Mitarbeitern zu organisieren.
Entstehen im Projekt wesentliche Verzögerungen gegenüber dem Projektplan,
wird das Projekt abgebrochen,
Spätestens eine Woche vor der Endabnahme ist
das Archiv vollständig zu füllen, so dass das System hieraus
durch einen einfachen Aufruf von make
erzeugt werden kann.
|
|
|
Endabnahme |
Die Endabnahme erfolgt in der letzten Vorlesungswoche.
Die Demonstration und Präsentation der Ergebnisse
erfolgt zusammen mit allen Gruppen, die das gleiche Thema
bearbeitet haben.
Bei der Präsentation ist das Projekt aus dem SVN-Repository auszuchecken
und mit make all
zu generieren und falls notwendig mit make install
zu installieren.
Für die Vorführung sind gute Testfälle vorzubereiten.
Bei dieser Endabnahme wird entschieden, ob das Projekt
erfolgreich durchgeführt wurde, oder ob das Resultat
ungenügend ist. Eine Ausdehnung des Projekts auf die
vorlesungsfreie Zeit ist nicht möglich.
|
|
|
Wiederholung |
Sollte das Ergebnis nicht ausreichend sein, muß das Praktikum
mit einem neuen Thema wiederholt werden.
|
|
|
Technische Randbedingungen |
Als allgemeine technische Randbedingungen für
alle Themen sind folgende Punkte zu beachten:
|
|
|
Versionsverwaltung |
Alle bei dem Projekt entstehenden Dokumente: Quellen,
Dokumentation, Installationsskripte, Makefiles, Beispiele, ...,
sind mit dem Versionsverwaltungssystem SVN
(SVN Hinweise bei Sven Urbanski)
zu verwalten.
Als Resultat ist ein SVN-Archiv abzugeben. Aus diesem Archiv
muß das vollständige System reproduzierbar sein.
In dem Wurzelverzeichnis sind immer eine README-Datei, eine
INSTALL-Datei und ein Makefile zu erstellen.
Die README-Datei
enthält eine Beschreibung, was das System macht, wo die Dokumentation zu
finden ist, welche Systemvoraussetzungen erforderlich sind und welche
zusätzliche Software benötigt wird.
Die INSTALL-Datei beschreibt, wie das System zu installieren und zu
konfigurieren ist.
Der Makefile enthält alle Anweisungen zur Erzeugung des Systems,
zur Dokumentationserzeugung, zum Installieren und zum Deistallieren,
und zum automatischen Testen. (Für alle, die in der Unix & Internet
Veranstaltung krank waren: Dieser Makefile ist
die Beschreibungsdatei für das make Werkzeug.)
Bei Java-zentrierten Projekten können natürlich Java spezifische Werkzeuge, wie Ant, JUnit, Eclipse, ...
verwendet werden. In diesen Fällen enthält der Makefile sinnvollerweise nur einen Aufruf von Ant.
Bei Projekten, die bestimmte Server-Dienste benötigen (z.B. Apache,
mysql), gehört die automatische Konfiguration dieser Dienste ohne
Root-Rechte auf Linux zur Aufgabe.
Aus dem Archiv muß der Projektverlauf nachvollziehbar sein.
Es muß erkennbar sein, welche Person wann welche Dokumente
erstellt oder verändert hat.
Der jeweils aktuelle Stand eines Projektes muss sich jederzeit ohne
grössere Handarbeit durch "make" erzeugen lassen. Die automatische
Installation muss spätestens bis zur Vorführung laufen.
Ist aus dem Archiv ablesbar, daß dieses erst am Ende des Projekts
gefüllt worden ist, wird das Praktikum nicht anerkannt.
|
|
|
Quellen |
Bei der Wiederverwendung von fremden Quellen, sind diese,
auch wenn sie modifiziert werden, zu kennzeichnen.
Sollten in dem Archiv nicht gekennzeichnete fremde Quellen
gefunden werden, so wird das Praktikum nicht anerkannt.
|
|
|
Compilate |
Bei compilierten Programmiersprachen, z.B. Java,
muss der Code den
Compiler bei maximal eingestellten Warnungen ohne Beanstandungen
passieren. Ausnahmen müssen mit den Betreuern abgesprochen werden.
|
|
|
Entwurf |
Für den Software-Entwurf sind OO-Techniken zu verwenden. Die
Dokumentation ist mit Hilfe von Diagrammen mit der OMT- oder UML-Notation
zu erstellen. Für den Entwurf sind Entwurfsmuster nach
[Gamma]
oder Modelle mit einer Abstrakten Syntax in Haskell-Notation (aus der Software-Design Vorlesung) einzusetzen.
|
|
|
Dokumentation |
Sämtliche Dokumentation ist in HTML-Form zu erstellen.
Für Java-Projekte ist für die Dokumentation der Quellen
javadoc zu verwenden. Die Dokumentation kann auch mit HTML-erzeugenden
Werkzeugen, z.B gnuinfo oder latex2html erstellt werden.
|
|
|
Umgebung |
Die technischen Randbedingungen und die Umgebung, in der
die Software laufen soll, werden in den konkreten Themenstellungen
festgelegt.
Aufgaben, die in 100% pure Java zu erstellen sind, müssen auf
allen Java-Plattformen lauffähig sein (auch wenn sie unter Windows
entwickelt werden). Insbesondere die Thread-Programmierung und
die grafischen Oberflächen sind hier zu berücksichtigen.
|
|
|
|
|
|
Viel Erfolg bei der Bearbeitung
Uwe Schmidt
|
|