MINAR „Erfahrung und Experimente im Software Engineering“
1
Beziehung von Erfahrungen + Experimenten (Forschungsfront):
Spannende Experimentergebnisse und das FLOW-Projekt
Xiaoxuan Ge
22.02.2006
2Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Gliederung
Rückblick des Seminars Zusammenfassung von vorigen Vorträgen
Empirical Software Engineering Beziehung von Erfahrung und Experimente
Forschungsfront – Beispiele SE-Experimente Erfahrung aus einem eWorkshop: Inspections oder Pair
Programming Ein Replikationsexperiment: Evaluation der Lerneffektivität mittels
Simulationen
Das FLOW-Projekt „Should Computer Scientists experiment more?“ Zusammenfassung
3Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Rückblick des Seminars
Erfahrungen - „experience“ Wissensmanagement
Formen der Wissensumwandlung,
Fünf-Phasen-Modell
Experience Base Experience Factory, Experience Engine
Erfahrungsbasierte Prozessverbesserung in Software CMM, QIP und GQM
Erfahrungserhebung in Projekten: Post-Mortem-Analyse Light-weight documentation of experiences (LID)
Erfahrungen aktiv suchen: FOCUS, GQM zum zielorientierten Messen und Experimentieren
Quelle: Folien zum Seminar von De Vries
4Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Rückblick des Seminars
Experimente - „experiment“ SE-Themen, für die sich Experimente lohnen
alte und neue Experimente, eXtreme Programming und PP
Experimente in Medizin, Psychologie und Informatik im Stilvergleich Warum experimentieren, Experiment „Citrusduft“
Statistik für Experimente Professor Schneider „experimetiert“
Experimentaufbau und –design Experiment „roter Hintergrund“
Auswertung, Nutzung und Intepretation der Experimentergebnisse
Quelle: Folien zum Seminar von Twelker
5Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Empirical Software Engineering
Ursprung: Griechischεμπειρισμό ς „empirical“ und „empiricism“ -pir- in engen Zusammenhang mit -per- im Lateinisch Bedeutung: testen oder versuchen
„experientia” „experience“
“experimentum “ „experiment“
Empirie - „empiricism“:Wissenschaftlich, auf methodischem Weg und durch absichtlich angestellte Beobachtungen und Experimente gewonnene Erfahrung. Hinzu kommen Befragungen vorher nach bestimmten Gesichtspunkten ausgewählter Individuen oder Gruppen, so genannter Probanden.
Quelle: Wikipedia
Quelle: Wikipedia
6Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
„An empirical study is really just a test that compares what we believe to what we see...“
„empirical study“: Fallstudien, Befragungen, Prototyping, Experimente
Leider bis jetzt nicht den selben Erfolg im SE N. Fenton: mangelnder statist. Design, kurzer Ausführungszeit V. Basili: Vergleich schwierig, da individueller Projekte P. Johnson: Praktiker lehnen Messungen ab
Betrachtungsweise für empirische Ansätze im SE Kosten- und Gewinnfaktoren bestätigen „key way“ um Entscheidungen zu treffen, Ergebnisse stärken Allgemeineren Prozess Ablaufpan benötigt
Empirical Software Engineering
Zitat: Empirical Studies of Software Engineering: A Roadmap
Aufbau einer empirische Studie im SE
7Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Konzeption einer empirischen Studie im SE:
Empirical Software Engineering
Forschungskontext Hypothese
Gültigkeitsdefinition Studiendesign
DatenanalyseSchlussfolgerung
Durchführung der Studie
8Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Problem mit Ziel der Studie Problemdefinition: mit entsprechenden
Fachvokabular Forschungsreview: historischen Kontext
und offenen Fragen
Empirical Software Engineering
Essenz der Studie High-level low-level
Abstrakte Hypothese: „Meetings sind un-versichtbar in einem Software Inspection Process“
Konkrete Hypothese: „Teams, die Inspections mit Meetings durchführen, finden mehr Fehler als Teams, die Inspections ohne Meetings durchführen“
9Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Empirical Software Engineering
Plan zum Testen der Hypothesen Beschreibung zur physischen,
interlektuellen oder kulturellen Umfeld Definition der Variablen:
Unabhängige und abhängige Variablen Herausforderung beim Design der Studie:
Einflußreiche und glaubhafte Studien zu konzipieren Folgende Aspekte spielen eine große Rolle:
Genauigkeit der Interpretation Relevanz des Ergebnisses Einfluß auf die Forschung
in Abhängigkeit von: Ressorceneinschränkung kostenspielig Risikomanagement möglichst minimieren
10Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Empirical Software Engineering
Quantitative Analyse: Vergleichen der numerischen Daten zur Überprüfung der Null-Hypothese Hypothese-Test und Leistungsanalyse
Qualitative Analyse: Schlecht quantifizierbare Aspekte wie Interviews, Perspektive der Beteiligten
Einfluß auf Schlussfolgerung Konstruktionsgültigkeit: Modellierung der
abs. Hypothese durch unabhäng. und abhäng. Var.
Interne Gültigkeit: Änderung der unabhäng. Var. führt zu Änderung der abhäng. Var.
Externe Gültigkeit: Ergebnis kann verallge-meinert werden
11Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Empirical Software Engineering
Ergebnis Interpretation und Schlussfolgerung aus den Ergebnissen ziehen
Sicherstellen, dass genug Information geliefert wurden
alle Frage am Anfang beantwortet
zum Reproduzieren dieser Studie
Strategien zur „erfolgreichen“ Studie Klare Anforderung definieren aufschlußreiche Frage Reproduktion einer Studien Experimente wiederholen Mitbeteiligung von anderen speziell Studenten im SE Involvieren von anderen Perspektiven in qualitative Analyse
bei Befragung oder Interviews
Ein bestimmter Typ: Experiment
12Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Ablauf eines Experiments
abbilden auf allgemeine empirische Studien
Empirical Software Engineering
ForschungskontextHypothese
Gültigkeitsdefinition
Studiendesign
Datenanalyse
Schlussfolgerung
Quelle: Folien zum Seminar von Twelker
13Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Forschungsfront – Beipiele SE-Experimente
Erfahrung aus einem eWorkshop:
Inspections and Pair Programming – Konkurrierend oder Ergänzend?
Ziel: Stärken, Schwächen: konkurrierend oder ergänzend?
Experimentbeschreibung: Basiert auf Erfahrungsaustausch Diskussion in einem Experten eWorkshop
Motivation: gleiche Ziele aber andere Ansätze:
Insp. CMM-basierte MethodenPP agile Software
Development Bessere Nutzung der beiden Methoden
14Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Forschungsfront – Beipiele SE-Experimente
eWorkshop: Online, gut organisiertes Meeting, ersetzt face-to-face Workshop Platform zum Erfahrungsaustausch: effizient und kostengünstig Benutzt eine Web-basierte Chatprogramm
1. Auswahl eines Themas2. Teilnehmer einladen3. Pre-meeting Info-Sheet an Teilnehmer verteilen4. Organisatoren analysieren Pre-meeting Info-Sheet5. Zusammengestellte Themen an Teilnehmer verteilen6. Pre-meeting-Training: Ausprobieren der Tools7. Control-room initialisieren mit verschiedenen Rollen8. eWorkshop ausführen9. Post-meeting Analyse und Synthese
Vorbereitungs-phase
15Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Forschungsfront – Beipiele SE-Experimente
Support Team mit Rollen: Leiter, Moderator, Schreiber, Analyitiker und Technical Support
abgestimmt und Zwischenergebnisse präsentiert
Quelle: V. Basili et al. Building an Experience Base for Software Engineering
16Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Forschungsfront – Beipiele SE-Experimente
Ergebnis Interpretation des Experten eWorkshop:
Themenasp. Ergebnis der Diskussion (Experience Base)
Auswirkung auf Qualität
Gleiches Ziel: Qualität in SD erhöhen Reduzieren von Fehlern, die zur nächsten Phase durchschlüpfen
Insp.: hohe Qualität (low rates of defect slippage) hohe Kosten
PP: braucht mehr Beweis weniger Kosten
Perspektive des dritten Beteili
gten
(Third party perspective)
Insp.: Mit „Third party perspective“
zusätzlichen Feedback
Ermöglicht Fokus auf zusätzlichen Aspekte mit großem Einfluß
PP: Fehlen von „Third party perspective“
Kollektiver Codebesitz und Rotationsprinzip im Entwicklungsteam „könnte“ evtl. diesen Mangel umgehen
Wirkungs-zyklus
(feedback cyc.)
Je kürzer, umso besser
Insp.: langer Feedbak Zyklus Erreichen stabilen Zustands
PP: kurzer Feedback Zyklus Fehler sofort von Partner gefunden
Quelle: F. Shull et al. Inspections and Pair Programming – competing or complementary?
17Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Forschungsfront – Beipiele SE-Experimente
Ein Replikationsexperiment: Evaluation der Lerneffektivität mittels Simulationen in der Lehre der Software Projektmanagement
Motivation: Hohe Bedarf an trainierten erfahrenen Software Project Manager Studenten nur Fachwissen, aber keine Erfahrungen in der
Software Project Planning Ziel:
Informatikstudenten effizient SPP belehren Erfahrung gewinnen Experimentbeschreibung:
An Universitäten mit Studenten in zwei Gruppen: COCOMO versus System Dynamic Simulation Model
Initialexperiment: Uni Kaiserslautern Replikationsexperiment: University of Oulu
18Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
COCOMO (Constructive Cost Model) zur Kosten- bzw. Aufwandsschätzung in Pers.Mon, Mannjahr Anzahl von Codezeilen und Erfahrungswerten Meistens angesehen als Industriestandard
SD Simulations Modell Ganzheitliche Analyse und
(Modell-) Simulation kompl. und dynam. Systeme
Auswirkungen von Mgmt- Entscheidungen auf die Systemstruktur und System- verhalten
Unternehmenserfolg DYNAMO, Powersim ...
Forschungsfront – Beipiele SE-Experimente
19Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Experimentaufbau:
Pre-Test und Post-Test Effektivitätsmessung: abhäng. Var.
Y.1: Eigene Interesse an SPM
Y.2: Wissen über typischen Verhaltensmuster von SDP
Y.3: Verständnis über einfache Projekt Dynamik
Y.4: Verständnis über komplexe Projekt Dynamik
Forschungsfront – Beipiele SE-Experimente
GAGB
Quelle: An Externally Replicated Experiment for Evaluating the Learning Effectiveness
20Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Hypothese zum Experiment:H0,1: Positive Lerneffektivität Steigerung der Lerneffektivität in beiden Gruppen
scorepre (Y.i; A) = scorepost (Y.i; A),scorepre (Y.i; B) = scorepost (Y.i; B) for i = 1,…, 4
H0,2: SD Simulation Modell bessser als COCOMO Lerneffektiviät in Gruppe A ist höher als in Gruppe Ba: “relative Lerneffektivität” Leistungsverbesserung zwischen pre-test post-test
scorediff (Y.i; A) = scorediff (Y.i; B) for i = 1,…, 4b: “absolute Lerneffektivität”: post-test abhängig von der Art des Trainings
scorepost (Y.i; A) = scorepost (Y.i; B) for i = 1,…, 4
Forschungsfront – Beipiele SE-Experimente
21Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Experimentdurchführung:Block 1- Einleitung: Aufgabe PM und typ. Probleme DiskussionenBlock 2 - Rollenspiel: Illustration Projekt, interaktiv, Rolle eines PM SD Modell web-bas. Role-PlayBlock 3 - Planungsphase: Modelle kennenlernen, Konzept erstellen Präsentation wichtigen AspekteBlock 4 - Applikation: Modell konkret aufbauen Beispielprojekt ausführen
Forschungsfront – Beipiele SE-Experimente
Quelle: An Externally Replicated Experiment for Evaluating the Learning Effectiveness
22Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Datenanalyse:
Forschungsfront – Beipiele SE-Experimente
Quelle: An Externally Replicated Experiment for Evaluating the Learning Effectiveness
23Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Experimentergebnisse: Wiederlegung der Hypothesen H0,1, H0,2a und H0,2b
Steigung der Lerneffektivität von pre-test und post-test
Gruppe A (SD Simulation Modell) besseren Verständnis über die PD-Verhalten (Lerneffektivität) als Gruppe B (COCOMO)
Befragung: web-basierte Role-play Tool gut angekommen
durch Ergebnis bestätigt
Gewinn aus dem Experiment: Experiment reproduziert
Bestätigen dasgleiche Ergebnis Probanden: Studenten Bestätigt Konzept der emp. Stud.
Forschungsfront – Beipiele SE-Experimente
Andere Projekte?
24Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Das FLOW-Projekt
Projekt seit 2004 am SE-Lehrstuhl an der Uni Hannover Motivation:
Ständige Anpassung an die Anforderungen von Kunden Ziel:
Qualitätssicherung von Software FLOW: Informations- und Erfahrungsflüsse Analyse des FLOWs
Software Engineering nach Maß (Tailoring)
Konzept der Flüssen in Projekten Projektinformationen Methoden- und SE-Wissen Erfahrungen Quelle: K. Schneider,
Folien der Antrittsvorlesung
25Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Das FLOW-Projekt
Ständiger Fluss von FLOWs in einem Projekt
Analyse der FLOWs: durch Experimenten
Quelle: K. Schneider, Folien der Antrittsvorlesung
26Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Should Computer Scientist experiment more?
Jahr Zitierungsrate in %
EMSE IEEE (TSE)
IST
1996 70 94 53
1997 63 94 58
1998 77 88 44
1999 58 57 44
2000 20 43 21
2001 14 21 14
durchschn. ZR 50 66 38
Fakten, die dafür sprechen? Durchschnittliche Zitierungsrate Maß für Stellenwert einer
Artikel in der Wissenschaft
Quelle: Have twenty-five years of Empirical SE made a difference?
27Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Victor Basili
Andreas JedlitschkaMarvin Zelkowitz
Pekka Abrahamsson
Forrest Shull
Walter Tichy
„Die große Familie“:
Should Computer Scientist experiment more?
28Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Should Computer Scientist experiment more?
Fraunhofer USA Inc. Center for Experimental Software Engineering in Maryland
Fraunhofer IESE Institut für Experimentelles Software Engineering
ISERN Zweig: ISERN Experiment
ISESE: Symposium on empirical SE
CeBASE: Center for empirically based SE
www.empirical.jp Empirical Approach to SE
Quelle: www.empirical.jp
29Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Should Computer Scientist experiment more?
Zitate von Walter Tichy:
“… As computer science leaves adolescence behind, I hope to see the experimental branch of this discipline flourish!”
Zitat: Should Computer Scientist experiment more?
“Experimentation is central to the scientific process. Only experiments test theories. Only experiments can explore critical factors and bring new phenomena to light so that theories can be formulated and corrected….”
30Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Zusammenfassung
Empirical Software Engineering in engen Zusammenhang mit Erfahrung und Expereimenten
Empirische Studien: Studiendesign relevante und einflußreiche Ergebnisse erzielen Schlussfolgerung glaubhaft und präzise interpretiert Erfolgreich? Reproduzierbarkeit einer Studie
Beispielprojekte eWorkshop und Replikationsexperiment Das FLOW-Projekt: SE nach Maß
Fakten, die für das „Experimentieren“ im SE sprechen: Durschnittliche Zitierungsrate wichtigsten Wissenschaftler und Institutionen
Vielen Dank für Ihre Aufmerksamkeit!
31Beziehung von Erfahrungen und Experimenten - Forschungsfront 22.02.2006
Literaturen
1998 Should Computer Scientists Experiment More? Tichy2000 Empirical Studies of Software Engineering: A Roadmap2001 A Controlled Experiment to Assess the Effectiveness of Inspecti
on Meetings2001 Building an Experience Base for Software Engineering: A report
on the first CeBASE eWorkshop, Basili2002 An Externally Replicated Experiment for Evaluating the Learnin
g Effectiveness of Using Simulations in Software Project Management Education
2002 Has Twenty-five Years of Empirical Software Engineering Made a Difference?
2004 Folien der Antrittsvorlesung, Schneider2004 Empirical Software Engineering Platform and Empirical Project
Monitor www.empirical.jp2005 Inspections and Pair Programming – competing or complement
ary? Experiences from an Expert eWorkshop, Basili, Shull2005 Empirical study design in the area of High-Performance
Computing (HPC), Basili, Shull