Softwareentwicklungsmodelle und -methoden
Classified in Lehre und Ausbildung
Written at on Deutsch with a size of 5,41 KB.
Softwareentwicklungsmodelle: Ein Überblick
Evolutionäres Modell
Das evolutionäre Modell zeichnet sich durch folgende Punkte aus:
- Frühe Bereitstellung eines Produkts.
- Betriebssysteme als erste Produktentwicklungen.
- Systeme, die erwartete Änderungen in ihrem Lebenszyklus erfahren.
- Anforderungen können sich im Projektzyklus ändern.
Nachteile:
- Mangelnde Planung.
- Schlecht strukturierte Software-Produktion.
- Schwierigkeiten bei der Änderung des Analysecodes.
- Integrationsprobleme mit anderen Systemen.
- Wenig Systemkontrolle in großen Projekten.
- Änderungskontrolle ist nicht ratsam, um wohldefinierte Prozesse zu ersetzen.
Inkrementelles Modell
Das inkrementelle Modell ähnelt dem evolutionären Modell, jedoch:
- Das System wird schrittweise durch funktionale Komponenten (Inkremente) erstellt.
- Bei jedem Schritt werden Updates am System vorgenommen.
- Software und Integration der Ergebnisse.
Nachteile:
- Mögliche Notwendigkeit von erneuten Tests.
- Unstrukturierte Fehler.
- Benutzerzurückhaltung, da das Endergebnis unklar ist.
Spiralmodell
Das Spiralmodell, entwickelt von Barry Boehm, bietet folgende Eigenschaften:
- Entwickelt zur Linderung der Probleme des klassischen Lebenszyklus.
- Führt Risikoanalysen durch.
- Besteht aus einer Reihe von Zyklen (Spirale).
- Das Projekt ist in vier Quadranten unterteilt.
- Beginnt in der Mitte der Spirale und schreitet bis zum Ende fort.
Phasen:
- Planung: Identifizierung von Produktzielen, Alternativen und Einschränkungen.
- Risikoanalyse: Bewertung von Alternativen, Analyse von Unsicherheiten, Prototyping, Risikomanagement (z.B. Mangel an qualifiziertem Personal, unrealistische Anforderungen, externe Abhängigkeiten).
- Entwicklung und Prüfung: Produktentwicklung und -prüfung.
- Bewertung: Überprüfung und Bewertung der Ergebnisse.
Vorteile:
- Kombiniert die besten Aspekte anderer Modelle.
- Wiederverwendungsoptionen werden von Anfang an berücksichtigt.
- Bietet Vorbereitung für Entwicklung, Wachstum und Veränderung.
- Ermöglicht die Übernahme von Qualitätszielen.
- Konzentriert sich auf die Beseitigung von Fehlern und unattraktiven Optionen.
- Bestimmt den Aufwand für jede Phase.
- Gleiches Verfahren für Entwicklung und Wartung.
- Ermöglicht Flexibilität.
- Passt gut zum objektorientierten Design und zur Programmierung.
Nachteile:
- Hauptsächlich in der internen Entwicklung, weniger in der kommerziellen Welt, erprobt.
- Benötigt Erfahrung in der Risikobewertung.
- Benötigt zusätzliche Verarbeitungsschritte.
- Relativ neues Modell.
Unterschiede zu anderen Modellen:
- Explizite Anerkennung verschiedener Alternativen.
- Fokus auf die Identifizierung von Risiken.
- Aufteilung in Phasen mit abschließender Einigung.
- Passt zu jeder Art von Aktivität.
Methoden der Softwareentwicklung
Es ist notwendig, einen systematischen und disziplinierten Ansatz für die Softwareentwicklung zu etablieren. Die Entwicklungsmethoden beeinflussen direkt den Konstruktionsprozess und werden durch einen oder mehrere Lebenszyklen definiert.
Definition einer Methode
Eine Methode definiert die Schritte und Verfahren, die bei der Softwareentwicklung zu befolgen sind.
Was deckt eine Methodik ab?
- Verbesserung des Anwendungsentwicklungsprozesses.
- Verbesserung der Standardisierung innerhalb einer Organisation.
Ziele von Methoden
- Umwandlung von Anforderungen in ein erfolgreiches Softwaresystem.
- Aufbau eines Systems innerhalb eines angemessenen Zeitrahmens und zu akzeptablen Kosten.
- Aufbau eines gut dokumentierten und leicht zu wartenden Systems.
- Frühestmögliche Identifizierung notwendiger Änderungen.
- Einführung eines Systems, das die Anforderungen aller Beteiligten erfüllt.
Wünschenswerte Eigenschaften einer Methodik
- Vordefinierte Regeln.
- Vollständige Abdeckung des Lebenszyklus.
- Zwischenkontrollen.
- Planung und Steuerung.
- Effektive Kommunikation.
- Anpassungsfähigkeit an verschiedene Projekte.
- Einfache Schulung.
- CASE-Tools (Computer-Aided Software Engineering).
- Aktivitäten zur Verbesserung des Entwicklungsprozesses.
- Unterstützung für die Wiederverwendung von Software.
Verfahren vs. Methodik
Es besteht oft Verwirrung zwischen den Begriffen Methodik, Verfahren und Lebenszyklus. Eine Methode kann einem oder mehreren Lebenszyklen folgen. Der Lebenszyklus gibt an, *was* zu tun ist, aber nicht *wie*. Die Methodik hingegen ist ein umfassenderes Konzept, das die Methoden als eine Reihe von Verfahren betrachtet.
Klassifizierung von Methoden
- Strukturierte Methoden: Prozessorientiert, Datenorientiert (hierarchische Datenstrukturen), Gemischt.
- Objektorientierte Methoden.