../../icons/Logo.png


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:

Projektmanagement:
Definition, Bereitstellung, Verwaltung und Steuerung der Ressourcen
Anforderungsmanagement:
Definition und Verbesserung und Überwachung der Produktanforderungen
Qualitätsmanagement:
Definition und Verbesserung und Überwachung der Produktqualität
Konfigurationsmanagement:
Definition, Verwaltung und Bereitstellung produzierter Artefakte
Risikomanagement:
Identifikation und Verfolgung interner und externer Risiken
Prozesse:
Beschreibung von Abläufen
usw.

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:

V-Modell
versteht sich als Leitfaden für Systementwicklungsprojekte. Es definiert, wie Ergebnisse grundsätzlich beschrieben und erarbeitet werden. Es ist weitgehend offen für Methoden. Es lässt sich auf konkrete Projekte zuschneiden.
RUP
Der Rational Unified Process stellt inkrementelle Entwicklung in den Vordergrund. Entwickelt wird in Phasen in denen es Iterationen gibt.
Scrum
ist ein typischer Vertreter agiler Softwareproduktion. Scrum legt Wert auf selbstorganisiertes Arbeiten, kurze Zyklen. Scrum fokussiert auf die laufende Verbesserung des Produkts durch Einbeziehung sowohl der Prozesse und Methoden als auch insbesondere der Mitarbeiter und Ressourcen.

Überblick über den Inhalt

Einführend wird ein kurzer Überblick über gängige Vorgehensweisen bei der Softwareentwicklung gegeben.

Softwareentwicklungsprozesse

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.

Problematik der Softwareentwicklung