Grundlagen der Software-Qualitätssicherung (SQA)
Grundlagen der SQA
Die Software-Qualitätssicherung (SQA) sorgt dafür, dass Dinge funktionieren. Sie umfasst Theorien, Methoden und Werkzeuge. Dabei werden nicht nur die technischen Prozesse der Softwareentwicklung betrachtet, sondern auch Tätigkeiten wie Projektmanagement sowie Methoden und Theorien zur Unterstützung der Softwareproduktion.
Software-Prozess
Eine Reihe von Aktivitäten und Ergebnissen, die zur Erstellung eines Softwareprodukts führen.
Die 4 Hauptaktivitäten
- 1. Spezifikation: Kunden und Software-Ingenieure definieren die Software und die Beschränkungen für deren Betrieb.
- 2. Entwicklung: Der Teil, in dem die Software entworfen und programmiert wird.
- 3. Validierung: Die Software wird validiert, um sicherzustellen, dass sie den Anforderungen des Kunden entspricht.
- 4. Evolution: Die Software wird angepasst, um auf Änderungen des Kunden oder des Marktes zu reagieren.
Definition und Zweck der SQA
Definition: Eine Reihe von Maßnahmen zur Sicherstellung, dass der Prozess und das Produkt den Anforderungen und Standards entsprechen.
Zweck: Einblick in die Softwareprozesse und die generierten Produkte bieten. Die objektive Prüfung von Produkten und Aktivitäten stellt sicher, dass diese im Einklang mit den Verfahren und Standards stehen. Diese Ergebnisse liefern dem Management die notwendigen Informationen.
Herausforderungen der SQA
Das größte Problem der SQA liegt in der immateriellen Natur von Softwareprodukten. Der abstrakte Charakter erschwert die Definition und Messung von Qualität.
Software-Lebenszyklus
Der Lebenszyklus betrachtet die Aktivitäten während der Softwareentwicklung und bestimmt die einzelnen Schritte sowie die Kriterien für den Übergang zwischen diesen Phasen:
- Beschreibung: Die wichtigsten Phasen der Softwareentwicklung.
- Definition: Die erwarteten primären Aufgaben innerhalb der Phasen.
- Management: Unterstützung bei der Verwaltung des Entwicklungsfortschritts.
- Strukturierung: Bereitstellung eines Arbeitsrahmens für die weitere Prozessdefinition der Softwareentwicklung.