Qualität

Qualität ist eines der zentralen Probleme heutiger Softwareentwicklungen. Softwaresysteme sind von diskreter Natur. Sie stellen sich als Menge unterschiedlichster Systemzustände und Transitionen zwischen diesen dar. Tendenziell weisen Softwaresysteme eine Zunahme an Komplexität auf. Dies impliziert eine exponentiell wachsende Anzahl von Zuständen und Transitionen und somit einen höheren Qualitätssicherungsaufwand.

Doch nicht nur die diskrete Natur von Softwaresystemen ist für die bekannten Qualitätsschwächen verantwortlich zu machen. Im Gegensatz zu den sich immer weiter entwickelnden Programmiersprachen und ihren Compilern haben sich die Methoden zur Umsetzung von Anforderungen in Lösungen während der letzten Jahrzehnte kaum verändert. Im Gegenteil, die höhere Abstraktionsfähigkeit heutiger Methoden/Sprachen verleitet zu weniger Analyse, weniger Spezifikation, weniger Planung und letztlich zu weniger Qualität.

Die Kosten mangelnder Qualität sind gravierend. In Software Inspection: An Industry Best Practice [3] beziffert David Wheeler den durchschnittlichen Aufwand zur Beseitigung von Fehlern und Mängeln auf 44% der Gesamtkosten eines Softwareentwicklungsprojektes. Die Kosten selbst kleinster Fehler, wie sie zum Beispiel zum Abbruch des ersten Ariane V Fluges 1996 (820 Millionen DM) oder dem Verlust des Mars Climate Orbiter (327,6 Millionen USD) 1998 geführt haben, sind dabei noch nicht einmal berücksichtigt. Der volkswirtschaftliche Schaden eines Toll Collect Debakels als systematisches Versagen, ist in seinem Umfang noch nicht voll erfasst.

Wie lässt sich die Qualität in der Softwareentwicklung verbessern? Untersuchungen von Michael Fagan [5] in den IBM Kingston Laboratories legen ein formales, auf Effizienz abgestimmtes Vorgehen nah, welches alle Artefakttypen eines Projekts von Beginn an in die Qualitätssicherung einbezieht. Diese Methode, von Tom Gilb und Dorothy Graham in ihrem Werk Software Inspection [4] verfeinert, erlaubt eine Reduzierung des Testaufwands um 85% sowie eine Verringerung der Wartungskosten um den Faktor 10 – alles in allem eine durchschnittliche Einsparung von 30% des Gesamtaufwands. Hier sei der Besuch eines Seminars empfohlen - näheres finden Sie zum Beispiel unter [8].

Eine geeignete Wahl von Prozessen, Methoden und Werkzeugen hebt die Qualität und senkt die Kosten in Softwareprojekten. Softwaretechnische Mittel wie Aspekt Orientierung, Code Generierung [7], Meta Programmierung, Visuelle Modellierung oder statische Code Analysen leisten viel. -stim- berät Sie gern.

Bibliographie

  1. v. Binder, Robert, 1999, Testing Object-Oriented Systems - Models, Pattern, And Tools, Addison Wesley, New York
  2. Jones, Casper, 1996, Applied Software Measurement - Assuring Productivity and Quality, McGraw-Hill
  3. Wheeler, David A., Brykczynski, Bill, Jr Meeson, Reginald N., Meeson, Reginald N., 1996, Software Inspection: An Industry Best Practice, IEEE Computer Society Press
  4. Gilb, Tom, Graham, Dorothy, 1993, Software Inspection, Addison Wesley, Harlow
  5. Various, "Qualitätssicherung", Wikipedia (https://de.wikipedia.org/wiki/Qualitätssicherung)
  6. Fagan, Michael, (http://www.mfagan.com)
  7. Various, "Code-Generierung", Wikipedia (http://de.wikipedia.org/wiki/Code-Generierung)
  8. Peter Rösler (www.reviewtechnik.de)