Software-Entwicklung
Softwareentwicklung ist ein komplexes Unterfangen. Die Entwicklung umfangreicher Softwaresysteme mental zu begreifen, bereitet erhebliche Probleme. Es gibt eine Reihe von Ansätzen, die Problemkreise durch Modelle zu erschließen und zu beschreiben. Die etablierten Modelle beinhalten im Wesentlichen folgende Aspekte:
Wir konzentrieren uns hier auf den Aspekt der Prozesse also der Abläufe während der Entwicklung von Software.
Paradigmen der Softwareentwicklung
Heute stehen sich zwei Paradigmen der Softwareentwicklung gegenüber, unter denen Prozesse modelliert werden:
- Klassische und
- Agile Softwareentwicklung
Daneben gibt es Vorgehensmodelle, die mehr oder weniger beide Paradigmen unterstützen.
Klassische Softwareentwicklung
Klassische Vorgehensweisen sollen Softwareentwicklung deterministisch gestalten. Spezifikationen, Zeitrahmen und Budget werden früh festgelegt und im Laufe der Entwicklung verfolgt. Prozesse sind vielfach starr und geradlinig auf das Ziel ausgerichtet. Moderne Vorgehensmodelle wie das V-Modell und der RUP sind allerdings flexibel angelegt.
Agile Softwareentwicklung
Agile Softwareentwicklung konzentriert sich auf die Zusammenarbeit der an der Entwicklung Beteiligten und die effiziente Erstellung von Produkten, die den Kundenvorstellungen entsprechen. Sie beschreibt zwar auch Prozesse, aber weniger die Aktivitäten während der Entwicklung selbst, sondern vielmehr wie Teams zusammenarbeiten.
Vorgehensmodelle
Vorgehensmodelle beschreiben mehr oder weniger die oben vorgestellten Aspekte der Softwareentwicklung. Beispiele sind:
Überblick über den Inhalt
Einführend wird ein kurzer Überblick über gängige Vorgehensweisen bei der Softwareentwicklung gegeben.
Des Weiteren werden Begriffe und Abläufe zu Test, Verifikation und Validierung von Software erläutert.
Test, Verifikation und Validierung
Einige interessante Vorgehensweisen bei der Softwareentwicklung werden diskutiert:
Klassische Vorgehensweisen,
Prototyping,
das Spiralmodell und
Agile Softwareentwicklung.
Zur Klärung der komplexen Vorgänge während einer Softwareentwicklung ist es hilfreich, deren statische und dynamische Aspekte zu betrachten.
Verlauf der Softwareentwicklung
Moderne Softwareentwicklung verläuft in hohem Maße parallel. Dieser Aspekt wird in vielen Vorgehensweisen nur unzureichend berücksichtigt.
Verfeinerung und parallele Softwareentwicklung
Die Problematik moderner Softwareentwicklung wird abschließend diskutiert.