Files in this item



application/pdficsm.pdf (245kB)
Main articlePDF


Title:Refactoring meets Spreadsheet Formulas
Author(s):Badame, Sandro
Contributor(s):Dig, Danny
end-user programming
Microsoft Excel
code smells
Abstract:The number of end-users who write spreadsheet programs is at least an order of magnitude larger than the number of trained programmers who write professional software. We studied a corpus of 3691 spreadsheets and we found that their formulas are riddled with the same smells that plague professional software: hardcoded constants, duplicated expres- sions, unnecessary complexity, and unsanitized input. These make spreadsheets difficult to read and expensive to maintain. Like refactoring of object-oriented code, refactoring of spreadsheet formulas can be transformative. In this paper we present seven refactorings for spreadsheet formulas implemented in REFBOOK, a plugin for Microsoft Excel. To evaluate the usefulness of REFBOOK, we employed three kinds of empirical methods. First, we performed a Retrospective Case Study on the EUSES Spreadsheet Corpus with 3691 spreadsheets to determine how often we could apply the refactorings supported by REFBOOK. Second, we conducted a User Survey with 28 Excel users to find out whether they preferred the refactored formulas. Third, we conducted a Controlled Experiment with the same 28 participants to measure their productivity when doing manual refactorings. The results show: (i) the refactorings are widely applicable, (ii) users prefer the refactored formulas, and (iii) REFBOOK is faster and safer than manual refactoring. On average REFBOOK is able to apply the refactorings in less than half the time that users performed the refactorings manually. 92.54% of users introduced errors or new smells into the spreadsheet or where unable to complete the task
Issue Date:2012
Citation Info:International Conference for Software Maintainence '12
Publication Status:published or submitted for publication
Date Available in IDEALS:2012-04-25

This item appears in the following Collection(s)

Item Statistics