Software-Projekt

Hinweise und Richtlinien für das Software-Projekt

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