www.wikidata.de-de.nina.az
Inspektionen in der Software Entwicklung sind eine formale Methode der Qualitatssicherung mit dem Ziel fruhzeitig und kostengunstig Fehler wahrend der Software Erstellung zu finden und zu beheben Die Methode wurde 1972 im IBM Labor Kingston NY entwickelt und von M E Fagan im Jahre 1976 veroffentlicht 1 Inhaltsverzeichnis 1 Beschreibung 2 Teilnehmer 3 Datensammlung aus Inspektionen 4 Erfolgsfaktoren 5 Neuere Entwicklungen 6 Einzelnachweise 7 LiteraturBeschreibung BearbeitenWahrend Software Tests erst dann beginnen konnen wenn ein lauffahiges Programm vorhanden ist dynamischer Test konnen Inspektionen bereits in sehr fruhen Phasen des Entwicklungsprozesses durchgefuhrt werden statischer Test Hierbei werden die Dokumente die bereits vorhanden sind auf Abweichungen untersucht Die Idee dahinter Je fruher ein Fehler gefunden wird umso einfacher und kostengunstiger kann er korrigiert werden Im Folgenden werden diese Begriffe fur zu inspizierende Entwicklungsdokumente benutzt firmenspezifisch werden unterschiedliche Begrifflichkeiten verwendet Zielsetzungen englisch Objectives Beschreibung der generellen Funktion des geplanten Produktes und der Ziel Benutzergruppen Spezifikation Genaue Beschreibung der geplanten Funktionen und der externen Schnittstellen sowie der Qualitatsziele des Produkts Strukturentwurf englisch High level design Beschreibung der Funktion der einzelnen Module sowie ihrer Abhangigkeiten und Schnittstellen Logikentwurf englisch Low level design Detaillierte Beschreibung der Logik und der benutzten Algorithmen fur jedes einzelne zu programmierende Modul Haufig wird hier bereits eine formale Entwurfssprache verwendet Kode Der ausfuhrbare Code in einer Programmiersprache Die Idee des Inspektionsverfahrens ist je zwei bereits erstellte Dokumente miteinander zu vergleichen und Unterschiede festzustellen Damit gibt es die folgenden Inspektionstypen Interface Inspektion Vergleich von Zielsetzungen mit der Spezifikation High level Design Inspektion I0 Vergleich der Spezifikation mit dem Strukturentwurf Low level Design Inspektion I1 Vergleich des Strukturentwurfs mit dem Logikentwurf Code Inspektion I2 Vergleich des Logikentwurfs mit dem KodeNeben der Kodeentwicklung konnen auch weitere Bereiche dem Inspektionsprozess unterworfen werden z B Testziele vs Testplan IT1 Testplan vs Testfalle IT2 oder Dokumentationsplan vs Benutzerdokumentation Die Kurzel I0 etc zur Bezeichnung des Inspektionstyps wurden bereits von Fagan 1976 eingefuhrt Jede Abweichung zwischen den beiden jeweils inspizierten Dokumenten wird in einem Protokoll festgehalten Dabei werden folgende Abweichungstypen dokumentiert hier werden die englischen Begriffe genutzt da sich diese im Sprachgebrauch eingeburgert haben Major Error Ein Design oder Kodeproblem das wenn es so implementiert wurde zu einer Fehlfunktion im laufenden Programm oder zu einer Abweichung von den Zielsetzungen Spezifikationen fuhren wurde Ein Major Error muss vom Autor korrigiert werden Minor Error Eine Verletzung von Programmierstandards Namens Konventionen oder Regeln die nicht zu einer Fehlfunktion des Programms aber in der Regel zu Schwierigkeiten bei der Wartung fuhren wurde Ein Minor Error muss vom Autor korrigiert werden Suggestion Kein Fehler aber ein Verbesserungsvorschlag der bei Implementation zu einer besseren Verstandlichkeit oder klarerem Design fuhrt Die Empfehlung kann vom Autor akzeptiert oder verworfen werden Open Problem Eine Situation die moglicherweise zu einem Fehler fuhren wurde Die Teilnehmer am Inspektionsmeeting konnen aber hierbei nicht zu einer Entscheidung kommen Diese Situation muss ausserhalb der Inspektionssitzung weiter verfolgt werden Dies tritt haufig in Interface oder Design Inspektionen auf wenn noch nicht alle notwendigen Details abgestimmt sind Anmerkung Fagan hat in seiner ersten Veroffentlichung nur major und minor Fehler beschrieben Die beiden anderen Abweichungstypen sind spater hinzugekommen Teilnehmer BearbeitenJeder Teilnehmer an einer Inspektion hat die beiden Vergleichsdokumente vorab erhalten und sich entsprechend vorbereitet Checklisten konnen die Vorbereitungsarbeit unterstutzen Ein Inspektionsmeeting sollte aus Effizienzgrunden zwischen drei und funf Teilnehmer haben Jeder Teilnehmer hat dabei eine spezifische Rolle Der Moderator Eine nicht an der Programmentwicklung beteiligte aber fur den Inspektionsprozess ausgebildete Person Der Moderator leitet das Inspektionsmeeting und fuhrt das Protokoll Jede gefundene Abweichung wird protokolliert Der Autor Diejenige Person die das zu inspizierende Dokument erstellt hat und die fur die Korrektur verantwortlich ist Der Leser Ein Projektmitarbeiter nicht der Autor der in seinen eigenen Worten durch das zu inspizierende Dokument fuhrt Das Material wird dabei nicht vorgelesen sondern der Leser beschreibt wie er das Dokument verstanden hat Dabei werden Verstandnisprobleme sofort ersichtlich Der Inspektor Ein Projektmitarbeiter ohne spezielle Rolle Hauptaufgabe des Inspektors ist es Fehler zu finden Ein Inspektor kann aus dem Entwicklungsteam oder einem anderen Projektbereich z B Test Dokumentationsentwickler Wartungsmitarbeiter kommen Der Inspektor kann im Laufe des Inspektionsmeetings seine Rolle auch mit dem Leser wechseln Wichtig Ein Mitarbeiter des Projektmanagements nimmt am Inspektionsmeeting nicht teil damit eine offene Atmosphare gewahrleistet ist Datensammlung aus Inspektionen BearbeitenDie Durchfuhrung jeder Inspektion wird mit Anzahl der Teilnehmer Dauer der Vorbereitung und des Inspektionsmeetings und Umfang des inspizierten Materials dokumentiert Jede gefundene Abweichung wird mit ihrem Typ major minor suggestion open protokolliert Fehler vom Typ Major Error konnen dabei direkt mit Fehlern verglichen werden die in den spateren Testphasen gefunden werden Damit kann man Fehlerstatistiken uber den gesamten Entwicklungsprozess erstellen und dabei fehleranfallige Bereiche fruhzeitig identifizieren Meistens wird in Statistiken die Anzahl der gefundenen Fehler pro 1000 Kodierzeilen kLoC normiert Weiterhin kann pro Fehler eine Fehlerkategorie z B Interface Problem Logikproblem Performanceproblem Benutzbarkeitsproblem festgehalten werden um haufig vorkommende Fehlerbereiche zu erkennen und Gegenmassnahmen definieren zu konnen Eine Organisation die intensiv Software Inspektionen durchfuhrt kann im Laufe der Zeit aus den gesammelten Daten Sollwerte z B fur zu findende Fehler pro Inspektionstyp oder fur die optimale Dauer von Inspektionsmeetings ableiten Werden diese Sollwerte signifikant verfehlt sollte eine Inspektion wiederholt werden Die gesammelten Daten sollten dafur benutzt werden aus gemachten Fehlern zu lernen und fur die Zukunft diese Fehler zu vermeiden Hierzu wurde ein eigener Prozess Fehlervermeidung englisch defect prevention oder root cause analysis entwickelt Erfolgsfaktoren BearbeitenUm effektive Inspektionen zu erreichen sollen folgende Faktoren berucksichtigt werden Das Management steht hinter dem Verfahren Es ist ausreichende Zeit fur Vorbereitung und Durchfuhrung von Inspektionsmeetings geplant Die Anzahl der Teilnehmer ist auf 3 5 Personen begrenzt In der Inspektion wird gezielt nach Fehlern gesucht keine Diskussion uber Stilfragen oder Losungen Alle Teilnehmer kennen ihre Rolle der Moderator ist entsprechend geschult Das Inspektionsmeeting ist nicht signifikant kurzer als geplant und findet eine typische Anzahl von AbweichungenFagan zeigt in 2 dass Entwicklungsprojekte mit gutem Inspektionsprozess total weniger Ressourcen und meist auch weniger Zeit benotigen als Projekte ohne Inspektionen Dabei wird der meist etwas hohere Aufwand in den Spezifikations und Designphasen durch den geringeren Aufwand in den spateren Testphasen mehr als wett gemacht Neuere Entwicklungen BearbeitenMit dem Aufkommen von grafischen Entwicklungsumgebungen und Kodegeneratoren oder neuen Programmiertechniken z B Paarprogrammierung wird die Rolle der Kode Inspektion immer geringer Interface und Design Inspektionen haben allerdings weiterhin ihren Wert Agile Entwicklungsprozesse verwenden andere entwicklungsspezifische Dokumente als im herkommlichen Wasserfallmodell z B gibt es meist keine komplette Spezifikation der Inspektionsprozess wird daher nur selten genutzt Einzelnachweise Bearbeiten M E Fagan Design and code inspections to reduce errors in program development In IBM Systems Journal Vol 15 Nr 3 1976 S 182 211 Michael E Fagan Advances in Software Inspections In IEEE Transactions on Software Engineering Vol 12 Nr 7 Juli 1986 S 744 751 Literatur BearbeitenInspections in Application Development Introduction and Implementation Guidelines IBM Form GC20 2000 Juli 1977 Code Reading Structured Walk Throughs and Inspections IBM Form GE19 5200 Marz 1978 Improved Programming Technologies An Overview IBM Form GC20 1850 Oktober 1978 Gerald M Weinberg Daniel P Friedman Reviews Walkthroughs and Inspections In IEEE Transactions on Software Engineering Vol 10 No 1 Januar 1984 C L Jones A process integrated approach to defect prevention IBM Systems Journal Vol 24 No 2 1985 V R Basili R W Selby Comparing the Effectiveness of Software Testing Strategies In IEEE Transactions on Software Engineering Vol 13 No 12 Dezember 1987 K E Schnurer Programminspektionen Erfahrungen und Probleme In Informatik Spektrum Band 11 Heft 6 Dezember 1988 D B Bisant J R Lyle A Two Person Inspection Method to Improve Programming Productivity In IEEE Transactions on Software Engineering Vol 15 No 10 Oktober 1989 Mario Winter Reviews in der objekt orientierten Softwareentwicklung In Softwareteschnik Trends Band 17 Heft 2 Mai 1997 Ronald A Radice High Quality Low Cost Software Inspections Paradoxicon Publishing Andover MA ISBN 0 9645913 1 6 2002 Abgerufen von https de wikipedia org w index php title Inspektion Software Entwicklung amp oldid 234511473