Georg Erwin Thaller Qualitatsoptimierung der Software-Entwicklung Zielorientiertes Software Development Herausgegeben von Stephen Fedtke Die Reihe bietet Programmierern, Projektleitern, DV-Managern und der Geschaftsleitung wegweisendes Fachwissen. Die Autoren dieser Reihe sind ausschlieBlich erfahrene Speziali sten. Der Leser erhalt daher gezieltes Know-how aus erster Hand. Die Zielsetzung umfaBt: -+ Entwicklungs- und EinfOhrungskosten von Software reduzieren -+ Zukunftsweisende Strategien fOr die Gestaltung der Datenverarbeitung bereitstellen -+ Zeit- und kostenintensive Schulungen verzichtbar werden lassen -+ effiziente L6sungswege fUr Probleme in allen Phasen des Software-Life-Cycles aufzeigen -+ durch gezielte Tips und Hinweise Anwendern einen Erfahrungs- und Wissensvorsprung sichern Ohne Wenn und Aber kommen die Autoren zur Sache. Das Re sultat: praktische Wegweiser von Profis fOr Profis. FOr diejenigen, die heute anpacken, was morgen bereits Vorteile bringen wird. Vieweg Georg Erwin Thaller Qualitatsoptimierung der Software-Entwicklung Das Capability Maturity Model (CMM) I I Vleweg Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag iibernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Aile Rechte vorbehalten © FriedT. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/wiesbaden, 1993 Softcover reprint of the hardcover 1s t edition 1993 Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International. Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbaT. Das gilt insbesondere flir Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Gedruckt auf saurefreiem Papier ISBN-13: 978-3-322-84930-4 e-ISBN-13: 978-3-322-84929-8 DOl: 10.1007/978-3-322-84929-8 v In haltsverzeich ni s Abschnitt I: Software in der modemen Industriegesellschaft 1.1 Die Bedeutung der Software ................................................................ 7 1.2 Eine Basisinnovation: Der Mikroprozessor .......................................... 9 1.3 Risiken und Gefahren ........................................................................ 12 1.3.1 Der ganz gewohnliche Programmierfehler .................................. 12 1.3.2 Kriminalitat in neuem Gewand ................................................... 16 1.3.3 Die vemachlassigte Sicherheit ................................................... 19 1.4 Die Rolle des Capability Maturity Models ........................................ .22 Abschnitt II: Die Software-Entwicklung und das Capability Maturity Model 2.1 Am Anfang war das Chaos ................................................................ 29 2.2 Der Fortschritt im Bereich der Qualitatssicherung .............................. 34 2.2.1 Statistische Qualitatskontrolle: Ein militiirisches Geheimnis ...... .34 2.2.2 KAIZEN: Kontinuierliche Verbesserung ................................... .38 2.2.3 Japans Aufstieg: PreisWOrdigkeit und Qualitat.. ......................... .41 2.2.4 Die Unterschiede zwischen Hardware und Software ................. .43 2.2.5 Crosby: Quality is free .............................................................. .45 2.2.6 Die Projektion des Modells auf die Software-Entwicklung ........ .46 2.3 Das Capability Maturity Model als Instrument der strategischen Planung ............................................ 51 2.4 Die Ansatze zur Verbesserung des Software-Entwicklungsprozesses.53 2.4.1 Das Phasenmodell ...................................................................... 53 2.4.2 Rapid Prototyping ...................................................................... 56 2.4.3 Incremental Delivery .................................................................. 59 2.4.4 Cleanroom ................................................................................. 60 2.4.5 Werkzeuge ................................................................................ 63 2.4.6 Der vergessene Produktionsfaktor: Peopleware .......................... 67 2.4.6.1 Team Building ..................................................................... 71 2.5 Software fast umsonst: Wiederverwendbarkeit.. ................................. 75 2.6 Die beteiligten Disziplinen ................................................................. 81 vi 2.6.1 Das Projektmanagement ............................................................ 81 2.6.1.1 Die AufwandsscMtzung ...................................................... 88 2.6.1.2 Das Projektrisiko ............................................................... 101 2.6.2 Die Software-Entwicklung ....................................................... 103 2.6.2.1 Die Analyse der Anforderungen ......................................... l05 2.6.2.2 Die Entwurfspbase ............................................................ 112 2.6.2.3 Die Jmplementierungspbase ............................................... 119 2.6.2.4 Integration und Test.. ......................................................... 121 2.6.3 Verifikation und Validation ...................................................... 125 2.6.3.1 Inspections und Walkthroughs ........................................... 126 2.6.3.2 Testen ............................................................................... 130 2.6.4 Das Konfigurationsmanagement.. ............................................. 13 7 2.6.5 Die Qualitlltssicberung ............................................................. 150 2.6.5.1 Die Rolle von Normen und Standards ................................ 153 2.6.5.2 Konstruktive und analytiscbe Methoden ............................ 156 2.6.5.3 Die Projektarbeit ............................................................... 160 2.7 Feststellen des IST-Zustandes: Assessment.. .................................... 169 2.7.1 Wo steben die anderen? ........................................................... 169 2.7.2 Assessment: Vorbereitung und mOglicbe Scbwacbstellen ......... 170 2.7.3 Die Durchfiihrung .................................................................... 175 2.8 Das Instrument zurEinfiihrung: The Software Engineering Process Group ........................................ 178 Abschnitt III: Ebene 2 und 3 des Capability Maturity Models 3.1 Ebene 2: REPEATABLE ................................................................. 185 3.1.1 Die Haupttlltigkeiten des Prozesses .......................................... 185 3.1.1.1 Die Software-Anforderungen verwalten ............................. 187 3.1.1.2 Die Planung des Software-Projektes .................................. 192 3.1.1.3 Uberwacben und Verfolgen des Projektfortschrittes .......... 199 3.1.1.4 Die Vergabe von Arbeiten an Unterauftragnehmer ............. 206 3.1.1.5 Software-Qualitlltssicberung .............................................. 209 3.1.1.6 Das Konfigurationsmanagement ........................................ 212 3.1.2 Schritte auf dem Weg zur nacbsten Ebene ................................ 216 3.2 Ebene 3: DEFINED ......................................................................... 217 3.2.1 Die Haupttlltigkeiten des Prozesses .......................................... 217 3.2.1.1 Konzentration auf den ProzeB ............................................ 217 3.2.1.2 Die Definition des Software-Entwicklungsprozesses ......... 221 Inhaltsverzeichnis vii 3.2.1.3 Schulungsmafinahmen ....................................................... 225 3.2.1.4 Integriertes Software-Management .................................... 229 3.2.1.5 Technisches Produktmanagement ...................................... 237 3.2.1.6 Koordination der beteiligten Gruppen ................................ 245 3.2.1.7 Peer Reviews .................................................................... 249 3.2.2 Schritte auf dem Weg zur n~chsten Ebene ................................ 251 Abschnitt IV: Ebene 4 und S des Capability Maturity Models 4.1 Ebene 4: MAN"AGED ...................................................................... 255 4.1.1 Die HaupMtigkeiten des Prozesses .......................................... 256 4.1.1.1 Messungen im ProzeB und die Auswertung der Ergebnisse 256 4.1.1.2 Der Weg zu Metriken ........................................................ 261 4.1.1.3 Einige ausgewahlte Metriken ............................................. 263 4.1.1.3.1 Die Fehlerdichte ......................................................... 263 4.1.1.3.2 Die Fehlertage ............................................................ 263 4.1.1.3.3 Fehler in der Dokumentation ...................................... 264 4.1.1.3.4 Ein Fehlerprofil .......................................................... 265 4.1.1.3.5 Testabdeckung durch Funktionstest ............................ 266 4.1.1.3.6 Der gewichtete Fehlerindex ........................................ 267 4.1.1.3.7 Fehlerverteilung und Ursachenforschung .................... 267 4.1.1.3.8 Der Reife-oder Stabili~tsindex .................................. 269 4.1.1.3.9 Halstead's Software Science Measures ....................... 269 4.1.1.3.10 McCabe's Komplexi~tsmafi ....................................... 270 4.1.1.3.11 Fehlerbilanz der Softwarephasen ................................ 272 4.1.1.3.12 Turn-around Time ...................................................... 273 4.1.1.3.13 Fehlerrate .................................................................. :274 4.1.1.4 Quali~tsmanagement ........................................................ 274 4.1.2 Schritte auf dem Weg zur n~chsten Ebene ................................ 279 4.2 Ebene 5: OPTIMIZING ................................................................... 280 4.2.1 Die HaupMtigkeiten des Prozesses .......................................... 280 4.2.1.1 Fehlerverhinderung ............................................................ 281 4.2.1.2 Die Einfiihrung neuer Technologien ................................... 284 4.2.1.3 Process Change Management ............................................ 287 viii Abschnitt V: Ausblick 5.1 Trends und Herausforderungen ........................................................ 295 5.2 Die Vorteile fUr das Untemehmen .................................................... 299 5.3 Wie die Projekte vom Capability Maturity Model profitieren ........... 301 5.4 Der erste Schritt ............................................................................... 302 Anhinge Anhang A -Literaturverzeichnis .............................................................. 311 Anhang B -Glossar ................................................................................. 320 Anhang C -Acronyms und AbkOrzungen ................................................. 335 Anhang D -Nonnen und Standards fUr Software ...................................... 338 Anhang E -Produktspezifikationen .......................................................... 344 Anhang F -FragebOgen ........................................................................... 370 Anhang G -FragebOgen zum Capability Maturity Model.. ....................... 385 Anhang H -Nutzliche Adressen ............................................................... 406 Register ................................................................................................... 408 Vorwort Obwohl seit den sechziger Jahren, als die Software-Entwicklung erstmals als Ingenieurdisziplin begriffen wurde, Fortschritte in bezug auf die Programme ge macht wurden, ist die gegenwartige Situation dieser Branche dennoch nicht be friedigend. Der Einsatz der Software in allen Bereichen menschlichen Lebens und der Umfang der Programme fiihren zu einer unzumutbar groBen Zahl von Fehlem in der ausgelieferten Software. Erste Unfalle mit tOdlichem Ausgang sind bereits bekannt geworden. Die hergebrachte Methode zur Qualitatssicherung bei der Software ist das Testen. Diese Phase des Entwicklungsprozesses wird oft aus Zeitgrtinden straflich ver nachlassigt oder in ihrer Bedeutung vom Management iiberhaupt nicht erkannt. Selbst bei fortschrittlichen Untemehmen, die Software vor der Freigabe auBerst grtindlich testen, verbleibt eine gewisse Zahl von Restfehlem in den Programmen. Da Software in unserer Zeit zunehmend als Kontroll- und Steuersystem in techni schen Geraten wie Autos und Flugzeugen, in Kemkraftwerken und Raffinerien eingesetzt wird, konnen Fehler in der Software katastrophale Folgen haben. Garantien zur Qualitat der Software, Haftung fUr deren einwandfreies Arbeiten und Schadensersatz bei Mangeln, obwohl bei sonstigen technischen Industrie giitem die Regel, sind bei Software vollig uniiblich. Wenn allerdings groBe wirt schaftliche Schaden oder sogar der Verlust menschlichen Lebens drohen, sollten wir uns sehr genau iiberlegen, welches Untemehmen wir mit der Erstellung von Software betrauen wollen. Bisher gab es in dieser Richtung leider wenig Aus wahlkriterien. Hier bietet Watts Humphrey mit seinem Capability Maturity Model (CMM) ei nen Ausweg an. Das CMM ist ein fiinfstufiges Modell, das einen Wachstumspfad aus dem Chaos schlecht kontrollierter Projekte zeigt. Dabei ist fUr jedes Unter nehmen durch eine Bewertung der gegenwartigen Situation seiner Entwicklung der Einstieg moglich. Das Capability Maturity Model kann auch als Mittel der strategischen Planung verstanden werden. Mein Buch wendet sich an Professionals, also an alle, die mit Software ihr Geld verdienen. In erster Linie sind natiirlich die Manager der Software-Industrie ange sprochen, denn das CMM wird seinen EinfluB auf die Branche nicht verfehlen. Dariiber hinaus will ich alle Verantwortlichen in den Untemehmen ansprechen, die mit der EDV beschaftigt sind. SchlieBlich diirfte das Material zu den Berei chen Software-Entwicklung, Qualitatssicherung, Konfigurations- und Projekt- management fUr aIle Fachleute dieser Bereiche interessant sein. Nicht zuletzt bietet das Buch fUr aIle Programmierer eine FUlle von Anregungen. Dieses Buch ist auch fUr die Studenten der Facher Informatik und der Betriebs wirtschaft sowie ihre Professoren von Interesse, denn es berticksichtigt die neue sten Entwicklungen aus den USA. Durch das umfangreiche Literaturverzeichnis ist auch weiteren Studien Till und Tor geoffnet. Nach der Einleitung gehe ich im ersten Kapitel detailliert auf die Disziplinen ein, die bei der Erstellung von Software beteiligt sind: Die Entwicklung, die Test gruppe, die Qualitatssicherung und nicht zuletzt das Projektmanagement. Der Erfolg japanischer Hersteller wird untersucht, und nicht zuletzt die Lehren, die wir in Deutschland daraus ziehen sollten. SchlieBlich wird das Capability Maturi ty Model im Uberblick vorgestellt, und die notwendigen Schritte zur Einfiihrung im Untemehmen werden diskutiert. In Kapitel 3 und 4 stelle ich das CMM im Detail vorgestellt, wobei der notwen dige Bezug zur Praxis nie verlorengeht. 1m letzten Kapitel wage ich einen Blick in die Zukunft, in der das CMM hoffentlich eine groBe Rolle spie1en wird. Der Text ist durch eine ganze Reihe von Zitaten, Fallbeispielen, Tabellen und Grafiken aufgelockert, urn den anspruchsvollen Leser technischer Literatur bei der Stange zu halten. Ein Glossar im Anhang erleichtert den Einstieg, und eine ganze Reihe von Fragebogen kann in der tiiglichen Praxis eine Hilfe sein. Es bIeibt mir nur, Ihnen bei der Lektiire dieses Buches viel SpaB zu wUnschen, und moge Ihnen beim Einsatz des Capability Maturity Models der erwiinschte Erfolg in reichem MaBe beschieden sein. Niimberg, im Februar 1993 Georg Erwin Thaller