Das Softwaretechnologie-Praktikum im SS 2002 wird für Studenten der Diplomstudiengänge Informatik, Medieninformatik, Informationssystemtechnik und des Ergänzungsstudiengangs Softwaretechnologie durchgeführt. Es hat zum Ziel, die im Fach Softwaretechnologie erworbenen Kenntnisse zu festigen und praktisch anzuwenden. Inhaltlich wird auf die im Wintersemester 01/02 durchgeführte Lehrveranstaltung Softwaretechnologie (Prof. Dr. H. Hußmann) Bezug genommen. D.h., es ist ein Softwareprodukt objektorientiert unter Nutzung folgender Technologien zu entwickeln:

  • CRC-Karten-Methode
  • Modellierung mit UML
  • Java 2 SE 1.3 als Implementierungssprache
  • Framework SalesPoint 3.0
Die Projektaufgaben sind im Rahmen studentischer Teams (in der Regel 6 Studenten/innen) arbeitsteilig zu lösen.

Die möglichst weitgehende Verwendung des Frameworks wird aus folgenden Gründen bindend vorgeschrieben.

  • Durch das Framework ist eine Grundarchitektur vorgegeben. Das erleichtert den für Unerfahrene schwierigen OO Entwurf.
  • Die Einarbeitung in bestehende Programmsysteme gehört zum Arbeitsalltag des Software-Entwicklers. Das Framework ist durch Beschreibung und Anpassungsschnittstelle vergleichsweise gut zugänglich.
  • Es soll Wiederverwendung bewußt eingeübt werden. Hacker neigen dazu, laufend das Rad neu zu erfinden. Auf diese Weise entstehen unkontrolliert Code-Doubletten, die - weil nicht zusammenhängend - nicht systematisch gewartet (verbessert oder an neue Gegebenheiten angepaßt) werden können. Im Gegensatz dazu erfordert die Wiederverwendung von Bausteinen deren laufende Anpassung und führt dadurch zu immer flexibleren und verläßlicheren Komponenten: die Qualität steigt, die investierte Mühe lohnt sich mittelfristig.

WWW-Seiten zum Softwarepraktikum. Aufgabenstellungen, Hinweise zum Praktikum sowie zu verfügbaren Tools, aktuelle Informationen, Lehrmaterialien und Verweise zu weiteren fachlichen Informationen sind unter der WWW-Adresse http://www-st.inf.tu-dresden.de/sp/ zu finden.

"Konzepte und Methoden zum Framework". Am 15.04.02 findet in der 5. DS im Hörsaal BAR/SCHÖ eine Veranstaltung zum Framework SalesPoint statt (Thomas Medack). Dabei sollen ausgewählte Konzepte und Methoden des Frameworks näher beleuchtet werden. Zur Vorbereitung für diese Veranstaltung und zur Durchführung des Praktikums stehen Lehrmaterialien unter der WWW-Adresse http://www-st.inf.tu-dresden.de/SalesPoint/v3.0/technical_overview/index.html, sowie http://www-st.inf.tu-dresden.de/SalesPoint/v3.0/sample_video/index.html zur Verfügung.

Es werden Projektteams gebildet (Gruppen von i.A. 6 Studenten), die arbeitsteilig jeweils eine Aufgabenstellung zu bearbeiten und zu lösen haben. Die Organisation der Projektteams erfolgt nach dem Prinzip des Chefprogrammiererteams. Einem Studenten wird die Funktion des Chefprogrammierers übertragen, die anderen Gruppenmitglieder fungieren als Mitarbeiter. Der Chefprogrammierer übernimmt die Rolle des Teamleiters und ist in erster Linie für die Kommunikation mit dem Auftraggeber (Praktikumsbetreuer) und innerhalb des Teams, die Teamorganisation, für alle wichtigen Entwurfsentscheidungen sowie die qualitäts- und termingerechte Erstellung des Gesamtsystems (Softwareprodukt und Dokumentationen) verantwortlich. Er entwirft und implementiert zugleich zentrale oder kritische Teile des Gesamtsystems. Die anderen Teammitglieder teilen sich in folgende Aufgaben bzw. Rollen:

  • Der Assistent kann stellvertretend für den Chefprogrammierer alle Entscheidungen treffen und unterstützt den Chefprogrammierer beim Entwurf.
  • Der Sekretär ist für die gesamte Verwaltungsarbeit zuständig, einschließlich der Verwaltung der Klassenbibliotheken sowie aller Entwicklungs-Dokumente.
  • Die Programmierer sind über alle Projektphasen für das ihnen zugeordnete Teilsystem einschließlich der Entwicklungs- und Anwenderdokumentation des Teilsystems zuständig.

