home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Definitionen

Im englischen Sprachgebrauch existieren drei verschiedene Begriffe, die im deutschen mit "Fehler" übersetzt werden, die es jedoch zu trennen gilt:

Fault

Man könnte einen Fault als Defekt, inneren Fehler oder als Fehlerursache bezeichnen. Er beschreibt den Irrtum bei der Softwareentwicklung, beispielsweise die vergessene oder fehlerhafte Implementierung einer Anweisung oder einer Anforderung.

Error

Der Error ist die Abweichung zwischen einem beobachtetem/gemessenem und spezifiziertem/theoretischen Wert.

Failure

Die Übersetzung für Failure könnte Fehlfunktion, äußerer Fehler, Ausfall oder Fehlerwirkung lauten. Der Failure ist das nach außen sichtbare und bei der Anwendung (!) der Software auftretende Fehlverhalten. Bekannte Failures sind die sogenannten Blue screens.

Fehlervermeidung

Die letztlich vom Benutzer wahrgenommene Qualität einer Software hängt von vielen Einflussfaktoren ab.

     

  • Zum einen wirkt sich die Güte des Entwicklungsprozesses sehr stark auf die Qualität aus. Definierte Abläufe, die beispielsweise Reviews oder Reihenfolgen für die Spezifikations- oder Designphase verlangen, entscheiden mit über die Fehleranzahl einer Software. TODO Links zu den beiden Phasen einfügen.
  • Spezifikationsrichtlinien: Formale Methoden (z.B. Use-Case-Analyse, Beschreibung funktionaler und nicht funktionaler Anforderungen)
  • Designrichtlinien: Komponenten- und objektorientiertes Design, Trennung gemäß MVC uvm.
  • Implementierungsrichtlinien: Einhalte von Namenskonventionen und Metriken, korrekte Fehlerbehandlung uvm.

Die ISO9126 beschreibt, wie Prozessqualität und interne Qualitätsattribute (z.B. die eben genannten Metriken) die nach außen sichtbaren Qualitätsattribute und damit wiederum die vom Benutzer wahrgenommene Qualität des Softwareprodukt beeinflussen.

Fehlerarten

Auch wenn dies intuitiv oft anders erwartet wird, sind es nicht Fehlfunktionen (mangelnde Funktionalität), die in der Liste der Qualitätsattribute gemäß ISO9126 am häufigsten genannt werden, wenn nach der Art des Fehlers gefragt wird:

     

  • 40% Fehlfunktionen (Funktionality): Berechnung, Genauigkeiten, Funktionserfüllung, Vertraulichkeit, Vollständigkeit, Einhaltung von Normen und Standards
  • 60% Unzuverlässigkeit (Reliability): Reife, Stabilität gegen Fehleingaben, Reproduzierbarkeit, Verfügbarkeit, Robustheit
  • 65% Mangelnde Benutzbarkeit (Usability): Verständlichkeit, Erlernbarkeit, Dokumentation, Transparenz
  • 19% Unzureichende Effizienz (Efficiency): Ressourcenverbrauch, Antwortverhalten
  • 67% Eingeschränkte Wartbarkeit (Maintainability): Testbarkeit, Anpassbarkeit, Erweiterbarkeit, Stabilität gegen Änderungen, Verständlichkeit/Dokumentation
  • 15% Mangelnde Portabilität (Portability): Übertragbarkeit, Kompatibilität

Dies unterstreicht nochmals die Bedeutung der Notwendigkeit, wartbare Software zu entwickeln.

Fehlerkosten

Eine Studie aus den USA (http://www.nist.gov/director/prog-ofc/report02-3.pdf) schätzt die jährlich durch fehlerhafte Software entstandenen Kosten auf 1840 Mrd USD! Dies ist ein gewaltiger Volkswirtschaftlicher Schaden.

Eine effektive Entwicklung bedingt, dass Fehler möglichst früh im Entwicklungsprozess gefunden werden. Die Folgekosten wachsen exponentiell an. Ein Fehler, der während des Betriebs gefunden wird, ist zehnmal so teuer zu beheben, wie ein Fehler, der Bereits während der Implementierung beseitigt werde konnte.