Empirische Softwaretechnik



Ähnliche Dokumente
Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Die Quantitative und Qualitative Sozialforschung unterscheiden sich bei signifikanten Punkten wie das Forschungsverständnis, der Ausgangspunkt oder

Empirische Softwaretechnik

Fragebogen: Abschlussbefragung

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

8. Grundlagen der empirischen Sozialforschung

2. Psychologische Fragen. Nicht genannt.

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Verwendung von OO-Metriken zur Vorhersage

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

SWE12 Übungen Software-Engineering

Auswertung zur. Hauptklausur Unternehmensbesteuerung. vom und Ergebnisse der Kundenbefragung

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Internet Explorer Version 6

Kleines Handbuch zur Fotogalerie der Pixel AG

Studie über Umfassendes Qualitätsmanagement ( TQM ) und Verbindung zum EFQM Excellence Modell

Übersicht: Modul 2. Methoden der empirischen Sozialforschung, Statistik und computergestützte Datenanalyse. Dr. H.-G. Sonnenberg

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten?

Eine empirische Theorie für Software-Inspektionen. Empirische Softwaretechnik. Motivation (Forts.) Motivation für eine Theorie.

Ein Muster für ein Thesis Proposal

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Überprüfung der Bildungsstandards in den Naturwissenschaften. Chemie Marcus Mössner

14. Minimale Schichtdicken von PEEK und PPS im Schlauchreckprozeß und im Rheotensversuch

Mitarbeiterbefragung als PE- und OE-Instrument

Planung, Auswahl und Ingest

Präsentation vom im Rahmen der Fachberatertagung der Unfallkasse NRW in Haltern.

Meine Lernplanung Wie lerne ich?

Software Engineering in der Praxis

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

Nachkalkulation. Hat sich das Objekt CVO Auxilium hilden im Juni rentiert?

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

CONTINUOUS LEARNING. Agile Anforderungsanalyse mit Impact Mapping

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Letzte Krankenkassen streichen Zusatzbeiträge

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Benchmark zur Kompetenzbestimmung in der österreichischen SW Industrie. Mag. Robert Kromer NCP / AWS Konferenz Wien,

Auswertung qualitativer Interviews

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

Otto-von-Guericke-Universität Magdeburg

UNIVERSITÄT LEIPZIG WIRTSCHAFTSWISSENSCHAFTLICHE FAKULTÄT DIPLOM-PRÜFUNG

gallestro BPM - weit mehr als malen...

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Leitfaden für die ersten Schritte im INIT-eCampus. mailto:

Statistische Datenanalyse mit SPSS

Software Systems Engineering

Dokumentation. Zentraleslogin

Physik & Musik. Stimmgabeln. 1 Auftrag

Zukunft der WfbM Positionspapier des Fachausschusses IV

Handbucherweiterung Zuschlag

Informationsblatt zu den Seminaren am Lehrstuhl. für Transportsysteme und -logistik

Cambridge ESOL BULATS Online FAQs Konfiguration des Internet Explorers

Übungen zur Softwaretechnik

Übungsklausur vom 7. Dez. 2007

Zeichen bei Zahlen entschlüsseln

Requirements Engineering Research Group!

Name (in Druckbuchstaben): Matrikelnummer: Unterschrift:

FlowFact Alle Versionen

Politikverständnis und Wahlalter. Ergebnisse einer Studie mit Schülern und Studienanfängern

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

1. Einführung. 2. Die Abschlagsdefinition

Kundenbefragung als Vehikel zur Optimierung des Customer Service Feedback des Kunden nutzen zur Verbesserung der eigenen Prozesse

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Wie Projektziele gemessen werden können oder wie man Indikatoren entwickeln kann?

Organisatorisches. Ökonometrie I Michael Hauser WS15/16

Bachelor- und Master-Studium Informatik

SharePoint Demonstration

Hinweise für Lehrende zum Unterrichtsentwurf Geborgenheit (R+V Versicherung)

Umfrage Aktuell Neukundengewinnung und Lead Management in mittelständischen Unternehmen: Status quo, Chancen und Potentiale.

Informationsblatt Induktionsbeweis

WIE WIRKLICH IST DIE WIRKLICHKEIT WIE SCHNELL WERDEN SMART GRIDS WIRKLICH BENÖTIGT? DI Dr.techn. Thomas Karl Schuster Wien Energie Stromnetz GmbH

Psychologie im Arbeitsschutz

Requirements Engineering für IT Systeme

Kompilieren und Linken

Hinweise zum BA-Beifach-Studium in Philosophie

