290 likes | 435 Views
SE-Themen, für die sich Experimente lohnen. Nazli Soltani 7.12.2005. Gliederung. Experimente Aktuelle Experimente (2005) eXtreme Programmierung Paar-Programmierung Test First relativ neue Experimente (1996) Reading Technik
E N D
SE-Themen, für die sich Experimente lohnen Nazli Soltani 7.12.2005
Gliederung • Experimente • Aktuelle Experimente (2005) • eXtreme Programmierung • Paar-Programmierung • Test First • relativ neue Experimente (1996) • Reading Technik • Code Reading vs Functional Testing vs Structural Testing • Cleanroom vs non-Cleanroom • Senario Based Reading • Ältere Experimente (1986) • Studentisches Beispiel
Experiment • Experiment ist : • "a form of empirical study where the researcher has a control over some of the conditions in which the study takes place and control over the independent variables being studied (execution and measuremnet controls) „ Vivtor R. Basili 1999 • “Experimentation provides a systematic, disciplined, quantifiable and controlled way of evaluating humanbased activities” Wholin 2000
Experiment • Experimente : • kontrollierte Experimente • über kleine Objekte • in vitro • Anfänger und Experten • quasi-experiments oder pre-experimental designs • große Projekte • in vivo • mit Experten • involvieren meistens eine qualitative Analyse
Experimentieren die Wissenschaftler genug? • Eine Zusammenfassung von 612 Veröffentlichungen im SE (Zelkowitz, 1997): • 30% davon beinhalteten keine Experimente, obwohl es notwendig war.(20% in andere Wissenschaften) • Eine Zusammenfassung von 400 Veröffentlichungen (Tichy, 1995): • 40% davon beinhalteten keine Experimente und die brauchten empirische Bewertung.
Warum Experimentieren die Wissenschaftler nicht genug? • Die meisten behaupten: • Es gibt genug Experimente • Informatiker sehen ihre Behauptungen nicht kritisch genug. • Experimente sind zu teuer • gute Planung minimiert die Kosten • gute Experimente sind die höhen Kosten wert
Experimentieren die Wissenschaftler genug? • Die Experimente verlangsamen die Prozesse • mehrere Veröffentlichungen mit bedeutungsvoller Bewertungen beschleunigen den Prozess • „Technology changes too fast“ • die Frage ist sehr schnell irrelevant • die Frage ist nicht genau definiert • Es war von Anfang an nicht die Mühe wert.
Aktuelle Experimente : eXtreme Programmierung • eXtreme Programming die bekannteste Agile Methode • am sorgfältigsten untersuchten Praktiken von XP: Paar-Programmierung und Testgetriebene -Entwicklung. • Eine Zusammenfassung von durchgeführten Experimenten • Universität Karlsruhe 2005 • Walter F. Tichy, Matthias M. Müller, und Frank Padberg • Fakultät für Informatik
Paar Programmierung • 3 Szenarien : • Paar-Programmierung : • 2 Entwickler vor einem Rechner • Partner-Programmierung : • 2 Entwickler vor 2 Rechnern lösen die Aufgabe in konventioneller Gruppenarbeit • Einzel-Programmierung : ein Entwickler löst die Aufgabe allein
Paar Programmierung • Quantitativen Studien • ökonomische Aspekte • Ausgleich der verdoppelten Entwicklungs-Kosten durch die schnellere Entwicklung und die bessere Qualität • Qualitative Studien • soziale Effekte • Auswirkung auf die Lehre
Test-First • liegen brauchbare Studien vor • nicht so viel wie bei PP • 2 Faktoren : • Zeitpunkt des Erstellens des Tests • immer vor der Entwicklung der zu testenden Software-Komponente • automatische Durchführbarkeit des Tests • als Regressionstest bekannt
Experimente über Testgetriebene Entwicklung (TGE) Übersicht über die untersuchten Testtechniken
Experimente über TGE Empirische Studien über testgetriebenes Entwickeln Merkmale der Studien über testgetriebene Entwicklung
Experimente über TGE • verlangt ein Umdenken der Entwickler • nur mit nachträglichem Testen vertraut sind • erfordert eine lange Lernkurve • Ohne entsprechende Schulung führt zu oberflächlichem Testen, das die Entwickler in falscher Sicherheit lockt • die Zeitspanne unbekannt • nicht Vertrautheit mit der Methode • “Richtige” TGE führt zu • besser testbaren Komponenten • besserer Qualität
Experimente über XP • An der Universität Hannover • Thomas Flohr, Thorsten Schneider • Ergebnisse • Test-First führt zu einer schnelleren Entwicklung • Studenten lehnen Test-First nicht ab • PP um Prozesserfüllung zu sichern • Studenten: Test-First nicht besser oder schlechter
Relativ neue Experimente • Experimente über „Reading-Techniques“ • Was ist eine „Reading-Technique“? • „a concrete set of instructions given to the reader saying how to read and what to look for in a software product.“ • Software Reading: „the individual analysis of a software artifact e.g., requirements, design, code, test plans to achieve the understanding needed for a particular task“ e.g., defect detection, reuse, maintenance • an der Universität von Maryland von V.Basili und NASA.
Experimente über „Reading Techniques“ • Serie von Experimenten: • Code Reading vs Functional Testing vs Structural Testing • Cleanroom vs non-Cleanroom • defect-based reading vs ad-hoc reading vs check-list reading • perspective-based reading vs NASA’s reading Technik.
Experimente über „Reading Techniques“ • Code Reading vs Functional Testing vs Structural Testing • Vergleich von • Fehler-Erkennung und Kosten • Verschiedene Fehler-Klassen • Ergebniss: • Code Reading mehr effektive für Interface-Fehler-Erkennung • „Functional und Structural Testing“ mehr effektive für „control flow“ Fehler • über 90% : „functional testing“ besser ?! • Entwickler wollen nicht glauben, dass „reading“ besser ist.
Experimente über „Reading Techniques“ • Implementieret im SEL Entwicklungsprozess • sehr wenig effektive • lesen und nachher testen • nicht gelesen wie sie müssten • erzwingen zum Lesen • Cleanroom vs non-Cleanroom • Cleanroom-Entwickler waren motiviert zum Lesen • Cleanroom/Reading war effektiv • verringert die kosten für Veränderungen • Cleanroom Produkt • weniger Komplex • näher an der Anforderungen
Experimente über „Reading Techniques“ • „Senario-Based Reading“ • Zielgesteuert • anpassbar an der Umgebung und dem Projekt • verwendbar in vorhandenen Methoden, z.B. Inspektionen • spezifische Notation • Zwei Familien von „Senario-Based reading techniques“ für Anforderungs-Dokumente • Perspektive-Based Reading • fokussiert auf verschiedene Sicht des Anwenders • für Anforderungsdokumente im Englisch • Defect-Based Reading • fokussiert auf verschiedenen Fehlerklasse • für Anforderungsdokumente in SCR Style (Software Cost Reduction)
Experimente über „Reading Techniques“ • Experimente • defect-based reading vs ad-hoc reading vs check-list reading • perspective-based reading vs NASA’s reading Technik. • Vergleich von • Effektivität der Fehlerekennung
Experimente über „Reading Techniques“ • Ergebnisse: • Senario-Based Reading besser als Ad-Hoc, check-list and NASA‘s Readingsmethode • wenn wenig vertraut mit dem Arbeitsgebiet • PBR soll besser an der Umgebung angepasst werden • Effekt mehr in Teamarbeit • findet verschiedene Fehlerklassen abhängig von der Sicht
Ältere Experimente • „Programm Debugging“ • Gould, Drongowski(1974) • die Effekte von • „debugging aids“ • Fehlertyp • Entwickler oder Verwalter • Ergebnisse: • Zuweisungsfehlern Schwierig zu finden • mit Erfahrung einfacher • „debugging aids“ nicht hilfreich
Ältere Experimente • „Flowcharts vs Programm Design Languages (PDL)“ • Ramsey, Atwood, Van Doren (1983) • aus der Sicht des Entwicklers • Ergebnisse: • Kommunikation und „Design Performance“ besser bei PDL
Studentisches Beispiel • Masterarbeit zu zweit • Frage: • ob die Paare die Arbeit beschleunigen oder sich gegenseitig aufhalten??? • ähnlich wie PP? • DIE • Frage: • Welche DIE für welche zwecke? • Eclipse • Net-Beans von Sun • JBuilder von Borland • am schnellsten und besten entwickeln?
Studentisches Beispiel • Alle verfügen über: • Syntax Highlighting • Editor, Debugger und Compiler • Setzen von Breakpoints beim Debuggen • der Editor kann nach den Bedürfnissen des Benutzer angepasst werden • Anzeige der Zeilennummern • Klassenbrowser zum Anzeigen der Klassenstrukturen • eingebauter API Browser (Code Komplettierung) • Entwicklung für verschiedene SDK Versionen möglich (1.3, 1.4 oder 1.5) • …
Gliederung • Experimente • Aktuelle Experimente (2005) • eXtreme Programmierung • Paar-Programmierung • Test First • relativ neue Experimente (1996) • Reading Technik • Code Reading vs Functional Testing vs Structural Testing • Cleanroom vs non-Cleanroom • Senario Based Reading • Ältere Experimente (1986) • Studentisches Beispiel
Quelle • V. R. Basili and F. Lanuble, "Building Knowledge through Families of Experiments,"IEEE Transactions on Software Engineering, vol. 25, pp. 456-473, 1999. • Walter F. Tichy, Matthias M. Müller and Frank Padberg, „Ist XP etwas für mich? Empirische Studien zur Einschätzung von XP“ Fakultät für Informatik, Universität Karlsruhe, 2005. • Walter F. Tichy,“Should Computer Scientists Experiment More?“,1998. • V. R. Basili, „Experimentation in Software Engineering“,1986, 2002. • Matthias M. Müller, Johannes Link, Roland Sand, and Guido Malpohl, “Extreme Programming in Curriculum: Experiences from Academia and Industry“ Universität Karlsruhe, andrena objects ag, 2003. • V. R. Basili, „Evolving an Packaging Reading Technologies“, 1996.