Lehrveranstaltungen
Softwarepraktikum
Softwarepraktikum (SS 09) - DurchführungAufgabenstellungen und Praktikumsbetreuung
Im Softwarepraktikum sollen auf der Basis eines vorgegebenen Frameworks Java-Anwendungen erstellt werden.
Jeder Praktikumsgruppe wird eine konkrete Aufgabenstellung und ein Tutor zugeordnet. Der Tutor tritt im Allgemeinen sowohl als softwaretechnischer Betreuer als auch als Kunde auf. Im jalgo-Praktikum gibt es einen realen Kunden.
Der Tutor führt wöchentliche Pflichtkonsultationen durch, die Termine dafür (Uhrzeit/Raum) werden in Absprache zwischen Team und Tutor individuell festgelegt. Darüberhinaus ist jeder Student verpflichtet, sich regelmäßig auf den Praktikums-Webseiten und im Forum über aktuelle Themen zu informieren.
Projektphasen
Einarbeitung (06.04.2009-12.04.2009)
Ziel der Einarbeitungsphase (ca. 1 Woche) ist es
- das Team zu organisieren und das Projekt vorzubereiten (Webseite, SVN);
- sich mit dem entsprechenden Framework (SalesPoint, WebPoint, j-algo) vertraut zu machen
- anhand des einführenden Beispiels die Beispielanwendung "Videoautomat" nachzuvollziehen bzw. selbst zu entwickeln (im Fall von SalesPoint und WebPoint)
- wenn nötig, die Kenntnisse in Java und UML aufzufrischen.
Analyse (13.04.2009-26.04.2009)
Zweck der Analyse- oder OOA-Phase (2 Wochen) ist es, das gestellte Thema vollständig zu durchdringen und die Anforderungen des Auftraggebers zu erkennen. Außerdem muss ein Projektplan erstellt werden, der detailliert die Aufgaben der einzelnen Gruppenmitglieder und den zeitlichen Ablauf des Projektes festlegt und bei Bedarf mit den Gegebenheiten des Projektverlaufs abgeglichen wird.
Bzgl. der Aufgabenstellung gehen Sie wie folgt vor:
- Führen Sie eine Anforderungsermittlung durch, indem Sie wichtige Anwendungsfälle identifizieren!
- Finden Sie daraus Funktionalitäten, die das Programm erfüllen soll, und diskutieren Sie darüber mit ihrem "Kunden".
- Ergänzen Sie diese Funktionalität mit nichtfunktionalen Anforderungen und ordnen Sie alles in einem Pflichtenheft an, wobei Sie aus Anwendersicht unterscheiden sollten,
- was das zu erstellende Programm auf alle Fälle leisten muss ("Musskriterien");
- welche Dinge es noch leisten soll, die für den korrekten Betrieb der Software aber entbehrlich wären ("Wunschkriterien");
- was es darüber hinaus auf keinen Fall leisten soll.
- Erstellen Sie parallel dazu eine graphische Darstellung der gefundenen Anwendungsfälle (Use-Case-Diagramm) und beschreiben Sie diese ausführlich in tabellarischer Form.
- Spielen Sie die gefundenen Anwendungsfälle durch und stellen Sie dabei handschriftlich CRC-Karten auf. (Hinweis: Die CRC-Karten müssen nicht ins WWW gestellt werden, sie sind nur ein wichtiger Schritt beim Durchdringen der Aufgabenstellung.)
- Stellen Sie auf Basis der CRC-Karten ein erstes UML-Klassendiagramm auf.
- Überlegen Sie sich zu unklaren oder komplizierten Anwendungsfällen konkrete Szenarien und halten Sie deren Abläufe in UML-Sequenzdiagrammen fest.
- Suchen Sie nun noch nach Aspekten, die in der Aufgabenstellung nur angedeutet sind oder ganz fehlen. Behandeln Sie diese analog und überarbeiten Sie alle Dokumente entsprechend.
- Erstellen Sie das endgültige Analyseklassendiagramm durch Verfeinerung, Ergänzung weiterer Klassen, Beschreibung von Assoziationen usw.
Entwurf (27.04.2009-17.05.2009)
Ziel der Entwurfs- oder OOD-Phase (3 Wochen) ist es, die Gesamtstruktur der Implementierung zu entwerfen sowie mit dem Prototyping zu beginnen. Dazu ist zunächst ein genauer Abgleich zwischen dem Analyseergebnis und der Beschreibung des Frameworks erforderlich, um festzustellen
- welche der geforderten Funktionen das Framework abdeckt;
- welche weiteren Funktionen es nach Anpassungen (wie genau sehen diese aus?) abdeckt;
- was darüber hinaus zu ergänzen ist.
- die Festlegung konkreter Bestands - und Katalogklassen;
- die Umsetzung von Anwendungsfällen in SaleProcesses mit Hilfe von Zustandsübergangsdiagrammen;
- Entwurf der Benutzeroberfläche (Darstellung von Katalogen und Beständen in der grafischen Oberfläche, Zusammenstellung von Operationen in Menüs usw.); Folie zum GUI-Prototyp
- Implementierung eines "kleinen" SalesPoint-basierten Anwendungsprototypen innerhalb der ersten Woche und dessen Fertigstellung bis zur dritten Woche.
(Achtung: Es wird gefordert, dass jedes Teammitglied einen eigenen Prototypen mit eigener Funktionalität erstellt!)
Implementation und Test (18.05.2009-14.06.2009)
In dieser Phase (3 Wochen) wird die Anwendung durch folgende Einzelaktivitäten implementiert:
- Ausbau des Prototypen aus der Entwurfsphase (Java 6 wird empfohlen);
- Realisierung einer funktionsfähigen und benutzerfreundlichen Anwendung;
- ausgiebige Klassen- und Integrationstests mit anschaulichen Testdaten (können dann auch in der Vorführung benutzt werden); Verwendung des Testframeworks jUnit;
- Vervollständigung und Aktualisierung der Ergebnisse aus der letzten Phase;
- Erstellung einer javadoc-Dokumentation;
- Beginn der Anwenderdokumentation (Handbuch, nicht für IST-Studenten)
Wartung und Pflege (15.06.2009-03.07.2009)
In dieser Phase (3 Wochen) sind folgende Aufgaben zu erfüllen:
- Stabilisierung/Korrektur des Programms;
- ggf. Leistungsverbesserung;
- Anpassung an Ergänzungswünsche des "Kunden";
- Erstellung der (endgültigen) Anwender- und Entwicklerdokumentation.
Pflichtkonsultationen
Das Team trifft sich jede Woche im Rahmen von Pflichtkonsultationen mit seinem Tutor um mit ihm den Projektfortschritt zu besprechen. Jedes Teammitglied muss an den Pflichtkonsultationen teilnehmen. Zweimaliges unentschuldigtes Fehlen hat das Ausscheiden aus dem Team und dem Praktikum zur Folge.
In jeder Pflichtkonsultation legt der Tutor fest, was bis zur nächsten Woche zu erledigen ist und wann die Ergebnisse auf der Webseite verfügbar sein sollen. Bei Nichterfüllen der Anforderungen wird eine Verwarnung ausgesprochen, die zweite Verletzung der Regel zieht eine Abmahnung nach sich und ein weiterer (geringster) Verstoß führt zum Ausschluss des Einzelnen oder des gesamten Teams vom Praktikum.
Der Ablauf und die Ergebnisse jeder Konsultation sind in einem ausführlichen Protokoll festzuhalten und im WWW zu veröffentlichen. Die Teilnahme an der Abschlusspräsentation kann nur nach allen erfolgreichen Pflichtkonsultationen eines Teams erfolgen.
Dokumentation
Der Softwareentwicklungsprozess muss im Web ausführlich dokumentiert werden. Dabei soll jederzeit der aktuelle Entwicklungsstand nachvollziehbar sein! Insbesondere ist darauf zu achten, dass die Ergebnisse der einzelnen Phasen erkennbar sind. Zusätzlich zur Entwicklungsdokumentation ist ein Anwenderhandbuch anzufertigen, welches die Handhabung des Programms beschreibt. Bei der Erstellung der gesamten Dokumentation ist Wert auf einen guten äußeren Eindruck (Rechtschreibung/Grammatik/Ausdruck, Gliederung der Dokumentationen) zu legen. Die Bereitstellung der vollständigen Dokumente - einschließlich Quellcode und Javadoc - im WWW ist Pflicht. Eine Papierversion soll nicht abgegeben werden.
Abschlusspräsentation
Das Praktikum schließt mit einer Präsentation des Projektes ab. Dazu gehört sowohl die Vorstellung des Entwicklungsprozesses als auch die Vorführung des entwickelten Softwareprodukts.
Zum Projektende (siehe Rahmenzeitplan) ist beim jeweiligen Tutor eine CD abzugeben, die sämtliche Praktikumsergebnisse (Quellcode, Dokumentation, Webseite) und eine lauffähige Version der erstellten Anwendung enthält. Der Inhalt dieser CD dient als Kriterium für das Bestehen des Praktikums - eine Verlängerung der Bearbeitungszeit ist nicht möglich!
Die Präsentation der Praktikumsergebnisse findet in der letzten Praktikumswoche (vorletzte Vorlesungswoche) statt. Es werden Termine festgelegt, zu denen alle Projektteams mit derselben Aufgabenstellung ihr Softwareprodukt und ihren Beleg im Rahmen von jeweils 30 min zu verteidigen haben (10 min zum Projektverlauf, 10 min Vorführung, 10 min Diskussion). Die Teilnahme aller Teammitglieder an dieser Veranstaltung ist Pflicht!
Vor der Präsentation ist ein Fragebogen vollständig auszufüllen. Die Ermittlung der im Fragebogen verlangten Metriken führen Sie bitte mit dem Eclipse-Plugin metrics durch. Ein Tutorial zur Verwendung dieses Tools mit Hinweisen, welche Metriken zu verwenden sind, finden Sie hier. Beachten Sie bitte, generierten und anderen nicht selbstgeschriebenen Code nicht in die Zählung einzubeziehen!