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 SW-Entwicklung in Phasen stattfindet,
-
die Vorgaben und die geforderten Ergebnisse der Phasen sowie die Verifizierungsverfahren
jeder Phase festgelegt und dokumentiert sind,
-
die Erfüllung der Vorgaben einer Phase überprüfbar sind,
-
die Ergebnisse jeder Phase verifiziert werden,
-
die Verifizierungsergebnisse aufgezeichnet werden,
-
nur verifizierte Entwicklungsergebnisse an das Konfigurationsmanagement
übergeben und für die weitere Verwendung freigegeben werden.
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
-
gesetzte, möglichst meßbare Qualitätsziele;
-
an die Phasenergebnisse anzulegende Kriterien;
-
Art der auszuführenden Verifikations-, Validierungs- und Testmaßnahmen;
-
Planung dieser Maßnahmen einschließlich Terminen, Mitteln und
Genehmigungsverfahren;
-
besondere Verantwortungen für QS-Maßnahmen wie z.B. Reviews
und Tests, sowie Konfigurationsmanagement und Änderungswesen, Fehlermeldungwesen
und Korrekturmaßnahmen.
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:
-
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.
-
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.
-
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.
-
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.
-
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
-
Anforderungsmanagement (requirements management),
-
Projektplanung,
-
Projektverfolgung,
-
Unterauftragsnehmermanagement (subcontractor management),
-
Qualitätssicherung und
-
Konfigurationsmanagement.
Für die Stufe "definiert" werden u.a. verlangt:
-
Konzentration auf Prozessorganisation: Eine (zentrale) Gruppe etablieren,
die für die Verbesserung des Software-Prozesses verantwortlich ist.
-
Prozessdefinition: Festlegung und Bereitstellung eines Standard Prozesses
für die gesamte Organisation,
-
Schulungsprogramm zur Vermittlung des Wissen und der Fähigkeiten,
die Mitarbeiter für die Wahrnehmung ihrer Rollen im SW-Entwicklungsprozess
benötigen.
-
Integration von SW-Entwicklung und Management: Management- und Entwicklungsaktivitäten
sind in einem zusammenhängenden Prozess integriert, beide Seiten verwenden
das gleiche Modell, Standardprozesse werden auf Projekte zugeschnitten.
-
SW-Produkt-Engineering: Verschiedene Software-Produkte werden miteinander
konsistent gehalten, die software-technischen Aufgaben sind definiert,
in den Prozess integriert und werden konsequent ausgeführt.
-
Gruppenübergreifende Koordination: Z.B. über die Produktanforderungen
sind sich alle beteilgten Gruppen wie etwa Produktmanagement, Vertrieb,
Service, Entwicklerteams, ... einig, eingegangene Verpflichtungen werden
von allen Beteiligten respektiert, Probleme werden zügig entdeckt,
verfolgt und gelöst.
-
Peer reviews für die vorzeitige Fehlerbehebung.
Wesentlich detaillierter beschrieben wird das Modell in den englischsprachigen
Technischen Berichten des SEI:
-
Capability Maturity ModelSM
for Software, Version 1.1, lokale
Kopie(466 KB)
-
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:
-
das Vorgehensmodell mit den Submodellen
-
SWE Softwareerstellung
-
QS Qualitätssicherung
-
KM Konfigurationsmanagement
-
PM Projektmanagement
beschreibt die Aktivitäten (Tätigkeiten) und Produkte (Ergebnisse),
die während der Entwicklung von Software durchzuführen bzw. zu
erstellen sind. Das Vorgehensmodell ist neben dem militärischen Bereich
auch für den gesamten Bereich der Bundesverwaltung verbindlich und
wird von sehr vielen Industriefirmen als Hausstandard zur Softwareentwicklung
verwendet. Mit seiner Hilfe können Projekte gemäß der Norm
ISO 9001 abgewickelt werden.
-
die Methodenzuordnung, die vorschreibt, mit welchen Methoden die
Aktivitäten des Vorgehensmodells durchzuführen sind und welche
Darstellungsmittel in den Ergebnissen zu verwenden sind
-
die Funktionalen Werkzeuganforderungen, die von denjenigen Software-Werkzeugen
("tools") erfüllt werden müssen, die bei der Entwicklung von
Software eingesetzt werden sollen.
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.