Programmierpraktikum, Winter 2009 / 2010

Motivation

Praktikumsleiter

Praktikumsleiter ist Max Berger. Hier gibts Hinweise, Max Berger zu treffen.

Ablauf

  • Die Studierenden werden in Gruppen eingeteilt.
    • Gruppenwünsche werden soweit wie möglich berücksichtigt.
    • Eine Gruppe wird wahrscheinlich aus 2 oder 3 Studierenden bestehen.
  • Jede Gruppe wählt ein Thema aus der Liste der Themen.
  • Jedes Thema wurde von einem "Kunden" in Auftrag gegeben. Die Gruppenteilnehmer setzen sich selbstständig mit ihrem Kunden in Verbindung, um von diesem die genauen Anforderungen zu bekommen.
  • Im Laufe des Semesters ist das angegebene Projekt zu implementieren.

Kundeninteraktion

  • Ein Kunde ist einer der Mitarbeiter an unserem Lehrstuhl
  • Sofern nicht Projektabhänging verändert ist der Kunde nur am lauffähigem Programm (bzw. der API) interessiert. Quellcode wird nicht vom Kunden, sondern vom Praktikumsleiter geprüft!
  • Der Kunde interessiert sich nicht für die Implementierungsdetails, sondern nur für das Endpodukt!
  • Es sind mindestens 3 Treffen mit dem Kunden vonnöten:
    Pflichtenheft
    Beim ersten Treffen erfrägt das Team vom Kunden die Anforderungen. Darauf basierend erstellt das Team ein Pflichtenheft, welches vom Kunden genehmigt wird (kann per email passieren)
    Für das Pflichtenheft ist keine besondere Form von nöten, eine Stichpunktsammlung ist akzeptabel.
    Zwischendemo
    Bei der ersten Demo zeigt das Team dem Kunden eine lauffähige Version. Auf Basis der Demo werden die Anforderungen überarbeitet und das Pflichtenheft aktualisert. Auch die aktualiserte Version wird vom Kunden abgezeichnet.
    Finale Demo
    Bei der finalen Demo führt das Team das Projekt vor, und es wird vom Kunden "abgenommen".

    Die Demos müssen vom einem frischen checkout laufen, auf einer Maschine die nicht dem Entwicklerteam untersteht!

    Mehr Treffen / Demos mit dem Kunden können vereinbart werden, sofern dies vom Team oder vom Kunden gewünscht wird.

Projektserver

Als Projektserver steht goedis.dps.uibk.ac.at zur Verfügung. Jedes Team erhählt dort einen Account (dps00x), in dem ein Mercurial Repository zu erstellen ist und eine Projekthomepage mittels Maven erstellt wird.

  • Als Mercurial Verzeichnis kann "hg" verwendet werden.
  • Die Webseite muss in public_html liegen und ist dann unter http://goedis.dps.uibk.ac.at/~dps00x/ erreichbar.
  • Der Server ist nur für Projektbezogene Arbeiten zu verwenden!

Termine

Entgegen der Ankündigung im LFU findet das Praktikum nicht jede Woche statt, es wird mehrere Vortragstermine geben. Bei jedem Vortragstermin präsentiert das Team den aktuellen Stand.

Achtung: Die Terminliste ist als vorläufig anzusehen. Änderungen vorbehalten!

  • 8.10., 10:15 - 12:00, SR24, Einführung und Themenvorstellung (durch den Praktikumsleiter). Einführung in die zu verwendenden Tools und Qualitätsmetriken.
  • 22.10. Initialpräsentation
  • 19.11. Zwischendemo 1
  • 17.12. Zwischendemo 2
  • 4.2. Abschlusspräsentationen

Zusätzlich sind Treffen mit dem dem Kunden und evtl. dem Praktikumsleiter notwendig.

Benotung

Die Benotung setzt sich zusammen aus:

  • Präsentationsnoten
  • Qualität des Quellcodes (anhand vorgestellter Softwaremetriken)
  • Bewertung durch den Kunden

Dabei werden Teilnoten von 1 - 5 vergeben, das gemittelte Ergebnis wird kaufmännisch gerundet.

Voraussetzungen

Soweit im Thema nicht anders verlangt, ist die Programmiersprache Java zu verwenden. Als Projektmanagement wird Maven verwenden, als Revisionskontrollsystem Mercurial.

Voraussetzung für eine Teilnahme ist ein erfolgreicher Abschluss der Vorlesungen und Übungen zu Programmiermethodik 1 - 3. Ein erfolgreicher Abschluss von Programmiermethodik 4 ist erwünscht.

Themen

Die Liste der Themen ist:

Hier gibts die Themen als PDF.

Tipps

Praktische Java Tipps (PDF).

Praktische Java Tipps (online Version).

Benotungskriterien

Folgende Schritte sind für die Benotung sehr gut verpflichtend:

  • Mercurial repository auf goedis vorhanden, aktueller code im "tip"
  • Maven build funktioniert auf einem system ohne vorinstallation. Sollte eine vorinstallation notwendig sein, so finden sich alle libraries und passende installationsskripte im repository
  • Checkstyle.xml ist vorhanden und beschreibt einige Regeln. Checkstyle report ist konfiguriert. Der Code hat 0 checkstyle Fehler.
  • Findbugs, PMD, NCSS sind as report konfiguriert. Findbugs und PMD fehler beschränken sich auf ein minimum
  • Webseite ist in der pom.xml konfiguriert. Eine Maven-Webseite ist erzeugt und auf goedis hochgeladen. Diese ist aktuell!
  • Das Programm laesst sich OHNE ide ausfuehren (z.b. webstart, oder run-skripte, etc.

Hinweise

  • Auf Goedis ist das home-directory nicht traverable, daher erscheinen die webseiten nicht: chmod o+x $HOME.
  • SCM einstellung im pom.xml fuer mercurial (angenommen das Mercurial verzeichnis ist $HOME/hg):
  • Automatische Website auf goedis:
    In der pom.xml:
    Dann sollte noch eine Datei auf dem lokalem rechner in $HOME/.m2 namens settings.xml erzeugt werden. Hier eine Beispiel settings.xml für goedis (ist natürlich anzupassen).
    Nun reicht ein einfaches mvn site-deploy zum erzeugen und hochladen der webseite.
  • Mercurial for Windows + Anmeldung und Synchronisierung mit goedis.dps.uibk.ac.at

    Dank an: Romedius