Kriterien für die Qualität von Software


Korrektheit

die Fähigkeit von Softwareprodukten, die definierten Anforderungen exakt zu erfüllen.

Robustheit

die Fähigkeit von Softwaresystemen, auch unter außergewöhnlichen Bedingungen zu funktionieren.

Erweiterbarkeit

die Leichtigkeit, mit der Softwareprodukte an neue Anforderungen angepaßt werden können. Erweiterbarkeit wird begünstigt durch die Einfachheit des Entwurfs und durch Dezentralisierung in Module mit hoher Autonomie.

Wiederverwendbarkeit

Eigenschaft der Software, ganz oder teilweise für neue Aufgaben wiederbenutzt zu werden.

Verträglichkeit (Kompatibilität)

das Maß der Leichtigkeit, mit der Softwareprodukte mit anderen verbunden werden können. Zu oft gibt es große Interaktionsprobleme, weil ein Programm unverträgliche Annahmen über den Rest der Welt macht. Der Schlüssel zu einer besseren Verträglichkeit liegt in der Standardisierung der Kommunikation zwischen verschiedenen Programmen.

Portabilität

die Leichtigkeit, mit der Softwareprodukte auf verschiedene Hardware- und Software-Umgebungen angepaßt werden können.

Verifizierbarkeit

die Leichtigkeit, mit der Abnahmeprozeduren (Fehlererkennung und -verfolgung) erzeugt werden können.

Integrität

Fähigkeit des Softwaresystems, seine verschiedenen Komponenten gegen unberechtigte Zugriffe und Veränderungen zu schützen.

Benutzerfreundlichkeit

Leichtigkeit, mit der die Benutzer die Handhabung des Softwaresystems wahrnehmen und erlernen können.

 


Bewertung der Entwurfsmethoden für Software

Zerlegbarkeit

bei der Zerlegung eines Problems in Teilprobleme können die Lösungen jeweils getrennt gesucht und gefunden werden.

Kombinierbarkeit

Module können frei zur Herstellung neuer Systeme kombiniert werden, etwa im Sinne eines Baukastenprinzips.

Verständlichkeit

die Leistung von einzelnen Softwaremodulen soll aus sich heraus verständlich sein, ohne daß man eine Vielzahl von Nachbarmodulen untersuchen muß. Insbesondere sollen keine Abhängigkeiten von der Reihenfolge des Aufrufs bestehen.

Stetigkeit

eine Änderung der Programmspezifikation soll nur wenige Module betreffen und nicht die gesamte Architektur des Systems berühren.

Modulgeschütztheit

die Auswirkung einer zur Laufzeit eines Moduls auftretenden Ausnahmesituation soll sich nur auf das betroffene Modul, höchstens auf wenige benachbarte Module erstrecken.