Fragebogen zur Nutzung des Angebots der Hochschulbibliothek an elektronischen Medien:

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

QM: Prüfen -1- KN

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Data Mining: Einige Grundlagen aus der Stochastik

Das Projekt wird durchgeführt von den Bezirksregierungen in Nordrhein- Westfalen in ihrer Funktion als Fachstelle für die öffentlichen Bibliotheken

Die Informatik-Studiengänge

Der Einsatz von Social Media im Stadtmarketing. Alexander Masser, Hans-Jürgen Seimetz, Peter Zeile

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Variablen & erweiterte Aktionen nutzen

Ruinwahrscheinlichkeiten im Glücksspiel

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

MO1 <logo otra empresa> MO1Sync Installationshandbuch MO1. MO1Sync Installationshandbuch -1-

Qualitätsmanagement an beruflichen Schulen in Deutschland: Stand der Implementierung. Diplomarbeit

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Pflegende Angehörige Online Ihre Plattform im Internet

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

icloud nicht neu, aber doch irgendwie anders

Workshops. Gewinnen Sie mehr Zeit und Qualität im Umgang mit Ihrem Wissen

Statistik II. Statistik II, SS 2001, Seite 1 von 5

Technische Dokumentation: wenn Englisch zur Herausforderung wird

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Transkript:

Empirische Softwaretechnik Prof. Dr. Walter F. Tichy Dr. Matthias Müller Sommersemester 2006 1

Organisatorisches prüfbar im Vertiefungsfach Softwaretechnik und Übersetzerbau Folien und Material unter http://www.ipd.uni-karlsruhe.de/tichy weiter unter Lehre, Empirische Softwaretechnik Kontakt: IPD, Info-Neubau Zimmer 368/372 tichy/muellerm@ira.uka.de 608-3934/7333 2

Erster Teil Einführung in die Thematik der Vorlesung 3

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 Pflichtvorlesung vorgestellt werden? 4

Empirie griechisch für Erfahrung. auf methodischem Wege (durch absichtlich 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 werden kann.) 5

Theorie 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 ermöglicht Vorhersagen Experimente bestätigen oder widerlegen (falsifizieren) die Vorhersagen von Theorien. Wissenschaftliche Theorien bilden den Kern unseres Weltverständnisses 6

Phänomen griechisch für etwas, das sich zeigt oder erscheint eine Erscheinung ein wiederholt auftretendes Verhalten Gegenstand von empirischen und theoretischen Untersuchungen 7

Phänomen, Theorie und Empirie beobachten messen bewerten anregen bestätigen verwerfen 8

Vom Phänomen zur Theorie 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. 9

Rolle der Empirie Empirie beobachtet, misst und bewertet Phänomene Empirie bestätigt oder verwirft Vorhersagen von Theorien Empirie regt neue Theorien an 10

Definition: Empirische Softwaretechnik 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 11

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? 12

Stand der Forschung Technik stärkster Teil der Softwaretechnikforschung viele nützliche Werkzeuge verschiedene Programmierparadigmen mehrere Vorgehensweisen (z.b. klassische Entwicklungsphasen, Cleanroom Development, Extreme Programming) siehe Pflichtvorlesung 13

Stand der Forschung (2) Theorie gering entwickelt und meist nur qualitativ formale Softwareprozess-Modelle erste ökonomische Modelle und Kosten-Nutzen- Analysen 14

Stand der Forschung (3) Empirie viel Forschung über Software-Metriken viele Fallstudien in den letzten 10 Jahren mehr systematische Experimente wichtige empirische Erkenntnisse drastisch verbesserte Methodik 15

Gegenstand der Vorlesung konkrete Fallstudien und Experimente aus der Softwaretechnik experimentelle Methodik statistische Datenanalyse softwaretechnische Bewertung der empirischen Ergebnisse neuere Empirie-basierte Theorien 16

Vorgehensweise 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 17

Softwaretechnische Themen in der Vorlesung Multiversions-Programmierung Vererbungstiefe Zusicherungen Paarprogrammierung Software-Inspektionen Formale Methoden 18

Lernziele 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 19

Lernziele (2) methodische und statistische Grundlagen für empirische Untersuchungen in der Softwaretechnik beherrschen Beispiele Empirie-basierter Theorien in der Softwaretechnik beschreiben können 20

Übergeordnete Lernziele Qualität empirischer Untersuchungen in der Softwaretechnik beurteilen können Tragfähigkeit der daraus abgeleiteten Schlussfolgerungen beurteilen können Kosten und Nutzen von Entwicklungstechniken objektiv abwägen können 21

