Software-Qualität
Was ist Software-Qualität?
Grundlegende Arbeiten zu dieser Frage hat D. A. Garvin von der Harvard-Universität geliefert [Garv84]. Er unterscheidet aufgrund von empirischen Untersuchungen fünf Ansätze, um zu einer Qualitätsvorstellung zu kommen.
1 - Der „transzendente“ Ansatz
Danach ist Qualität universell erkennbar und ein Synonym für kompromisslos hohe Standards und Ansprüche an die Funktionsweise eines Produkts. Die Vertreter dieses Ansatzes glauben allerdings, dass sich Qualität in diesem Sinne nicht präzise definieren oder messen lässt. Ebenso meinen sie, dass Qualität nur durch Erfahrung bewertet werden kann. Der Begriff der Qualität kann genauso wenig implizit definiert werden wie z.B. jener der Schönheit. Vertreter dieses Ansatzes meinen, es genüge, ein Software-Produkt am Bildschirm durch seine Handhabung zu erleben.
2 - Der produktbezogene Ansatz
Die Vertreter dieses Ansatzes glauben, dass die Qualität präzise messbar ist. Danach spiegeln Qualitätsdifferenzen Unterschiede in der vorhandenen, beobachtbaren Quantität bestimmter Eigenschaftsausprägungen wider, die in einem Produkt festgestellt werden können. Dieser Ansatz erlaubt es im Prinzip, eine Rangordnung von verschiedenen Software-Produkten der gleichen Kategorie anzugeben.
In den 60er Jahren des letzten Jahrhunderts haben amerikanische Auftraggeber von Großprojekten begonnen, Software-Bewertungsmethoden zu entwickeln, um bei der Beschaffung und Entwicklung unterschiedliche Produkte von Software-Lieferanten besser beurteilen zu können. Es wurden Merkmalsmodelle wie z.B. jenes von McCall [McCa77] und Bewertungsverfahren entwickelt, die es erlauben, Produkte qualitativ zu evaluieren und zu klassifizieren.
3 - Der anwenderbezogene Ansatz
Hierbei liegt die Auffassung vor, dass die Qualität durch den Produktbenutzer festgelegt wird und weniger durch das Produkt selbst. Danach haben verschiedene Produktbenutzer unterschiedliche Wünsche und Bedürfnisse, und diejenigen Produkte, die diese Bedürfnisse am besten befriedigen, werden als qualitativ hochstehend angesehen. Beispielsweise werden bei der Einführung des Unternehmensportals mySAP.com im Finanzbereich eines Unternehmens zuerst einmal die Rollen (z.B. Senior Management, Kostenstellenverantwortliche, Controller) definiert. Durch eine HTML-basierte Web-Oberfläche wird den unterschiedlichen Benutzerrollen der Zugriff auf SAP-Funktionen ermöglicht. Das „Look and Feel“ der Webseiten kann rollen-, unternehmens- und branchenspezifisch den Anforderungen der Nutzer an ihren Arbeitsplatz angepasst werden.
4 - Der prozessbezogene Ansatz
Nach diesem Ansatz ist Qualität gleichzusetzen mit der Einhaltung von Spezifikationen, mit der Idealvorstellung, eine Tätigkeit zur Produkterstellung gleich das erste Mal richtig auszuführen. Diese Vorstellung von Qualität ist auf die heutige Wirtschaft und Industrie ausgerichtet. Im Mittelpunkt steht der Produktionsprozess, der kontrolliert wird, um die Ausschuss- und Nachbearbeitungskosten zu verringern. Dabei spielt der Automatisierungsgrad eine große Rolle. Insbesondere Roboter und Automaten sollen gewährleisten, dass Produktionsprozesse soweit als möglich mängelfrei und reibungslos abgewickelt werden. Für Software-Projekte bedeutet dies, dass durch geeignete Auswahl und Anpassung (Tailoring) von Prozess-/Vorgehensmodellen und durch ausreichenden Einsatz prüfender (analytischer) Qualitätsmaßnahmen wie z.B. durch Reviews Prozesse so angewandt werden, dass Prozess- und Produktspezifikationen erfüllt werden. Der Vorteil dieses Ansatzes ist, dass durch Prozesskostenrechnung, Quality Function Deployment (QFD) und Kundenorientierung auch die Eigenschaften der Ansätze von 2, 3 und 5 erfüllt werden können.
5 - Der Preis-Nutzen-bezogene Ansatz
Bei diesem Ansatz wird ein Bezug zwischen Preis und Qualität hergestellt. Ein Qualitätsprodukt ist in dieser Denkweise ein Erzeugnis, das einen bestimmten Nutzen zu einem akzeptablen Preis oder eine Übereinstimmung mit Spezifikationen zu akzeptablen Kosten erbringt. Beispielsweise möchte der Finanzvorstand eines Energieversorgungsunternehmens mit einer neuen Informatik-/Software-Lösung für das Rechnungswesen eine jährliche Einsparung von ca. 15 Millionen Euro realisieren. Die neue Lösung kostet ca. 60 Millionen Euro und er rechnet mit einer Amortisierung dieser Investition nach 4 Jahren.
Neben diesen Ansätzen, die versuchen, den Begriff Qualität durch Umschreibung zu verdeutlichen, gibt es auch eine Reihe von Versuchen, den Begriff Qualität zu definieren. Je nach Präferenz und individueller Auffassung des Einzelnen werden dabei verschiedene Akzente gesetzt. Im Folgenden werden verschiedene Qualitätsbegriffe diskutiert und ihre Anwendbarkeit für Software-Produkte geprüft.
In der Norm ISO 8402 heißt es:
„Qualität ist die Gesamtheit von Merkmalen einer Einheit bezüglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen.“
Diese Definition geht von einem strengen Kunden-/Lieferantenverhältnis aus. Es lassen sich aus dieser Definition zwei wesentliche Schlussfolgerungen ziehen:
- Die Eignung ein und derselben Sache kann für verschiedene Verwendungen unterschiedlich sein. Beispielsweise ist ein komplexes, alles an Funktionalität bietendes Konfigurationsmanagement-Tool für kleine Software-Projekte (Aufwand < 6 Personenmonate) schlechter geeignet als ein einfacheres Tool, das weniger an Funktionalität bietet.
- Die Erfordernisse ergeben sich aus dem Verwendungszweck des Software-Produkts. Ein Air-Traffic-Control-System hat ca. 6000 Anforderungen. Zur Prüfung dieser Anforderungen ist ein Anforderungsdatenbanksystem wie z.B. DOORS oder C.A.R.E. einzusetzen. Mit diesen Werkzeugen ist eine ausreichende Prüf- und Verfolgbarkeit der Anforderungen möglich.
Ein Produkt oder eine Tätigkeit (z.B. eine Dienstleistung) hat verschiedene Eigenschaften, von denen nicht alle die Qualität konstituieren. Eigenschaften, die die Qualität festlegen, sind jene, die für den Produktbenutzer oder den Dienstleistungsnehmer relevant sind, d.h. die vorgegebenen Erfordernisse erfüllen.
Die IEEE-Norm für Software-Qualität (IEEE Std 729-1983) hebt die Erwartungen der Kunden hervor:
Software quality:
(1) The totality of features and characteristics of a software product that bear on its ability to satisfy given needs; for example, conform to specifications.
(2) The degree to which software possesses a desired combination of attributes.
(3) The degree to which a customer or user perceives that software meets his or her composite expectations.
(4) The composite characteristics of software that determine the degree to which the software in use will meet the expectations of the customer.
(1) The totality of features and characteristics of a software product that bear on its ability to satisfy given needs; for example, conform to specifications.
(2) The degree to which software possesses a desired combination of attributes.
(3) The degree to which a customer or user perceives that software meets his or her composite expectations.
(4) The composite characteristics of software that determine the degree to which the software in use will meet the expectations of the customer.
Wenn wir uns nicht nur mit der Bewertung von fertigen Software-Produkten zufrieden geben, sondern Qualität auch konstruktiv realisieren wollen, müssen wir einen Bewertungsansatz für den Entwicklungs- und Pflegeprozess aufstellen. Das bedeutet, dass wir Merkmale und Bewertungsmaßstäbe auch für Zwischen-/Endprodukte und für deren Entwicklungsaktivitäten in allen Phasen des Prozesses benötigen.
Gleichzeitig sollte uns bewusst sein, dass Qualität nichts Absolutes ist, sondern immer relativ zu gegebenen Erfordernissen gesehen werden muss. Daraus leiten wir ab, dass eine Qualitätsbewertung immer einen Vergleich beinhaltet zwischen den aus den gegebenen Erfordernissen abgeleiteten Qualitätsvorgaben (Soll-Werte) und den tatsächlich erreichten Ausprägungen der Merkmale (Ist-Werte).
Boehm stellt zur Problematik der Bestimmung der Qualität eines Software-Produktes sinngemäß folgende drei Fragen [Boeh78]:
- Problem der Definition von Software-Qualität Ist es überhaupt möglich, Definitionen der Eigenschaften und Merkmale eines Software-Produkts aufzustellen, die messbar sind und sich nicht überschneiden?
- Problem der Qualitätsprüfung Wie gut kann man die Qualität eines Software-Produkts bzw. die Eigenschaften und Merkmale messen, welche die Qualität des Software-Produkts bestimmen?
- Problem der Qualitätslenkung Wie kann man Informationen über die Qualität des Produkts zur Verbesserung des Produkts im Lifecycle verwenden?
Zunächst einmal spricht er das Problem der Eindeutigkeit und Relevanz von Prozess-und Produktmerkmalen an. Jeder von uns definiert und interpretiert heute (Qualitäts-)Merkmale anders. Eine Klärung der Begriffe hinsichtlich der Produktmerkmale erfolgt durch die Norm ISO 9126. In dieser Norm werden Merkmale für die Evaluation von Software-Produkten und ein Prozess zur Evaluation vorgestellt. Die in der Norm definierten Merkmale sind Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Wartbarkeit und Portabilität.
In der zweiten Frage taucht das Problem der Vollständigkeit und Prägnanz der Qualitätsmerkmale auf. Hier geht es mit anderen Worten darum, wie gut wir einzelne Anforderungen mit einem vorgegebenen Instrumentarium formulieren können, ob es dabei Lücken gibt oder ob gewisse Anforderungen mehrfach durch verschiedene Qualitätsmerkmale abgedeckt werden.
In der dritten Fragestellung klingt durch, dass Qualität eine Steuerungsgröße für den Prozess ist. Entscheidend ist die Rückkopplung der Ergebnisse von Qualitätsprüfungen mit der Prozesssteuerung.
Eine Voraussetzung für ein qualitätsbewusstes Umgehen mit Software ist, dass diese als Produkt gesehen wird. Wir meinen damit, dass eine aktuelle und ausreichende Dokumentation, in der neben Programmen auch die Daten beschrieben werden, existiert, um überhaupt von einem Produkt sprechen zu können.
Ein Software-Produkt (siehe IEEE Std 729, Glossar der Software-Engineering-Terminologie) besteht aus den Teilen Sourcecode, Objektcode und Dokumentation. Differenzierte und den Erfordernissen von Software-Produkten angepasste Abgrenzungen des Qualitätsbegriffs bieten Qualitätsmodelle. Die bekanntesten sind jene von McCall [McCa77], Boehm [Boeh76], Willmer [Will85], NEC [Azum85] und Siemens ([Asam86], [Zopf88]). Der Autor hat im Rahmen eines Projektes, bei dem ein Qualitätssystem aufgebaut und eingeführt wurde, ebenfalls ein Qualitätsmodell erstellt [Wall87]. Qualitätsmodelle tragen wesentlich zur Vereinheitlichung der verschiedenen Vorstellungen über Software-Qualität bei. Durch ihre strukturelle Zerlegungssystematik wird der nebelhafte Begriff Software-Qualität konkretisiert. Die am weitesten entwickelten Modelle, beispielsweise das von McCall und von NEC, erlauben es, Qualitätsplanung und Qualitätsbewertungen damit durchzuführen.
Literatur - Quellen
| [Asam86] | Asam R., Drenkard N., Maier H.-H.: Qualitätsprüfung von Softwareprodukten; Siemens AG 1986. |
| [Azum85] | Azuma M., Sunazuka T., Yamagishi N.: Software Quality Assessment Technology; Proc. of 8th Int. Conf. on Software Engineering, London, 1985, pp. 142–148. |
| [Boeh76] | Boehm B., Brown J. R., Lipow M.: Quantitative Evaluation of Software Quality; Proc. of 2nd Int. Conf. on Software Engineering, 1976, pp. 592–605. |
| [Boeh78] | Boehm B.: Characteristics of Software Quality; North-Holland 1978. |
| [Garv84] | Garvin D. A.: What does Product Quality Really Mean?; Sloan Management Review, Fall 1984, pp. 25–43. |
| [McCa77] | McCall J. A., Richards P. K.,Walters G. F.: Factors in Software-Quality,Vol. I-III; Rome Air Development Center 1977. |
| [Wall87] | Wallmüller E.: Aufbau einer Software-Qualitätssicherung in einer industriellen Umgebung; Informationstechnik 2, 1987, pp. 103–107. |
| [Will85] | Willmer H.: Systematische Software-Qualitätssicherung anhand von Qualitäts- und Produktmodellen; Springer 1985. |
| [Zopf88] | Zopf S.: Praktisches Vorgehen zur Sicherung definierter Software-Qualitätsziele; Tagungsband zur 3. Softwaretest-Fachtagung 1988. |
|




