Grundlagen der Softwareentwicklung und Qualitätssicherung
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 3,67 KB
Mythen über Software
Falsche Mythen über Software: Hardware ist wichtiger als das Programm; Software ist einfach zu entwickeln; Software besteht nur aus ausführbaren Programmen; Softwareentwicklung ist nur Programmierung; es ist natürlich, dass Software Fehler enthält.
Der Software-Lebenszyklus: Klassische Modelle
Das Wasserfall-Modell
Jede Phase liefert das Ergebnis für die nächste Phase. Vor Beginn einer neuen Phase erfolgt eine Überprüfung auf Fehler, da deren Behebung in späteren Phasen teuer wäre. Die Phasen sind:
- Analyse: Bestimmung der Nutzerbedürfnisse und Erstellung des SRD (Pflichtenheft).
- Design: Zerlegung und Organisation der Team-Entwicklung, Erstellung des SDD (Software Design Document).
- Coding: Schreiben und Testen des Quellcodes mit Kommentaren.
- Integration: Zusammenführung und Testen der Komponenten.
- Wartung: Anpassungen aufgrund von Mängeln oder für Verbesserungen.
Das V-Modell
Basiert auf dem Wasserfall-Modell, stellt jedoch die Entwicklung zweidimensional dar. Während der Kodierung arbeitet man an Modulen, bei der Integration am Gesamtsystem.
- Prüfung: Überprüfung, ob ein Teil des Systems die Spezifikationen auf Modulebene erfüllt.
- Validierung: Überprüfung, ob das Gesamtsystem den Anforderungen der Benutzer entspricht.
Prototyping und evolutionäre Modelle
Prototypen dienen dazu, experimentell Teillösungen zu testen. Um Kosten zu begrenzen, sollten Funktionen und Datenverarbeitung eingeschränkt werden.
- Fast Prototyping: Dient nur zum Sammeln von Erfahrungen.
- Evolutionary Prototyping: Der Prototyp wird schrittweise zum endgültigen System erweitert.
Tools für das Prototyping: Sprachen der 4. Generation (deklarativer Stil, z. B. Prolog, Smalltalk) und Spezifikationssprachen zur Formalisierung der Anforderungen.
Das Spiral-Modell
Das wichtigste Merkmal ist die Risikoanalyse als wesentliches Element. Jeder Zyklus umfasst vier Aktivitäten: Planung, Risikoanalyse, Engineering (Analyse, Design, Programmierung, Integration, Wartung) und Auswertung.
Software-Wartung
Man unterscheidet drei Arten der Wartung:
- Korrektiv: Behebung von Fehlern.
- Adaptiv: Anpassung an neue Umgebungen.
- Perfektiv: Optimierung der Versionen aufgrund von Marktwettbewerb.
Reengineering: Techniken zur Verbesserung älterer Anwendungen durch Analyse des Quellcodes und automatische Erstellung einer Dokumentation.
Software-Qualitätssicherung
Qualitätsfaktoren umfassen u. a. Korrektheit, Zuverlässigkeit, Effizienz, Sicherheit, Benutzerfreundlichkeit, Wartbarkeit, Flexibilität, Testbarkeit, Transportfähigkeit, Wiederverwendbarkeit und Interoperabilität.
Qualitätssicherungsplan (SQAP)
Ein SQAP muss die Teamorganisation, das Lebenszyklusmodell, die erforderliche Dokumentation sowie die Organisation von Bewertungen und Prüfungen enthalten.
Konfigurationsmanagement
Dient der Kontrolle über die Software-Konfiguration durch:
- Versionskontrolle: Organisiertes Speichern von Fassungen.
- Change Control: Sicherstellung der Kompatibilität von Elementen.
- Baseline: Eine definierte Konfiguration des Systems.