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

Comments