|Title||Detecting and refactoring code smells in spreadsheet formulas|
|Authors||Felienne Hermans, Martin Pinzger, & Arie van Deursen|
|Publication||Empirical Software Engineering|
|Series||Volume 20, Issue 2, April, pages 549-575|
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.
Example of duplication code smell. The subformula SUM(B2:B4) also occurs in B5 and could be extracted from the highlighted formula in B13.