Die Gültigkeit des Konzepts "Refactoring" in empirischen Studien darüber (Diplomarbeit, Masterarbeit)
Diese Arbeit soll die Qualität emprischer Untersuchungen zum Thema "Refactoring"
überprüfen, diskutieren und bewerten und zwar hauptsächlich im Hinblick darauf,
ob und inwieweit das, was die Studie jeweils untersucht, wirklich Refactoring ist
und falls nicht, wie sehr das die Gültigkeit der Resultate bedroht.
Empirische Studien über Refactoring, Forschungsfragen
Sehr knapp gesagt:
Studien über Refactoring beruhen oft auf "mining software repositories" und verwenden
dabei eine heuristische Definition zur Operationalisierung von "Refactoring".
Diese Heuristik erwischt aber auch viele Fälle, die gar kein Refactoring sind.
Die Forschungsfragen dieser Arbeit lauten:
Wie viele solche falsch positiven Treffer enthalten diverse Refactoring-Studien?
Wie viele falsch negative Treffer übersehen sie?
Wie schlimm ist das beides?
Kann man die Ergebnisse der Studie trotzdem als gültig ansehen oder sind
sie zweifelhaft?
Für wen ist diese Arbeit geeignet?
Diese Arbeit ist nur geeignet für Leute, die
- sehr gut im Umgang mit Sprache und Begriffen sind
- verstehen was Operationalisierung und Konstruktgültigkeit bedeuten
- gute Urteilskraft über Software und Softwareentwicklung besitzen
Die Arbeit wird von
LutzPrechelt betreut.
Die obige Beschreibung ist sehr knapp.
Wenn Sie möglicherweise Interesse an dieser Arbeit haben, sollten
wir das am Besten in der
Sprechstunde
besprechen.
Ich freue mich auf unser Gespräch!
Refactoring
The term refactoring was first coined by Opdyke in his
PhD thesis (1992) and describes the restructuring
of software without changing its external behavior. It was later popularized by
Fowler in his seminal book "Refactoring - Improving the Design of Existing Code". He claims that it improves the design, understandability, maintainability and developer productivity of software. Thus there are numerous studies trying to prove this positive effect of refactoring on several software quality criteria.
According to
Murphy-Hill et al. there are four basic methods to gather empirical data about refactoring:
- Mining the Commit Log
- Analyzing Code Histories
- Observing Programmers
- Logging Refactoring Tool Use
Due to the size of software projects and number of refactoring techniques it is not
really feasible to manually detect when refactorings were performed.
The most popular refactoring detection engine seems to be
Ref-Finder, introduced by Prete et al. in 2010. It covers 63 refactoring types and claims to have a precision of 0.74 and recall of 0.96. As the stated precision and recall are both questionable, further investigation is needed.
Files
Initial Presentation