Aspekte der Software-Qualität
- Äußere Faktoren
- Korrektheit
- Robustheit
- Wiederverwendbarkeit
- Kompatibilität
- Effizienz
- Benutzerfreundlichkeit
- Innere Faktoren
- Modularität
- Lesbarkeit
- Verifizierbarkeit
- Integrität
- Erweiterbarkeit
- Portabilität
Äußere Qualitätsfaktoren
Korrektheit
Korrektheit ist die Fähigkeit, Aufgaben exakt zu erfüllen, wie sie durch die Anforderungen und Spezifikationen (Pflichtenheft) definiert sind.
- Wichtigste Eigenschaft von Software.
Robustheit
Robustheit ist die Fähigkeit von S/W, auch unter außergewöhnlichen Bedingungen zu funktionieren.
- Was passiert in Ausnahmefällen (nicht in Systemspezifikation beschrieben)
- Notwendigerweise undeutlicherer Begriff als Korrektheit
- Verhinderung katastrophaler Folgen infolge extremer Situationen („sauberer Abgang“)
- Zuverlässigkeit = Korrektheit + Robustheit
Wiederverwendbarkeit
Wiederverwendbarkeit ist die Eigenschaft, ganz/teilweise für neue Anwendungen wiederverwendet zu werden.
- Voraussetzungen: modularer Aufbau
- Ist S/W wiederverwendbar, muß weniger S/W neu geschrieben werden und es kann mehr Aufwand in Faktoren Korrektheit, Robustheit etc. gesteckt werden
Kompatibilität
Kompatibilität ist das Maß an Leichtigkeit, mit der S/W mit anderer S/W verbunden werden kann.
- Verträglichkeit untersch. Hardware: SCSI, IDE, USB
- Verträglichkeit untersch. Codes: DLL's, ODBC, CORBA, GUI nach SAA (CUA)
- Verträglichkeit untersch. Datenformate: DBF, TXT, HTML
- Standardisierung contra proprietäre Insellösungen
Effizienz
Ressourcennutzung bezeichnet die Art und das Ausmaß der Nutzung von Speicherplatz, Laufzeit etc.
- Zeit und Speicherplatz häufig konkurrierend
- Systembelastung
Benutzerfreundlichkeit
Benutzerfreundlichkeit kennzeichnet daß Maß, in dem ein Benutzer ergonomisch eine S/W benutzen kann.
- Einarbeitungszeit in die Steuerung der Applikation
- Schnelligkeit, mit der man Arbeitsvorgänge über Applikation ausführen kann
- Import- und Exportmöglichkeiten
- Übersichtliche, eindeutige und klare Benutzerführung
- Standardisierte Arbeitsvorgänge
- Hilfestellung (grundlegende und kontextsensitive Hilfe)
- Anpaßbarkeit (Optionen, Makros, Erweiterbarkeit um benutzerdef. Funktionen etc.)
Innere Qualitätsfaktoren
Modularität
Modularität bedeutet eine klare Aufgabenteilung zwischen S/W-Komponenten („Gewaltenteilung“).
Trennung von
- User-Interface
- Steuerungslogik
- Kernfunktionalität
- Fileoperationen
- evtl. Event-Handling etc.
Lesbarkeit
Lesbarkeit kennzeichnet die Verständlichkeit des Quelltextes.
- Grundlage der S/W-Pflege und Verifizierbarkeit von Algorithmen
- Auch eine ausreichende Dokumentation zählt dazu
Verifizierbarkeit
Verifizierbarkeit ist ein Maß für die Leichtigkeit der Fehlererkennung und -behebung.
- Klare Vor- und Nachbedingungen der Funktionen und Module
- Debugging-Möglichkeiten
Integrität
Integrität ist der Schutz vor Zugriffen von außen.
- Strukturale Programmierung: ADT's, geschlossene Module mit definierten Schnittstellen für den Anwendungsprogrammierer
- OOP: Kapselung, Getter- und Setter-Methoden
Erweiterbarkeit
Erweiterbarkeit ist ein Ausdruck für die Leichtigkeit, mit der Softwareprodukte an Spezifikationsänderungen angepaßt werden können.
- Voraussetzungen: Einfacher, klarer Entwurf und Dezentralisierung
- Skalierbarkeit heutzutage immer wichtiger
Portabilität
Portabilität kennzeichnet die Übertragbarkeit auf andere Systeme.
- stark sprachabhängig
- Vermeidung plattformabhängiger Systemaufrufe („Defensive Programmierung“)