TY - JOUR
T1 - Detecting and refactoring code smells in spreadsheet formulas
AU - Hermans, Felienne
AU - Pinzger, Martin
AU - van Deursen, Arie
PY - 2015/4/1
Y1 - 2015/4/1
N2 - Spreadsheets are used extensively in business processes around the world and just like software, spreadsheets are changed throughout their lifetime causing understandability and maintainability issues. This paper adapts known code smells to spreadsheet formulas. To that end we present a list of metrics by which we can detect smelly formulas; a visualization technique to highlight these formulas in spreadsheets and a method to automatically suggest refactorings to resolve smells. We implemented the metrics, visualization and refactoring suggestions techniques in a prototype tool and evaluated our approach in three studies. Firstly, we analyze the EUSES spreadsheet corpus, to study the occurrence of the formula smells. Secondly, we analyze ten real life spreadsheets, and interview the spreadsheet owners about the identified smells. Finally, we generate refactoring suggestions for those ten spreadsheets and study the implications. The results of these evaluations indicate that formula smells are common, that they can reveal real errors and weaknesses in spreadsheet formulas and that in simple cases they can be refactored.
AB - Spreadsheets are used extensively in business processes around the world and just like software, spreadsheets are changed throughout their lifetime causing understandability and maintainability issues. This paper adapts known code smells to spreadsheet formulas. To that end we present a list of metrics by which we can detect smelly formulas; a visualization technique to highlight these formulas in spreadsheets and a method to automatically suggest refactorings to resolve smells. We implemented the metrics, visualization and refactoring suggestions techniques in a prototype tool and evaluated our approach in three studies. Firstly, we analyze the EUSES spreadsheet corpus, to study the occurrence of the formula smells. Secondly, we analyze ten real life spreadsheets, and interview the spreadsheet owners about the identified smells. Finally, we generate refactoring suggestions for those ten spreadsheets and study the implications. The results of these evaluations indicate that formula smells are common, that they can reveal real errors and weaknesses in spreadsheet formulas and that in simple cases they can be refactored.
KW - Code smells
KW - Refactoring
KW - Spreadsheets
UR - http://www.scopus.com/inward/record.url?scp=84928707326&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84928707326&partnerID=8YFLogxK
U2 - 10.1007/s10664-013-9296-2
DO - 10.1007/s10664-013-9296-2
M3 - Article
AN - SCOPUS:84928707326
SN - 1382-3256
VL - 20
SP - 549
EP - 575
JO - Empirical Software Engineering
JF - Empirical Software Engineering
IS - 2
ER -