In Ergänzung zu diesem allgemeinen Verständnis wird von jedem Student verlangt, daß er unabhängig von seiner Rolle im Team einen Teil der Implementation eigenständig übernimmt. Im Ergebnis des Entwurfes, an dem ebenfalls alle Studenten beteiligt sein sollen, erfolgt die Festlegung, wer für die Implementation welcher Klassen bzw. Teilsysteme (Packages) verantwortlich ist.

Die konkrete Arbeitsteilung in der Gruppe (Teamorganisation) wird durch die Gruppe festgelegt und im Projektplan festgeschrieben.

Zur Unterstützung der Teamarbeit wird CVS zur Verfügung gestellt. Die Nutzung dieses Tools wird ausdrücklich verlangt. Entsprechende Dokumente zur Einarbeitung, als auch andere Hilfsmittel, sind unter http://www-st.inf.tu-dresden.de/SalesPoint/v3.0/papers/download.html zu finden.

1. Aufgabenstellungen und Praktikumsbetreuung

Im Praktikum sollen auf der Basis des vorhandenen SalesPoint 3.0-Frameworks Verkaufsanwendungen in Java erstellt werden. Jeder Praktikumsgruppe wird eine konkrete Aufgabenstellung und ein Betreuer zugeordnet. Die Betreuer führen wöchentliche Pflichtkonsultationen durch. Die Termine (Uhrzeit und Räume) werden in Absprache mit den Betreuern festgelegt. Darüberhinaus sollte regelmäßig ins WWW (Forum, FAQ, SalesPoint, u.a.) nach aktuellen Informationen geschaut werden.

2. Einschreibung in Projekte

Um einen zügigen Beginn des Praktikums zu gewährleisten, wird die Gruppeneinteilung und Aufgabenzuordnung durch den Lehrstuhl am Ende der zweiten Praktikumswoche festgelegt. Es besteht die Möglichkeit, sich bis spätestens Freitag, den 12.04.2002, im Sekretariat des Lehrstuhles Softwaretechnologie (DUE 26/258), in Listen mit Gruppen und Aufgabenstellung einzutragen. Diese Einschreibungen werden als Vorschläge betrachtet, die endgültige Praktikumsgruppeneinteilung, einschließlich Aufgaben- und Betreuerzuteilung, wird nach Korrektur des Eingangstests durch Aushang vorm Sekretariat des Lehrstuhls, sowie im WWW bis spätestens Montag, den 22.04.2002 12 Uhr bekanntgegeben.

3. Projektphasen

Der Praktikumsablauf wird in fünf Projektphasen einschließlich notwendiger Iterationen unterteilt. Die projektbegleitende Dokumentation im WWW ist Pflicht! Es ist darauf zu achten, daß der Fortschritt von Phase zu Phase zu erkennen ist.

3.1 Einarbeitung
Ziel der Einarbeitungsphase (2 Wochen) ist es

  1. sich mit dem Framework SalesPoint 3.0 vertraut zu machen. Lesen Sie dazu auf der Homepage von SalesPoint v3.0 besonders gründlich den Technischen Überblick zum Framework.
  2. anhand des einführenden Beispiels die Beispielanwendung "Videoautomat" nachzuvollziehen bzw. selbst zu entwickeln.

