Softwarequalität
aus Wikipedia, der freien Enzyklopädie
"Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen" (Ist/Soll). [Balzert 1998, S. 257] Diese Definition bezieht sich damit ausschließlich auf die Produktqualität und nicht die Prozessqualität.
Inhaltsverzeichnis |
[Bearbeiten] Qualitätsmodelle
[Bearbeiten] Konzept
Der Begriff der Softwarequalität selbst ist nicht operabel und in der Praxis direkt anwendbar. [Balzert 1998, S. 257] Deshalb existieren Qualitätsmodelle, die durch eine weitere Detaillierung und Konkretisierung das Konzept der Softwarequalität operationalisieren. Dies leisten die Qualitätsmodelle durch Ableiten von Unterbegriffen. Dadurch entsteht ein Baum (oder ein Netz) von Begriffen und Unterbegriffen.
Die Qualitätsmerkmale tragen im Englischen die Bezeichnung factor, ein Qualitäts-Teilmerkmal heißt criterion und die Qualitäts-Indikatoren metrics. Deswegen erscheinen derartige Qualitätsmodelle in der Literatur auch als FCM-Modelle. Bei den Blattknoten im Baum des Qualitätmodells, den Qualitätsindikatoren, sollte es sich um beobachtbare oder messbare Sachverhalte handeln. Hier können beispielsweise Softwaremetriken zum Einsatz kommen.
[Bearbeiten] Modelle
Es existieren bereits ausgearbeitete Qualitätsmodelle, wie zum Beispiel ISO/IEC 9126.
Es existieren allerdings auch Vorgehensmodelle, wie der GQM-Ansatz, die zu individuellen Qualitätsmodellen führen.
[Bearbeiten] Sicherstellung der Qualität
Für die Sicherstellung, dass die Software bezüglich der verschiedenen Qualitätsmerkmale den Anforderungen entspricht, existieren verschiedene Vorgehensmodelle und -methoden.
Einige Modelle:
- Organisatorische Qualitätsmodelle, zum Beispiel das Capability Maturity Model (CMM)
- Prozessmodelle, wie zum Beispiel
Diese Modelle lassen sich eher dem Konzept der Prozessqualität zuordnen. Dieses geht davon aus, dass ein qualitativ hochwertiger Prozess der Produkterstellung die Entstehung von qualitativ hochwertigen Produkten begünstigt. Deshalb stellen die obigen Modelle Qualitätsanforderungen an den Prozess, in dem die Software entwickelt wird.
Einige Methoden:
- iterative Software-Entwicklung
- das zur Methode gewordene Spiralmodell
- Softwaretests (siehe auch Test (Informatik))
- Refaktorisierung
- Code Reviews
- Paarprogrammierung
- Testgetriebene Entwicklung
- Keyword driven testing
Softwaretests, Refaktorisierung und Code Reviews gehen direkt auf die Produktqualität ein. Das konkrete Produkt wird untersucht und bearbeitet, damit es die gestellten Qualitätsanforderungen möglichst gut erfüllt.
Die Modelle lassen sich teils, die Methoden größtenteils miteinander kombinieren. Interessant sind die Modelle der agilen Prozesse wie das Extreme Programming insbesondere deshalb, weil sie Synergieeffekte des gleichzeitigen Einsatzes verschiedener Methoden nutzen.