Qualität des SW-Entwicklungsprozesses

Die Qualität eines Produktes hängt wesentlich von der Qualität des Erstellungsprozesses ab. Diese Beobachtung war Anlass für verschiedene Ansätze, die auf die Verbesserung des SW-Entwicklungsprozesses abzielen. Drei davon sind im folgenden skizziert.

Der ISO 9000 Ansatz

Das ISO 9000-Normenwerk legt für das Verhältnis von Auftraggeber und Lieferant einen allgemeinen, organisatorischen Rahmen zur Qualitätssicherung (QS) beliebiger Produkte fest. Kernstück ist die Norm ISO 9001, die Modelle zur Beschreibung der Qualitätssicherung in Entwicklung, Produktion, Montage, Endprüfung und Wartung definiert. Da diese Modelle in einigen Punkten nicht zur Beschreibung der QS bei der Erstellung, Lieferung und Wartung von Software geeignet sind, werden in  ISO 9000-3 Richtlinien angegeben, wie ISO 9001 hier anzuwenden ist.
ISO 9000-3 schreibt kein spezielles Vorgehensmodell vor, fordert aber, dass Die Inhalte folgender Dokumente sind in ISO 9000-3 festgelegt und dienen dem Nachweis einer an  ISO 9001 orientierten Vorgehensweise bei der SW-Entwicklung:
Vertrag Auftraggeber-Lieferant
Annahmekriterien; Behandlung von Änderungen der Auftraggeberforderungen, Behandlung von Problemen, die nach der Annahme entdeckt werden; vom Auftraggeber zu erbringende Tätigkeiten insbesondere bei Festlegung der Forderungen, Installation und Annahme ...
Spezifikation (des Auftragggebers)
vollständiger und eindeutiger Satz von funktionalen Forderungen; weitere Forderungen z.B. an Leistung, Ausfallsicherheit, Zuverlässigkeit, Datensicherheit, Persönlichkeitsschutz; Schnittstellen zu anderen Hardware- und Softwareprodukten.
Entwicklungsplan
sollte dem Entwicklungsfortschritt angepasst werden. Vor Beginn einer Phase sollen die Tätigkeiten dieser Phase festgelegt sein. Vor seiner Ausführung soll er überprüft und genehmigt sein. Sein Inhalt in Stichworten:
  • Festlegung des Projektes, seiner Ziele, seines Bezugs zu anderen Projekten;
  • Planung der Projektmittel einschließlich Teamstruktur, Verantwortlichkeiten, Heranziehung von Unterlieferanten und zu verwendender materieller Hilfsmittel;
  • gewähltes Vorgehensmodell (s.o.);
  • Management des Projekts, festzulegen sind insbesondere: Termine für Entwicklung, Implementierung und zugehörigen Lieferungen; Fortschrittsüberwachung, Festlegung organisatorische Verantwortungen, Mittel und Arbeitszuteilungen; organisatorische und technische Schnittstellen zwischen verschiedenen Gruppen;
  • zu verwendende Entwicklungsmethoden und Werkzeuge: Regeln, Praktiken und Übereinkommen für die Entwicklung; Werkzeuge und Techniken für die Entwicklung; Konfigurationsmanagement;
  • Projektplan: durchzuführende Aufgaben, dafür benötigte Zeit und Mittel, Abhängigkeiten zwischen den Aufgaben;
  • Identifikation weiterer verwendeter Pläne für z.B. Qualitätssicherung, Konfigurationsmanagement, Integration und Test;
  • Qualitätssicherungsplan
    Testplan
    Pläne für Modul-, Integrations-, System- und Abnahmetests; Testfälle, Testdaten und erwartete Ergebnisse; Art der durchzuführenden Tests wie z.B. Funktionstest, Lasttest, Brauchbarkeitstest, Test unter Grenzbedingungen; Testumgebungen, -werkzeuge und zu verwendende Test-Software; Kriterien für die Vollständigkeit des Tests;
    Wartungsplan
    Umfang der Wartung, Identifikation des Ausgangszustand des Produktes, unterstützende Organisationen, Wartungstätigkeiten, Wartungsaufzeichnungen und -berichte.
    Konfigurationsmanagementplan
    die Organisationen, die am Konfigurationsmanagement beteiligte sind, sowie die ihnen zugewiesenen Verantwortlichkeiten; die auszuführenden  Konfigurationsmanagement-Tätigkeiten; die zu verwendenden Konfigurationsmanagement-Werkzeuge, -Technologien und -Methoden; das Stadium, in dem Elemente der Konfigurationslenkung unterworfen werden sollen.

    Der CMM-Ansatz

    Das Software Engineering Institute (SEI) der Carnegie Mellon University veröffentlichte erstmals 1991 das Capability Maturity Model (CMM, Prozeßreife-Modell). Dieses Referenzmodell des Softwareentwicklungsprozesses kann herangezogen werden, wenn die Qualität des SW-Entwicklungsprozesses bei einem SW-Lieferanten zu bewerten ist.
    Das CMM unterscheidet fünf verschiedene, aufeinander aufbauende Qualitätsstufen, sogenannte Reifegrade:
    1. Initial: chaotischer ad-hoc Prozess, nur informell vorhanden, "Künstler" und "Helden" agieren. Alles ist möglich: vom Glückstreffer eines vollkommen erfolgreichen Projektes bis hin zum totalen Scheitern. Kosten, Zeit und Qualitität sind unvorhersehbar. Nach einer Studie von 1989 befanden sich 74% der untersuchten US-Firmen auf dieser Stufe.
    2. Wiederholbar (repeatable): intuitiver Prozess, von Individuen abhängig. Kosten und Qualität schwanken, ganz gute Termin-Kontrolle, informelle Vorgehensweisen dominieren. Erfolge früherer Projekte mit ähnlichen Aufgabenstellungen sind wiederholbar. 1989 sind 22% der US-Firmen auf dieser Stufe.
    3. Definiert (defined): der Prozess ist qualitativ vollständig definiert und institutionalisiert, er umfasst und integriert sowohl die  technischen Aktivitäten der Ingenieure als auch von die organisatorischen Aktivitäten des Managements. Er ist damit im wesentlichen unabhängig von Individuen. Kosten und Termine werden beherrscht, Qualität ist verbessert, aber immer noch nicht vorhersehbar. 1989 sind nur 4% der US-Firmen so weit fortgeschritten.
    4. Geleitet (managed): eine zentrale Steuerung des Prozesse sammelt Prozessmaße (Metriken). An kritischen Entwicklungsstellen werden solche Masse als Entscheidungshilfen für das weitere Vorgehen herangezogen. Eine statistische Kontrolle der Produkt-Qualität wird erreicht.
    5. Optimierend (optimizing): die gesammelten Prozessmasse und weitere Rückkopplungsinformationen werden benutzt, um den Prozess zu verbessern, ohne ernsthafte Auswirkungen auf Kosten oder Zeitpläne zu riskieren..
    Das CMM legt zu den einzelnen Stufen Disziplinen (key process areas) fest, die eine SW-Entwicklungsorganisation auf der jeweiligen Stufe in ihrem Prozess sicher beherrscht und routiniert verwendet. Z.B. für die  Stufe "wiederholbar" sind dies die Disziplinen
    1. Anforderungsmanagement (requirements management),
    2. Projektplanung,
    3. Projektverfolgung,
    4. Unterauftragsnehmermanagement (subcontractor management),
    5. Qualitätssicherung und
    6. Konfigurationsmanagement.
    Für die Stufe "definiert" werden u.a. verlangt: Wesentlich detaillierter beschrieben wird das Modell in den englischsprachigen Technischen Berichten des SEI:
    1. Capability Maturity ModelSM for Software, Version 1.1, lokale Kopie(466 KB)
    2. Key Practices of the Capability Maturity ModelSM , Version 1.1, lokale Kopie(920KB)

    Das V-Modell des Bundes

    Das V-Modell ist ein international anerkannter Entwicklungsstandard für IT-Systeme. Es legt einheitlich und verbindlich fest, was zu tun ist, wie die Aufgaben durchzuführen sind und womit dies zu geschehen hat. Es umfaßt die folgenden drei Standards: Damit ist klar umrissen, in welchen Schritten und mit welchen Methoden die Entwicklungsarbeiten auszuführen sind und welche funktionalen Eigenschaften die zum Einsatz kommenden Werkzeuge aufweisen müssen.

    Bei der Gesellschaft für Datenverarbeitung (GMD) kan man dieses sehr umfangreiche Modell online studieren.  Detaillierte und aktuelle Informationen finden sich auch unter  http://www.v-modell.iabg.de/.    Eine Kurzbescheibung (Word !!,) ist lokal (570 KB) vorhanden.