Abschließend wird ein Test zu Java, UML und grundsätzlichen Fragen zum Framework SalesPoint v3.0 durchgeführt. Dieser findet am 18.04.2002 im Hörsaalzentrum HSZ/AUDI, HSZ/002 und HSZ/003, innerhalb der 7.DS, von 19:00 bis 19:30 Uhr statt. Die Raumaufteilung wird vor Ort bekanntgegeben. Es wird die Qualifikation eines jeden Studenten für die weiteren Phasen des Praktikums überprüft. Die Einschreibung zum Test findet im WWW unter http://www.jExam.de statt.

3.2 Analyse (OOA)
Zweck dieser Phase (2 Wochen) ist es, das gestellte Thema vollständig zu durchdringen und die Anforderungen des Auftraggebers zu erkennen. Außerdem soll ein Projektplan erstellt werden, der die Aufgaben der einzelnen Gruppenmitglieder festlegt. Bzgl. der Aufgabenstellung gehen Sie wie folgt vor:

  1. Identifizieren Sie anhand der Aufgabenstellung wichtige Anwendungsfälle!
  2. Finden Sie daraus Funktionalitäten, die das Programm erfüllen soll und diskutieren Sie darüber mit ihrem Betreuer (in der Kundenrolle!).
  3. Spielen Sie konkrete Szenarien zu den so gefundenen Anwendungsfällen durch (mitprotokollieren!) und stellen Sie dabei CRC-Karten auf (ebenfalls aufschreiben!). Hinweis: Die CRC-Karten müssen nicht ins WWW gestellt werden, sie sind nur ein wichtiger Schritt beim Durchdringen der Aufgabenstellung. Mit Hilfe der CRC-Karten kann das erste Klassendiagramm erstellt werden.
  4. Suchen Sie nach Aspekten, die in der Aufgabenstellung nur angedeutet sind oder ganz fehlen können. Behandeln Sie diese analog.
  5. Ordnen Sie diese Funktionalität in einem Pflichtenheft an, wobei Sie aus Anwendersicht unterscheiden sollten,
    • was das zu erstellende Programm auf alle Fälle leisten muß
    • welche Dinge es noch leisten kann, wenn dafür die Entwicklungszeit reicht;
    • was es darüberhinaus auf keinen Fall leisten soll.
  6. Erstellen Sie auf der Basis der bisherigen Ergebnisse
    • Anwendungsfalldiagramme;
    • ein UML Klassendiagramm, welches die statischen Zusammenhänge der gefundenen Klassen beschreibt;
    • zu den kompliziertesten Anwendungsfällen UML-Sequenzdiagramme.
  7. Überarbeiten Sie alle ihre Dokumente und zeigen Sie diese ihrem Betreuer zur Zustimmung bei den Konsultationen.

