Überlegungen zum Softwarepraktikum

Bernhard Ziegler

Zielsetzung

Im Softwarepraktikum soll ein Softwareprodukt hergestellt werden, bei dessen Bearbeitung exemplarisch Spezifikation, Implementierung und Dokumentation von größeren Programmieraufgaben und Teamarbeit gelernt werden soll. Das Ziel wird dadurch erreicht, daß das Bearbeitetem quasi als Softwarehaus dem Betreuer, der als Kunde angesehen werden kann, gegenüber tritt.

Das Pflichtenheft

Das Pflichtenheft stellt die Vertragsgrundlage zwischen Kunden und Softwarehaus dar. Es enthält alle Anforderungen, denen das Softwareprodukt zu genügen hat, insbesondere die Festlegung der Schnittstellen. Zu diesem gehört vor allem die Angabe über das Format der Ein- und Ausgangsdaten. Nach Definition der Schnittstellen können weitere Softwarekomponenten entwickelt werden, die das im Pflichtenheft spezifizierte Produkt verwenden können.

Die Erarbeitung des Pflichtenhefts sollte in der Regel zu den Aufgaben des Softwarehauses gehören. Dazu sind schriftliche und mündliche Aussagen des Kunden heranzuziehen. Das Pflichtenheft ist gültig, sobald es beide Vertragspartner ratifiziert haben. Nachträgliche Änderungen sind nur mit beiderseitiger Zustimmung möglich. Das Pflichtenheft ist auch Bestandteil der Produktdokumentation.

Die Dokumentation

Die Dokumentation hat die Bedürfnisse sowohl von Benutzer als auch von Implementierer zu erfüllen, die völlig verschiedene Anforderungen an sie stellen. Der Benutzer möchte eine Bedienungsanleitung, in der er erfährt, wozu er das Softwareprodukt verwenden kann und wie es zu handhaben ist. Details der Implementierung interessieren ihn nicht.

Der Implementierer dagegen braucht eine detaillierte Implementierungsbeschreibung, da er Fehler korrigieren und das Softwareprodukt gegebenenfalls geänderten Anforderungen anpassen soll.

Die Bedienungsanleitung

Die Bedienungsanleitung enthält eine Beschreibung aller Leistungen, die das Softwareprodukt erbringt, und eine Anleitung, wie man diese Leistungen aktiviert.

Implementierungshandbuch

Das Implementierungshandbuch enthält eine Darstellung der Implementierungskonzepte, die kommentierten Quellprogramme, falls vorhanden, Testdaten und ihre Beschreibung. Zu den Implementierungskonzepten gehören u.a. die gewählten Datenstrukturen und die ihnen angepaßten Algorithmen. Von beiden ist die Logik zu beschreiben. Details, die zum Verständnis des Zusammenspiels zwischen Algorithmen und Datenstrukturen nicht nötig sind, können dem Programmlisting entnommen werden.

Das Implementierungshandbuch sollte auch verworfene Implementierungsansätze enthalten, wenn mehrere Alternativen zur Diskussion standen, sowie eine Begründung für die getroffene Wahl und/oder für die Ablehnungen.

Dokumentation der Quellprogramme (Programmlisting)

Grundsätzlich sollte bei jeder Definition von Datenstrukturen (Typen oder Variablen) ein Kommentar stehen, der einen Bezug zwischen dem Namen der Datenstruktur und dem Objekt herstellt, das sie repräsentiert, sofern der Name selbst dem Bezug nicht schon eindeutig festlegt. Der Kommentar kann in einem Verweis auf einen Text an einer anderen Stelle in der Dokumentation bestehen. So stellt z.B., wenn zwei logisch verschiedene Objekte, wie ein Wörterbuch und ein Syntaxbaum, beide als Tree implementiert wurden, angegeben werden, welcher Tree welches Objekt darstellt.

Prozeduren und Funktionen sollten folgende Kommentare enthalten:

  1. Eine Beschreibung, was getan wird. Diese kann zu einem Verweis degenerieren.

  2. Eine Beschreibung der formalen Parameter, aus der hervorgeht, ob sie lesend und/oder schreibend verwendet werden und wenn nötig, in welchem Geltungsbereich sie liegen.

  3. Eine Aussage, welche globalen Variablen verwendet und ob sie geändert werden.

  4. Für lokale Datenstrukturen gilt der oben aufgeführte Grundsatz.

  5. Ist ein Algorithmus besonders trickreich, so ist er spätestens hier detailliert, wenn nötig bitgenau, zu erklären.


Mail an bziegler@informatik.uni-stuttgart.de (Bernhard Ziegler)

Abteilung Betriebssoftware