Wir werden in dieser Vorlesung eine Reihe von Themen behandeln, die in der ,,Softwaretechnik`` gar nicht oder zu knapp behandelt werden, aber dennoch einen erheblichen Stellenwert für die Planung, Erzeugung und Einführung von Softwaresystemen und den Betrieb einer softwareerzeugenden Organisation haben. Voraussetzung zu dieser Vorlesung ist ein solides Grundwissen in Informatik sowie die Kenntnis der Vorlesung ,,Softwaretechnik``.
Die Vorlesung umfaßt drei große Kapitel: Grundlagen der Softwaretechnik, der Software-Prozeß, Techniken. Jedes dieser Kapitel ist in mehrere Abschnitte unterteilt, von denen jeder ein eigenes Thema behandelt.
Das Kapitel ,,Grundlagen`` hat vier solche Abschnitte: In Abschnitt 1 sprechen wir über die Basis einer wissenschaftlichen Softwaretechnik-Disziplin, nämlich das Messen und Quantifizieren dessen, worüber man etwas wissen möchte. Zu messen gibt es in der Softwaretechnik zahlreiche Eigenschaften der erstellten Produkte und der Prozesse, die diese Produkte herstellen. Die Messungen haben das Ziel, Voraussagen zu machen oder Beurteilungen zu objektivieren. Der Abschnitt 2 bildet sozusagen einen Gegenpol: Er stellt einige grundlegende Ergebnisse der psychologischen Forschung dar, die für die Softwaretechnik relevant sind. Diese Ergebnisse erlauben ebenso wie die in Abschnitt 1 besprochenen Messungen die Beurteilung von Organisationen und Prozessen und die Vorhersage von Ereignissen, jedoch nur in einer ,,weichen``, nicht quantitativen Weise. Dennoch sind die entsprechenden psychologischen Erkenntnisse Fakten, und es ist sinnvoll und nützlich für Softwareingenieure, sie zu kennen. Abschnitt 3 bespricht eine Reihe von Prinzipien und Themen der Softwaretechnik-Forschung und zeigt, unter welchen Umständen die Beurteilung der Softwaretechnik als ,,Laberfach`` unangebracht ist. Der Abschnitt 4 bespricht Fragen der Systemsicherheit und verdeutlicht, daß man in Fragen der Sicherheit über die Softwareteile eines Systems hinausblicken und Systeme im ganzen betrachten muß. In diesem Abschnitt werden auch Vorgehensgrundsätze für Sicherheitsmaßnahmen und eine Reihe von Fallbeispielen spektakulärer Sicherheitsprobleme beschrieben.
Das Kapitel ,,Software-Prozeß`` hat drei Abschnitte. Im ersten (Abschnitt 5) geht es um allgemeine Überlegungen und Modelle zur Softwareprozeß-Verbesserung, insbesondere um CMM und ISO 9000. Diese Überlegungen beziehen sich auf ganze Organisationen und größere Projekte. Im Abschnitt 6 wird ein konkreter Ansatz zur kontinuierlichen Verbesserung der Softwareprozesses auf der Ebene des einzelnen Softwareingenineurs diskutiert (,,Der persönliche Softwareprozeß``, PSP). Abschnitt 7 bespricht die Cleanroom-Methodik, einen Ansatz, der von seiner Ausrichtung her zwischen diesen Extremen liegt und die effiziente Produktion von Software hoher Zuverlässigkeit zum Ziel hat.
Das Kapitel ,,Techniken`` umfaßt bislang lediglich einen Abschnitt, und zwar Abschnitt 8 zum Thema Anforderungsanalyse, die oft die entscheidende Phase einer Softwareentwicklung darstellt, weil von ihr die größten Probleme ausgehen.
Ein Anhang zu diesem Skriptum enthält eine Anleitung zum Schreiben technischer Dokumente, ein Thema, das zwar in der Softwaretechnik eine sehr wichtige Stellung einnimmt, aber leider im Rahmen einer Vorlesung kaum sinnvoll gelehrt werden kann.
In jedem Abschnitt wird zunächst eine globale Einordnung des Themas vorgenommen, dann werden die Ziele und die spezifischen Ansätze, Probleme und Hindernisse diskutiert, schließlich werden konkrete Techniken vorgestellt.
Ich bin für konkrete (und am besten konstruktive) Hinweise auf Ungereimtheiten oder zur Verbesserung des Skripts jederzeit dankbar. Eine aktuelle Fassung des Skripts ist jeweils im WWW unter http://wwwipd.ira.uka.de/~prechelt/swt2 verfügbar.