Literatur Originalarbeiten IEEE Transactions on Software Engineering Journal on Empirical Software Engineering Wohlin et al.: Experimentation in Software Engineering (Kluwer, 2000) Juristo u. Moreno (Herausgeber): Lecture Notes on Empirical Software Engineering (World Scientific, 2003) 22

Literatur (2) Christensen: Experimental Methodology (Allyn and Bacon, 2001) Endres u. Rombach: A Handbook of Software and Systems Engineering (Pearson 2003) 23

Literatur (3) Forschungsarbeiten am Lehrstuhl Tichy Prechelt: Kontrollierte Experimente in der Softwaretechnik (Habilschrift, Springer, 2001) Empirical Informatics Research Group http://www.ipd.uka.de/~exp neuere Publikationen auf den Webseiten von M. Müller und F. Padberg 24

Zweiter Teil Wichtige empirische Forschungsmethoden im Überblick 25

Empirische Forschungsmethoden Fallstudie Feldexperiment kontrolliertes Experiment Umfrage Metastudie 26

Fallstudie genaue Beschreibung und Analyse... eines Vorgangs einer Organisation eines Ereignisses nutzt verschiedene Informationsquellen... Interviews Dokumente Messungen 27

Fallstudie (2) Anwendung Illustration eines Werkzeugs Machbarkeitsstudie Abschätzung der Effizienz einer Technik relativ einfach durchzuführen Ergebnis schwierig zu verallgemeinern Bekannte Fallstudie: Absturz der Adriane- Rakete 28

Feldexperiment in einer realen Umgebung durchgeführt 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) 29

Feldexperiment (2) 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. 30

Anwendung Feldexperiment (3) 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 31

Feldexperiment (4) realistische Ergebnisse Kontext oft schwer zu erfassen Kosten oft hoch benötigt Unterstützung durch Management 32

Feldexperiment (5) Spezialfall: Software-Archäologie eingriffsfreies Feldexperiment alle Beobachtungen erfolgen erst im Nachhinein basiert auf Daten, die das Projekt sowieso gesammelt hat (Versionsdatenbank, Fehlermeldungen, Fehlerdichten, Bearbeitungszeiten) Qualität der Daten oft schwer einzuschätzen oft fehlen Daten oder Zusatzinformationen 33

Beispiel einer Fallstudie: Test-Driven Development bei IBM Maximilien u. Williams: Assessing Test-Driven Development at IBM studiert, wie sich Test-Driven Development (TDD) auf die Fehlerdichte in einem realen Projekt bei IBM auswirkt International Conference on Software Engineering ICSE 25 (2003) 564-569 34

Test-Driven Development zuerst die Testfälle schreiben, dann implementieren ( test-first ) häufiges automatisches Ausführen aller Testfälle (mit junit) wichtige Technik bei XP 35

Fallstudie: TDD bei IBM (2) Produkt JavaPOS (Java for Point of Sale) definiert eine Bibliothek von Java Beans zum Ansprechen von Geräten am Verkaufsplatz bisherige Versionen von JavaPOS hatten zu hohe Fehlerdichte abschließender functional verification test für jede Version 36

Fallstudie: TDD bei IBM (3) 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

Fallstudie: TDD bei IBM (4) 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] 38

Erhoffte Vorteile von TDD niedrigere Fehlerdichte 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

Fehlerdichte bei JavaPOS alt tatsächlich erwartet 7,0 Fehler/KLOC tatsächlich 5,5 Fehler/KLOC erwartet 40

Fehlerdichte bei JavaPOS neu tatsächlich erwartet 3,7 Fehler/KLOC tatsächlich 4,0 Fehler/KLOC erwartet 41

Einige Unklarheiten JavaPOS neu hatte 71 KLOC, aber Größe von JavaPOS alt wird nicht angegeben unklar, ob Fehlerdichte bei JavaPOS alt sich nur auf hinzugekommenen (bzw. geänderten) Code bezieht; JavaPOS neu zeigt 247 Fehler, JavaPOS alt nur 80 Dauer, Größe und Zusammensetzung des Abschlusstests wird nicht angegeben 42

Fazit der Studie Verringerung der Fehlerdichte 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

Einordnung der Studie begonnen als Fallstudie: Einsatz von TDD bei einem Projekt bei IBM Messen von Fehlerdichte, Aufwand, u. a. ausgebaut zu Feldexperiment: Vergleich mit Parallel-Projekt, das ohne TDD durchgeführt wird kontrollierte Variable ist die Testtechnik (unsystematisch versus TDD) 44

Fortsetzung folgt... 45