Organisatorisches Empirische Softwaretechnik Prof. Dr. Walter F. Tichy Sommersemester 2008 prüfbar im Vertiefungsfach Softwaretechnik und Übersetzerbau Folien und Material unter http://www.ipd.uni-karlsruhe.de/tichy p weiter unter Lehre, Empirische Softwaretechnik Vorschau: siehe frühere Veranstaltungen IPD, Info-Neubau, Zimmer 368 tichy@ipd.uka.de 608-3934 2 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Erster Teil Einführung in die Thematik der Vorlesung Naheliegende Fragen... Warum heißt die Vorlesung Empirische Softwaretechnik? Was hat diese Vorlesung mit den Methoden und Werkzeugen der Softwareentwicklung zu tun, die in der Softwaretechnik-Vorlesung vorgestellt werden? 4
Empirie Wozu Empirie in der SWT? griechisch h für Erfahrung. auf methodischem Wege (durch systematisch angestellte Beobachtungen, Versuche und Befragungen) gewonnene Erfahrung. benutzt in der Realität angestellte Beobachtungen, Versuche und Befragungen als Erkenntnisquelle. (Gegensatz: Logik und Mathematik beruhen nicht auf Beobachtungen in der Realität; sie operieren im konzeptuellen Raum: Axiome und was durch logisches Schließen daraus gefolgert g werden kann.) Es existieren zu viele Methoden und Werkzeuge, als dass der einzelne Programmierer oder auch ein Softwarehaus die beste Wahl durch Ausprobieren ermitteln könnte. Diese Wahl ist aber offenbar wichtig für den Praktiker. Ohne fundierte Erkenntnisse wäre er Moden, Meinungen, Vorlieben oder Beratern ausgesetzt. Empirische Studien untersuchen, ob Unterschiede zwischen verschiedenen Softwaretechniken tatsächlich beobachtet werden können, z.b. in Bezug auf Zuverlässigkeit, Kosten, oder Wartbarkeit. 5 6 Wie hilft Empirie? Wozu Empirie? i Korrelationsstudien t bestimmen Zusammenhänge zwischen verschiedenen Variablen z.b. die Relation zw. Umfang von Software und dem Entwicklungsaufwand. Vorhersage- und Optimierungsmodelle machen die Relation praktisch nutzbar. z.b. für Kostenschätzung, Zeitschätzung, Zuverlässigkeitsschätzung, Leistunsvorhersagen Experimente testen Hypothesen z.b. ob Inspektionen, Entwurfsmuster oder Extreme Programming die Softwareentwicklung beschleunigen oder Software zuverlässiger machen. Letztlich sucht der Wissenschaftler auch in der Softwaretechnik nach Erklärungen für beobachtete Zusammenhänge: nach Theorien über die Software-Bearbeitung, aus denen praktisch nutzbare Vorhersagen und Modelle abgeleitet werden können. Belastbare Theorien, die etwas über die Wirklichkeit der Softwarebearbeitung aussagen, sind das eigentliche Ziel der empirischen Forschung. Die Erkenntnisse sollen natürlich auch dem Praktiker nützen. 7 8
Theorie Phänomen griechisch für betrachten, schauen Betrachtung der Wahrheit durch reines Denken ordnet und verknüpft Einzelerkenntnisse zu Gesetzmäßigkeiten bildet ein Modell der Realität gewinnt neue Erkenntnisse und Aussagen durch logische Schlussfolgerungen g ermöglicht Vorhersagen Experimente bestätigen oder widerlegen (falsifizieren) die Vorhersagen von Theorien. Wissenschaftliche Theorien bilden den Kern unseres Weltverständnisses griechisch für etwas, das sich zeigt oder erscheint eine Erscheinung ein wiederholt auftretendes Verhalten Gegenstand von empirischen und theoretischen Untersuchungen 9 10 Phänomen, Theorie und Empirie Vom Phänomen zur Theorie beobachten messen bewerten Phänomen wird beobachtet (Empirie) Theorie wird aufgestellt, um das Phänomen zu erklären Messungen und Experimente bestätigen oder verwerfen die Theorie (Empirie) Theorie wird angepasst usw. anregen bestätigen verwerfen 11 12
Rolle der Empirie Definition: Empirische Softwaretechnik Empirie beobachtet, misst und bewertet Phänomene Empirie bestätigt oder verwirft Vorhersagen von Theorien Empirie regt neue/verbesserte Theorien an erkundet Phänomene bei Erstellung und Einsatz von Software bewertet Werkzeuge und Methoden zur Software- Erstellung testet Theorien über Software und ihre Erstellung bewertet Eigenschaften von Software 13 14 Typische Fragestellungen Steigern die Techniken von XP die Zuverlässigkeit von Programmen? Hängt der Wartungsaufwand für ein OO- Programm von der Vererbungstiefe ab? Sind Szenario-basierte Inspektionen wirkungsvoller als Inspektionen mit Prüflisten? Überblick über die Softwareforschung Technik Produkt & Prozess Methoden Werkzeuge Wie entwickelt man Software schnell und gut? Was geht htin der Si Stimmt die Theorie? SW-Entwicklung Wie funktionieren Methoden? eigentlich vor? Was passiert wenn...? Theorie Empirie 15 Modelle, Gesetze, Metriken,Psychologie, Formalisierung Theorietest Technikbewertung Erkundung v. Phänomenen empirische Methodik 16
Stand der Forschung Stand der Forschung (2) Technik stärkster Teil der Softwaretechnikforschung viele nützliche Werkzeuge verschiedene Programmierparadigmen g mehrere Vorgehensweisen (z.b. klassische Entwicklungsphasen, Cleanroom Development, Extreme Programming) siehe Vorlesung Softwaretechnik u.a. Theorie Weniger gut entwickelt formale Softwareprozess-Modelle erste ökonomische Modelle und Kosten-Nutzen- Analysen 17 18 Stand der Forschung (3) Gegenstand der Vorlesung Empirie viel Forschung über Software-Metriken viele Fallstudien in den letzten 10 Jahren Dramatisches Wachstum an kontrollierten Experimenten wichtige empirische Erkenntnisse drastisch verbesserte Methodik konkrete Fallstudien und Experimente aus der Softwaretechnik experimentelle Methodik statistische Datenanalyse softwaretechnische Bewertung der empirischen Ergebnisse neuere Empirie-basierte Theorien 19 20
Vorgehensweise in der Vorlesung Softwaretechnische Themen in der Vorlesung Schritt für Schritt aufbereitete, beispielhafte Originalarbeiten empirisch-methodische Grundlagen anhand der Originalarbeiten statistische Grundlagen nur soweit, wie zur Auswertung der empirischen Arbeiten nötig Zeit für Fragen und Diskussionen Vererbungstiefe Zusicherungen Paarprogrammierung Test-getriebene Entwicklung Software-Inspektionen Formale Methoden 21 22 Lernziele Lernziele (2) Stellenwert der Empirie in der Softwaretechnik darlegen können Beispiele empirischer Untersuchungen in der Softwaretechnik, ihre Ergebnisse und die dabei eingesetzten empirischen Methoden beschreiben können methodische und statistische Grundlagen für empirische Untersuchungen in der Softwaretechnik beherrschen Eigene empirische Untersuchungen in der Softwaretechnik gestalten können. Beispiele Empirie-basierter Theorien in der Softwaretechnik beschreiben können 23 24
Übergeordnete Lernziele Literatur Qualität empirischer Untersuchungen in der Softwaretechnik beurteilen können Tragfähigkeit der daraus abgeleiteten Schlussfolgerungen g beurteilen können Kosten und Nutzen von Entwicklungstechniken objektiv abwägen können Originalarbeiten ausgewählt aus: IEEE Transactions on Software Engineering g Journal on Empirical Software Engineering Konferenzen Die angeg. Originalarbeiten lesen! Nur die Folien zu studieren wird nicht ausreichen. Originalarbeiten zu lesen ist spannend! 25 26 Literatur (2) Literatur (3) Christensen: Experimental Methodology, Allyn and Bacon, 200x David C. Howell (1999), Fundamental Statistics for the Behavioral Sciences, Brooks/Cole Publishing Company, 4th edition, ISBN 0-534-35821-7 Forschungsarbeiten am Lehrstuhl Tichy Prechelt: Kontrollierte Experimente in der Softwaretechnik (Habilitationsschrift, Springer, 2001) Empirical Informatics Research Group https://www.ipd.unikarlsruhe.de/tichy/projects.php weiter bei EIR neuere Publikationen auf den Webseiten von M. Müller, F. Padberg, A. Höfer 27 28
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Zweiter Teil Wichtige empirische Forschungsmethoden im Überblick Empirische Forschungsmethoden Deskriptive Forschung beschreibt Phänomene, Experimentelle Forschung Beschreibt Ursache-Wirkung, Ereignisse, Situationen ist quantitativ Quantitative Studie Qualitative Studie Umfrage Korrelations-Studie Ex post facto Studie Langzeit- und Querschnittsstudie Naturalistische Beobachtung Meta-Analyse Fallstudie Ethnographie Phänomenologie Laborexperiment Feldexperiment Simulation / Benchmark 30 Fallstudie Beispiel: Absturz der Ariane 5 genaue Beschreibung und Analyse... eines Vorgangs einer Organisation eines Ereignisses oder auch mehrere davon. nutzt verschiedene Informationsquellen... Interviews, Zeugenaussagen, Dokumente, Testergebnisse, technische Analysen, Nachrichten, etc. Die Airane 5 Rakete explodierte 40 s nach dem Start. (1996, $500 Mill. Verlust). 31 32
Fallstudie des Absturzes ergab: Eine Überlauf ereignete sich bei der Konvertierung einer 64-Bit Ganzzahl in eine 16-Bit Ganzzahl in einem Programm genannt Inertial Reference System. Dieser Überlauf wurde nicht abgefangen, daher hielt die ganze Lagesteuerung an, was die Rakete in eine unzulässige Schräglage brachte, worauf sie sich selbst sprengte. Große Verwirrung: Das Programm, das den Überlauf verursachte, war während des Fluges gar nicht benötigt (nur bis -9s Startzeit). Es lief aber 50 s lang nach dem Start weiter, um bei einem Abbruch des Starts eine Re-Initialisierung von mehreren Stunden zu vermeiden. Das Programm war für die Ariane 4 Rakete entwickelt worden, bei der dieser Überlauf nicht auftreten konnte. Der Defekt war also ein Wiederverwendungsfehler, verursacht durch fehlende Spezifikation der Bedingungen, unter denen die Software richtig arbeitete. Fallstudien Fallstudien sind meistens qualitativ, obwohl sie quantitative Elemente enthalten können. In der Software-Forschung werden sie oft benutzt, um die Funktionalität eines Werkzeuges vorzuführen (Existenzbeweis). Fallstudien sind auch nützlich, um seltene Fälle zu verstehen (wie z.b. Unfälle, die durch Software verursacht werden). ACM SIGSOFT Software Engineering Notes publiziert in der Rubrik Risks to the Public zahlreiche Fallstudien über Ausfälle und Unfälle, die mit Software zu tun haben (Bankenwesen, Verkehr, Gesundheitswesen, Sicherheitslücken, usw.) Fallstudien lassen sich nicht verallgemeinern, da die Ursache eines bestimmten Ereignisses nicht mit Sicherheit bestimmt werden kann. Um Wirkungszusammenhänge mit Sicherheit festzustellen benötigen wir Experimente. 33 34 Beispiel einer Fallstudie: Test-Driven Development bei IBM Test-Driven Development Maximilien u. Williams: Assessing Test-Driven Development at IBM studiert, wie sich Test-Driven Development (TDD) auf die Defektdichte in einem realen Projekt bei IBM auswirkt International Conference on Software Engineering ICSE 25 (2003) 564-569569 zuerst die Testfälle für eine Methode schreiben, dann die Methode implementieren ( test-first ) automatisches Ausführen aller Testfälle (mit junit o. ä.), beliebig oft wichtige Technik bei XP 35 36
Fallstudie: TDD bei IBM (2) Fallstudie: TDD bei IBM (3) Produkt JavaPOS (Java for Point of Sale) definiert eine Bibliothek von Java Beans zum Ansprechen von Geräten an der Kasse. bisherige Versionen von JavaPOS hatten zu hohe Defektdichte. abschließender functional verification test t für jede Version stand zur Verfügung. Management war offen für Veränderung JavaPOS wurde mit einem neuen Team und TDD komplett neu entwickelt ( neu ) später wurde zusätzlich basierend auf dem alten Code mit erfahrenen Entwicklern eine funktional mit der Neuentwicklung vergleichbare Version erstellt ( alt ), aber ohne TDD. 37 38 Fallstudie: TDD bei IBM (4) Erhoffte Vorteile von TDD Entwickler im Projekt JavaPOS alt viel Erfahrung mit früheren Versionen (Spezifikation und Code) entsprechende Java-Erfahrung Entwickler im Projekt JavaPOS neu 7 von 9 ohne Erfahrung mit Spezifikation oder früheren Versionen einige hatten wenig Java-Erfahrung junges, enthusiastisches Team [laut Vortrag] niedrigere Defektdichte durch früheres und häufigeres Testen verkürzte Implementierungszyklen durch Automatisieren der Testläufe verbesserte Code-Integration durch laufende Regressionstests höhere Testqualität durch Ansammeln vieler Testfälle 39 40
Defektdichte bei JavaPOS alt Defektdichte bei JavaPOS neu tatsächlich erwartet tatsächlich erwartet 7,0 Defekte/KLOC tatsächlich, 5,55 Defekte/KLOC erwartet 3,7 Defekte/KLOC tatsächlich; 4,0 Defekte/KLOC erwartet 41 42 Einige Unklarheiten Fazit der Studie JavaPOS neu hatte 71 KLOC, aber Größe von JavaPOS alt wird nicht angegeben JavaPost neu zeigt 247 Defekte, JavaPOS alt nur 80. Bei Defektdichte 7 und 80 Defekten müsste JavaPOS alt nur 11 KLOC groß gewesen sein. unklar, ob Defektdichte bei JavaPOS alt sich nur auf hinzugekommenen und geänderten Code bezieht oder den ganzen Code. Dauer, Größe und Zusammensetzung des Abschlusstests wird nicht angegeben Verringerung der Defektdichte allein auf Test-Driven Development zurückgeführt dabei wird ignoriert: unterschiedlicher Projektumfang (Neuentwicklung versus Delta zu alter Version) Teams mit unterschiedlichen Vorkenntnissen kausaler Zusammenhang ist nicht schlüssig nachgewiesen! 43 44
Einordnung der Studie Def. Feldexperiment begonnen als Fallstudie: Einsatz von TDD bei einem e Projekt bei IBM Messen von Defektdichte, Aufwand, u. a. ausgebaut zu Feldexperiment: Vergleich mit Parallel-Projekt, das ohne TDD durchgeführt wird kontrollierte Variable ist die Testtechnik (unsystematisches Testen versus TDD) Experiment, das in einer realen Umgebung durchgeführt wird. der Experimentator... variiert eine oder mehrere Eigenschaften, die sog. unabhängigen Variablen (z.b. die Programmiermethodik) hält so viele wie möglich der übrigen Eigenschaften (sog. Störvariablen) konstant (z.b. Qualität der Programmierer) beobachtet den Einfluss der variierten Variablen auf die abhängigen Variablen (z.b. Dauer, Kosten, Qualität) 45 46 Feldexperiment (2) Feldexperiment (3) unabhängige Variablen werden manipuliert Störvariablen werden konstant gehalten oder ihre Auswirkung neutralisiert. abhängige Variablen werden beobachtet und gemessen. die Wirkung der unabhängigen Variablen auf die abhängigen Variablen wird untersucht. Anwendung interessierende Situation kann im Labor nicht realistisch nachgestellt werden für Schlussfolgerungen nötige Menge an Daten kann nur in der Praxis angesammelt werden Fragestellung erfordert Beobachtung über längeren Zeitraum 47 48
Feldexperiment (4) Empirische Forschungsmethoden Liefert realistische Ergebnisse Es kann vorkommen, dass nicht alle Störvariablen kontrolliert werden können (Quasi-Experiment) Kontext oft schwer zu erfassen; dann ist Übertragbarkeit auf andere Situationen fraglich. Kosten oft hoch benötigt Unterstützung durch Management zur Durchführung Deskriptive Forschung beschreibt Phänomene, Ereignisse, Situationen Quantitative Studie Umfrage Korrelations-Studie Ex post facto Studie Langzeit- und Querschnittsstudie Naturalistische Beobachtung Meta-Analyse Qualitative Studie Fallstudie Ethnographie Phänomenologie Experimentelle Forschung Beschreibt Ursache-Wirkung, ist quantitativ Laborexperiment Feldexperiment Simulation / Benchmark 49 50 Wissenschaftliches Experiment oder kontrolliertes Experiment Wichtige Attribute des wiss. Experiments Erfahrungswissenschaftliche h ftli h Methode, um angenommenes Gesetzmäßigkeiten (Hypothesen) in der Realität durch Beobachtung zu überprüfen. (Das Wort Experiment kommt vom Lateinischen experimentum Versuch, Beweis, Prüfung, Probe ) Im Experiment wird durch planmäßiges Beobachten eines Sachverhaltes [ ] und dessen Veränderung unter kontrollierten, [ ] wiederholbaren Bedingungen eine Hypothese bestätigt oder widerlegt. (Quelle: Microsoft Encarta Online- Enzyklopädie) planmäßige Manipulation von unabhängigen Variablen ( Kontrolle Kontrolle der unabhängigen Variablen). Objektive Beobachtung der abhängigen Variablen; d.h. ein anderer Beobachter würde die selbe Beobachtung machen. (Besondere Maßnahmen bei subjektiver Einschätzung nötig mehrere Einschätzer benutzen und deren Übereinstimmung überprüfen.) Störvariablen (weitere unabhängige Variablen, die die abhängigen Variablen beeinflussen können) werden konstant gehalten oder in ihrer Wirkung neutralisiert ( Kontrolle der Störvariablen, z.b. durch zufällige Zuweisung von Experimentbedingungen an Teilnehmer.) Kausalität (Ursache-Wirkung-Beziehung), so vorhanden, wird beobachtbar. Wiederholbarkeit des Experiments durch andere (dadurch werden Beobachtungen überprüfbar Irrtümer und Schwindel aufdeckbar.) Beispiel: Experiment über kalte Fusion von Ponds und Fleishman (1989) enthielt einen Irrtum gemessen wurde nicht Energie aus einer Kernfusion, sondern aus der Radonstrahlung des Wassers. 51 52
Kontrolliertes Experiment Laborexperiment, Feldexperiment, Quasi-Experiment Im kontrollierten Experiment werden die Beobachtungen in mehreren Situationen verglichen, in denen alle Bedingungen identisch sind, außer den Variablen, deren Einfluss getestet wird. Beispiel: Test eines Medikamentes: Die Versuchs- oder Experimentgruppe erhält das zu testende Medikament, eine zweite Gruppe, die sog. Kontrollgruppe, erhält kein Medikament oder Kontrollgruppe erhält einen Placebo, damit kein Teilnehmer weiß, was er erhält (einfach blinder Versuch Subjekteffekt neutralisiert). Von einem doppelt blinden Versuch spricht man, wenn auch der Experimentator während des Versuchs nicht weiß, wer Medikament und wer Placebo erhalten hat (Experimentator kann Subjekte nicht beeinflussen.) Übung: angenommen, wir führen einen Versuch zum Vergleich zweier Programmiersprachen, z.b. Java vs. C#, durch. Was sind die unabhängigen Variablen? Was sind mögliche Störvariablen? Wie können sie kontrolliert werden? Ist ein blinder Versuch möglich? Kann/soll der Experimentator im Unklaren gelassen werden über die Zuordnung der Subjekte zu Programmiersprachen? Das Laborexperiment wird im Labor durchgeführt, das Feldexperiment in realer Umgebung. Das Feldexperiment ist oft realistischer, aber schwieriger durchzuführen. Beim Quasi-Experiment gelingt es nicht, alle Variablen zu kontrollieren, z.b. wenn Teilnehmer nicht zufällig an Experimentbedingungen zugewiesen werden. (Feldexperimente sind oft Quasi-Experimente). Alle drei Typen sind kontrollierte, wiss. Experimente. 53 54 Und was ist Falsifikation? Falsifikation ist die Widerlegung von Hypothesen oder Theorien durch empirische Aussagen (Beobachtung, Experiment) Karl Popper: Universelle Hypothesen sind empirisch widerlegbar, aber nicht verifizierbar. Alle Schwäne sind weiß kann als vorläufige Hypothese akzeptiert werden, bis der erste nicht-weiße Schwan beobachtet wird. Je länger eine (falsifizierbare) Hypothese Falsifikationsversuchen widersteht, als desto belastbarer wird sie angesehen. Beispiel: Newtons Theorie wurde falsifiziert; Einsteins Relativitätstheorie noch nicht. Beispiel: Kontrolliertes Experiment über Test-Zuerst Müller u. Hagner: Experiment about Test-first Programming untersucht den Einfluß von "Test-Zuerst" auf die Entwicklungsdauer und die Korrektheit von Programmen IEE Proceedings Software, Vol. 149, (5), p. 131-136, 136 Oct 2002. 55 56
Teilnehmer Aufgabe Studenten des XP Praktikums 2001 ( Subjekte ) Programmiererfahrung reicht von Anfänger bis vergleichbar mit Profi Entwicklung der Hauptklasse einer Graphenbibliothek Gerichtete/ungerichtete Kanten Gewichtete/ungewichtete Kanten und Knoten Operationen zum Hinzufügen/Löschen von Knoten und Kanten Methodensignaturen vorgegeben Sprache: Java 57 58 Variablen Experimententwurf Testtechnik als unabhängige Variable (mit Test- Zuerst versus beliebig) Experimentgruppe: entwickelt mit Test-Zuerst Entwicklungsdauer und Programmkorrektheit als abhängige gg Variablen benutzt junit zur Testautomatisierung Kontrollgruppe: Aufgabenstellung kontrolliert abschließende Programmkorrektheit ebenfalls kontrolliert (durch Akzeptanztest) testet nach Belieben benutzt junit zur Testautomatisierung Teilnehmer zufällig den Gruppen zugeordnet ( randomisiert ) 59 60
Ablauf Tests auf Korrektheit Implementierung: Teilnehmer entscheiden selbständig, ob Programm fertig oder nicht Qualitätssicherung i (QS): automatischer Akzeptanztest wird gestartet Vorgabe: 100% der Testfälle erfolgreich Teilnehmer korrigieren Fehler, bis Vorgabe erfüllt Akzeptanztest test der Qualitätssicherung u 20 Testfälle erwartetes Programmverhalten wird überprüft (sind erwartete Knoten/Kanten vorhanden?) Bestehen garantiert eine Mindestqualität Großer Zufallstest nach bestehen des Akzeptanztest zufälliger Aufbau eines Graphen gleichzeitig wird identischer Graph mit "Goldprogramm" (sicher korrekt) aufgebaut. 730.000 Graph-Operationen, 7,5 Mill. Zusicherungen Nach jeder Operation erfolgt Vergleich der Knoten- und Kantenmengen des Subjektprogramms und "Goldprogramms". 61 62 Ergebnisse für Zeit Ergebnisse für Qualität, vor QS Gesamtzeit in Minuten (Implementierung plus QS) TFG=Test Test First Group, CG=ControlControl Group 63 Anteil bestandener Zusicherungen aus Akzeptanztest, nach Implementierung, vor Qualitätssicherung. Unterschied signifikant, p=0,03. 64
Ergebnisse für Qualität, nach QS Ergebnisse zusammengefasst Entwicklungsdauer: Test-Zuerst-Gruppe braucht etwas länger (Implementierung plus QS) Programmkorrektheit vor QS: Test-Zuerst- Gruppe signifikant schlechter Programmkorrektheit nach QS: Test-Zuerst- Gruppe etwas besser Anteil bestandener Zusicherungen aus Zufallstest, nach QS, p=0,2. (starke Streuung) 65 66 Gründe Mögliche Schwachpunkte offensichtlich: Test-Zuerst-Gruppe hat in der Implementierungsphase zu einseitig oder zu wenig getestet möglicherweise: Test-Zuerst-Gruppe hatte falsches Gefühl der Sicherheit (das ergab die Auswertung der Fragebögen am Ende des Experiments) Studenten, t keine Profis Technik war noch zu neu (Test-Zuerst noch nicht in Fleisch und Blut übergegangen ) keine direkte Überprüfung während des Experiments, ob wirklich gemäß Test-Zuerst entwickelt wurde zu enge Aufgabenstellung Zu wenig Teilnehmer, um einen Effekt sichtbar werden zu lassen 67 68
Fazit des Experiments Umfrage Test-Zuerst erfüllt Erwartungen (erstmal) nicht Test-Zuerst verlangt Erfahrung beim Schreiben geeigneter Tests und Disziplin Durchsetzen einer Mindest-Qualität der Programme im Experiment ist wichtig, da sonst Zeitdauer ohne Aussagekraft. tatsächliches Anwenden der Technik im Experiment muss überprüft werden weitere Experimente nötig sammelt Informationen durch Fragen an Repräsentanten einer bestimmten Zielgruppe gibt Einblick in den momentanen Zustand der Zielgruppe Repräsentanten t vertreten t die Zielgruppe durch entsprechende Merkmale, Verhaltensweisen und Einstellungen Beispiel: "Was ist Ihnen wichtiger: persönliches Glück oder Reichtum?" Wie finden Sie die Vorlesung Empirische Softwaretechnik? (1 hervorragend, 2 gut, 3 mittelmäßig, 4 eher schlecht, 5 sehr schlecht) 69 70 Umfrage (2) Umfrage (3) Fragen können sich auf subjektive oder objektive Sachverhalte beziehen Fragen werden schriftlich (Fragebogen, per Post, E-Post, Pop-Up-Survey im Web) oder mündlich (Interview) gestellt. Antworten sind immer subjektiv und nur begrenzt überprüfbar Beispiel: Putzen Sie regelmäßig die Zähne? (Achtung, Subjekteffekt! besser: Haben Sie heute morgen die Zähne geputzt?) Was war der Schwierigkeitsgrad der Aufgaben? Subjektive Faktoren wie Zufriedenheit, Stress, Bekanntheit, Vorlieben, Angemessenheit eines Verfahrens nur über Umfragen ermittelbar. Wie bei anderen empirischen Methoden bleiben Teilnehmer anonym. 71 einfach und relativ billig direkter Kontakt mit Zielgruppe notwendig Verlässlichkeit der Ergebnisse ist zu diskutieren Repräsentativität der Stichprobe ist zu diskutieren. Wenn Teilnehmer nicht antworten t muss man evtl. telefonisch nachhaken oder Anreize bieten (Verlosung eines Geschenks, ein kleines Geschenk vorab.) 72
Beispiel: Umfrage zu Softwarekostenschätzung Umfrage Kostenschätzung (1) Molokken-Østvold et al., A Survey on Software Estimation in the Norwegian Industry Interviews, um die Schätzpraktiken und Schätzgenauigkeit g in der SW-Industrie zu bestimmen (in Norwegen). Proc. 10th Int l Symposium on Software Metrics, METRICS 04, IEEE, 2004. 18 verschiedene Beratungs-Firmen in Norwegen, 52 verschiedene, vor kurzem abgeschlossene Projekte. Strukturierte, t tiefgehende, persönliche Interviews mit den Leitern der Projekte. Interviews auf Band aufgenommen, nachträglich ausgewertet. Dauer: 30 bis 70 Minuten pro Interview. Projekte erforderten zw. 180 h und 14.000 h Entwicklungszeit (Mittelwert 3124 h) 73 74 Umfrage Kostenschätzung (2) Umfrage Kostenschützung (3) Verteilung der Abweichung von der Kostenschätzung Nur 42 der 52 Projekte wurden ausgewertet, da für den Rest die Daten nicht vollständig waren oder die Projekte abgebrochen wurden. Mittlere Abweichung: +41% 75 76
Umfrage Kostenschätzung (4) Metastudie Weitere Ergebnisse: Dominante Schätzmethode ist Expertenschätzung (84%) Projektleiter überschätzen die Schätzgenauigkeit it in ihren Firmen: Sie meinen 45% der Projekte werden im Kostenrahmen fertig, obwohl es nur 10% sind. Wenn man eine Kostenerhöhung von 25% noch als akzeptabel ansieht, dann sind 43% der Projekte noch akzeptabel. Im Vergleich mit ähnlichen, älteren Studien hat sich in den vergangenen 20 Jahren die Schätzgenauigkeit nicht verbessert. Studie über Studien Auswertung mehrerer bereits vorhandener Studien zu einem Thema Material ist Forschungsliteratur entnommen fasst nicht nur zusammen, sondern vergleicht und analysiert (im Gegensatz zu Überblicksartikel) 77 78 Metastudie (2) Metastudie (3) bietet Orientierung und konsolidiert Wissen: bestätigen sich Ergebnisse gegenseitig? ergänzen sich Ergebnisse? zu welchen Aspekten liegen noch keine Ergebnisse vor? welche Ergebnisse widersprechen sich? Beispiel: es gibt zahlreiche Untersuchungen zu Paarprogrammierung. Diese sind teilweise widersprüchlich. In den meisten Fällen sind die Teilnehmer Studenten. Meistens haben die Teilnehmer Paarprogrammierung erst kürzlich erlernt und nur mit wenigen Partnern geübt. Langzeitstudien zu dem Thema gibt es nicht. Welche Schlussfolgerungen ziehen Sie daraus? vergleichsweise geringer Aufwand zugrundeliegende g empirische Studien müssen schon vorhanden sein kann Lücken und Mängel in den vorhandenen Studien nicht mehr ausgleichen, aber aufdecken. zeigt Ansatzpunkte für weitere Forschung 79 80
Metastudie (4) Korrelationsstudie Spezialfall: Metaanalyse gemeinsame statistische Analyse verschiedener Studien (in der Regel Experimente) Ziel: neue quantitative Aussage gibt es einen signifikanten Effekt, wenn man die Einzelergebnisse kombiniert? wie groß ist der Effekt, wenn man die einzelnen Effektgrößen kombiniert? Quantitative Methode, die die Wechselbeziehung h zwischen zwei oder mehreren Variablen bestimmt. Gesucht ist ein funktionaler Zusammenhang Aus Kenntnis einer Variablen kann dann die andere bestimmt werden. Beispiele: Zusammenhang zw. Produkt- und Prozessmetriken einerseits und Entwicklungsdauer, Teamgröße, Fehlerdichte andererseits. Aber: kein kausaler Zusammenhang ableitbar (Gefahr der verborgenen, dritten Variablen ); liefert daher keine Erklärung. Beispiel: i positive Korrelation zw. Schuhgröße h und Gehalt. Was ist die verborgene Variable? 81 82 Langzeit- und Querschnittsstudie Empirische Forschungsmethoden Langzeitstudie t verfolgt eine Gruppe von Teilnehmern über einen längeren Zeitraum Beispiel: nimmt die Verwendung von UML oder Paarprogrammierung oder Test- Zuerst mit der Zeit zu, ab, oder bleibt sie gleich? Querschnittsstudie untersucht eine Stichprobe einer Population zu einem bestimmten Zeitpunkt Betrachtet dabei Unterschiede nach Alter, Geschlecht, Ausbildung, etc. Teilnehmer haben nicht notwendigerweise vergleichbare Erfahrung gemacht (z.b. haben heute Fünfzigjährige nicht schon in der Schule Computerspiele und Mobiltelephonie ausprobiert), daher ist die Langzeitstudie zuverlässiger, aber auch aufwendiger. Deskriptive Forschung beschreibt Phänomene, Ereignisse, Situationen Quantitative Studie Umfrage Korrelations-Studie Ex post facto Studie Langzeit- und Querschnittsstudie Naturalistische Beobachtung Meta-Analyse Qualitative Studie Fallstudie Ethnographie Phänomenologie Experimentelle Forschung Beschreibt Ursache-Wirkung, ist quantitativ Laborexperiment Feldexperiment Simulation / Benchmark 83 84
Ethnografie Phänomenologie Lebensweise/Kultur einer Gruppe untersuchen Makro-Kulturen: Länder, Religionsgruppen, Mikro-Kulturen: Firma, Studenten-WG, t Verschiedene Techniken möglich: Tiefeninterviews i i Beobachtung der Teilnehmer Kritische Punkte: Zugang zur Gruppe Akzeptanz durch die Gruppe Wahrung der Objektivität des Forschers Erleben eines Phänomens durch Individuen oder Gruppe beschreiben und verstehen Von Interesse ist nicht nur das Erlebnis selbst sondern auch dessen Interpretation oder Bedeutung Häufigste Methode ist das Tiefeninterview 85 86 Ex Post Facto Studie Naturalistische Beobachtung Untersuchte Variable(n) sind nicht manipulierbar, müssen im Nachhinein gewählt werden Ausgangspunkt sind Gruppen, die sich in einer Variable bereits unterscheiden, z.b. Geschlecht, Alter, Anschließend Aufzeichnen und Auswerten des Verhaltens der Gruppenmitglieder: Gibt es Unterschied zwischen den Gruppen? Vorsicht: Gruppeneinteilung nicht randomisiert. Problem der verborgenen, dritten Variablen (siehe Korrelationsstudie) Datensammlung über natürlich auftretendes Verhalten. Subjekte werden in ihrer natürlichen Umgebung beobachtet. Wichtig: Beobachter darf nicht auffallen/entdeckt werden, da sich die Subjekte sonst möglicherweise anders verhalten. Ideal um Hypothesen für spätere Laborexperimente zu sammeln, aber unerkannt bleiben ist oft schwer Beobachtungszeiträume sind oft lang 87 88
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 ENDE