Exploring Software Refactoring Decisions in a Lean Startup

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2015-12-14

Department

Major/Subject

Service Design and Engineering

Mcode

IL3005

Degree programme

Master's Programme in Service Design and Engineering (SDE)

Language

en

Pages

54 + 8

Series

Abstract

Software systems are continuously forced to evolve as they cannot resist change. Quality typically degenerates as a software is subjected to change during the course of its lifetime. In this process, software quality must be audited, secured, and maintained, whereas maintaining such a system demands continuous refactoring. Researchers have contributed widely in the area of software refacting. Fowler and Beck have introduced 22 problematic code smells considered as drivers for refactoring decisions, whereas Brown et al. have identified development anti- patterns known to make systems harder to maintain. In spite of the wide contribution in the field, there is still little evidence to justify the usage of refactoring drivers. This study aims to contribute in this research gap by finding evidence on how software practitioners behave when making refactoring decisions. To achieve its objective, this study initially conducts a literature review on the drivers for refactoring decisions, i.e., code smells and anti-patterns. Further, it examines relevant literature exploring the usage of these drivers. Finally, we conduct a case study introducing new empirical evidence on how software practitioners make use of refactoring drivers. We further discuss the relation between our empirical findings and the examined literature. Our key findings indicate that the code smells and anti-patterns found in the literature are not enough to be used as a basis for refactoring decisions. Drivers related to code documentation and style have been mostly neglected in the literature, whereas together they were the underlying reason for the 45% of all refactoring decision made in the case company.

Description

Supervisor

Lassenius, Casper

Thesis advisor

Lassenius, Casper

Keywords

software refactoring, code smells, anti-patterns, quality attributes

Other note

Citation