3.3 Entwurf (OOD)
Ziel dieser Phase (2 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überhinaus zu ergänzen ist.
Die Verantwortlichkeiten der in der Analysephase gefundenen Klassen müssen dabei solchen Klassen des Frameworks zugeordnet werden, die eben dies schon leisten, oder solchen anwendungsspezifischen Unterklassen von Frameworkklassen, die zwecks Anpassung an die konkrete Problemstellung einzurichten sind. Es entstehen neue Klassenbeschreibungen und ein neues Klassendiagramm. (An diesem Diagramm und dem aus der Analysephase werden die Gemeinsamkeiten und Unterschiede zwischen Analysemodell und zu implementierendem Modell deutlich.)

Wichtige Anpassungsschritte sind:

  • die Festlegung konkreter Bestands- und Katalogklassen;
  • die Umsetzung von Anwendungsfällen in SaleProcesses mit Hilfe von Zustandsübergangsdiagrammen (die auszuarbeiten sind);
  • die Darstellung von Katalogen und Beständen in der grafischen Oberfläche; Bereitstellung von Operationen über Menüpunkte und Knöpfe (Entwurf der Benutzeroberfläche).
Im Ergebnis des Entwurfes muß festgelegt werden, welches Teammitglied für die Implementation welcher Klassen zuständig ist (und wann; Fertigstellung, Ergänzung des Projektplanes).

3.4 Implementation und Test
In dieser Phase (3 Wochen) wird die Anwendung durch folgenden Einzelaktivitäten implementiert:

  • Ausbau des Prototyps aus der Entwurfsphase (mit Java 2 SE 1.3);
  • Realisierung einer funktionsfähigen Anwendung;
  • ausgiebige Klassen- und Integrationstests mit anschaulichen Testdaten (können dann auch in der Vorführung benutzt werden);
  • Vervollständigung und Aktualisierung der Ergebnisse aus der letzten Phase;
  • Erstellung einer javadoc-Dokumentation.
Dabei sind in der Regel die Rubriken Mußkriterien des Pflichtenhefts vollständig zu erfüllen. Die Wunschkriterien sollten ebenfalls zu einem gewissen Prozentsatz erfüllt sein. Abweichungen davon bitte frühzeitig mit dem Betreuer absprechen!

3.5 Wartung und Pflege
In dieser Phase (3 Wochen) sind folgende Aufgaben zu erfüllen:

  • Stabilisierung/Korrektur des Programms
  • ggf. Leistungsverbesserung
  • Anpassung an Ergänzungswünsche des Kunden (Praktikumsbetreuer)
  • Erstellung der (endgültigen) Anwender- und Entwicklerdokumentation
Durch das Erfüllen zusätzlicher Anforderungen des Kunden soll nachgewiesen werden, daß das erstellte Programm so entworfen und implementiert wurde, daß Änderungen ohne großen Aufwand möglich sind.

4. Pflichtkonsultationen

Das Team muß sich jede Woche im Rahmen von Pflichtkonsultationen mit seinem Betreuer treffen, um den Projektfortschritt mit dem Betreuer zu besprechen. Jedes Teammitglied sollte an den Pflichtkonsultationen teilnehmen. Zweimaliges unentschuldigtes Fehlen hat das Ausscheiden aus dem Team und dem Praktikum zur Folge. Die Teilnahme an der Abschlußpräsentation kann nur nach allen erfolgreichen Pflichtkonsultationen eines Teams erfolgen. In Pflichtkonsultationen erteilte Aufgaben sind spätestens in der nächsten Pflichtkonsultation abzurechnen.

5. Dokumentation und Abschlußpräsentation

Das Praktikum schließt mit einer Präsentation der Dokumentation einschließlich der Vorführung des entwickelten Softwareprodukts ab.

5.1 Dokumentation
Der Softwareentwicklungsprozeß muß im Web ausführlich dokumentiert werden. Insbesondere ist darauf zu achten, daß die Ergebnisse der einzelnen Phasen erkennbar sind. Zusätzlich zur Entwicklungsdokumentation ist ein Anwenderhandbuch anzufertigen, welches die Handhabung des Programms beschreibt. Bei der Erstellung des Beleges 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.

Entwicklungsdokumentation. Die Entwicklungsdokumentation soll im wesentlichen die Dokumente aus den einzelnen Projektphasen zusammenfassen.

  • Projektplan
  • Dokumente aus der Analysephase (Pflichtenheft, Anwendungsfalldiagramm, Sequenzdiagramme für alle wichtigen Szenarien, statisches Modell)
  • Entwurfsdokumente mit Begründung von Entwurfsentscheidungen (für SalesPoint 3.0 angepaßtes Klassendiagramm und Klassenbeschreibungen, Zustandsübergangsdiagramme zu den Anwendungsfällen)
  • Java-Quellcode
  • API-Dokumentation in HTML-Format (Nutzung von javadoc)
  • Bewertung der Lösung (Erreichtes versus Plan, Qualität)
  • Bewertung des Projektverlaufs (Was haben die einzelnen Teammitglieder geleistet? Änderungen in der Organisationsstruktur? Techniken des Projektmanagements?)
Achten Sie dabei darauf, daß
  • Analyse-, Entwurfs- und Implementierungsentscheidungen begründet sind;
  • bei erfolgten Iterationen im Lebenszyklus des Softwareprodukts alle Modelle aktualisiert werden;
  • die Übereinstimmung der Implementation mit den objektorientierten Modellen gegeben ist;
  • die Implementation ausreichend kommentiert ist.

Anwenderdokumentation. Das Handbuch für den Anwender des erstellten Softwareprodukts soll unter Beachtung folgender Anforderungen knapp geschrieben sein:

  • Die angebotene Information muß fehlerfrei und vollständig sein.
    • Was tut die Software?
    • Wie können die Anwender erreichen, daß sie es tut? (Handlungsweisen)
    • Vor welchen Fehlern müssen Sie den Anwender bewahren?
    • Welches Hintergrundwissen brauchen die Anwender über die Funktionsweise?
  • Die Anwender müssen die Information gut finden können.
  • Die Dokumentation muß ansprechend gestaltet sein.

Außerdem ist ein Fragebogen auszufüllen und (in Papierform) abzugeben.

5.2 Abschlußpräsentation
Die Präsentation der Praktikumsergebnisse jedes Projektteams findet in der letzten Praktikumswoche (vorletzte Vorlesungswoche) statt. Eine Verlängerung der Bearbeitungszeit ist nicht möglich! Es werden Termine festgelegt, zu denen jeweils drei Projektteams ihr Softwareprodukt und ihren Beleg im Rahmen von jeweils 30 min zu verteidigen haben (ca. 10 min zum Projektverlauf, 10 min Vorführung, 10 min Diskussion). Die Teilnahme aller Teammitglieder ist Pflicht!

6. Rahmenzeitplan

Der Ablauf des Praktikums wird als Rahmenzeitplan vorgegeben. Die Projektteams können diesen Zeitplan in gewissen Grenzen entsprechend ihren konkreten Bedingungen in Absprache mit dem Praktikumsbetreuer modifizieren (Festlegung im Projektplan). Der späteste Fertigstellungstermin von Dokumentation und Softwareprodukt ist der 28.06.2002! Der Zeitrahmen für die Absolvierung des Praktikums ist damit sehr begrenzt. Für die effektive Bearbeitung der Aufgabenstellung stehen ohne die Einarbeitungsphase 10 Wochen zur Verfügung. Eine konzentrierte und gut organisierte Bearbeitung der Aufgabe ist für den erfolgreichen Abschluß des Praktikums unbedingt erforderlich!

SemesterwocheTermin/Zeitraum/OrtEinzelaktivitäten
1.-2. Einarbeitung08.04.-19.04. 
 08.04.; 5.DS; BAR/SCHÖEinweisung ins Praktikum und Einschreibung
 bis 12.04.; Sekr. DUE26/258Einschreibung in das Praktikum
 15.04.; 5.DS; BAR/SCHÖFramework-Tutorial (mit Thomas Medack), Einschreibung in die CVS-Einführung
 18.04.; 7.DS; HSZ/AUDI, HSZ/002 und HSZ/003Zwischentest
3.-4. OOA22.04.Bekanntgabe der Gruppen mit Zuordnung der Aufgabenstellung
 22.04.; 5.DS; BAR/SCHÖ1. Pflichtkonsultation
 22.04.-03.05.Analyse
5.-6. OOD06.05.-17.05.Entwurf und Prototyping
7.-9. Implementierung20.05.-07.06.Implementierung und Test
10.-12. Wartung10.06.-28.06.Wartung und Pflege
 28.06.Ende des Projekts
13. Abschluß01.07.-5.07.Abschlußpräsentation

last modified on 11.04.2002
by ch17