|Title||Evaluating refactorings for spreadsheet models|
|Authors||Jacome Cunha, Joao Paulo Fernandes, Pedro Martins, Jorge Mendes, Rui Pereira, & Joao Saraiva|
Software refactoring is a well-known technique that provides transformations on software artifacts with the aim of improving their overall quality. We have proposed a catalog of refactorings for model-driven spreadsheets. Such refactorings were expressed in the ClassSheet modeling language, which allows to specify the business logic of a spreadsheet in an object-oriented fashion.
In such model-driven spreadsheet environment the ClassSheet model and conforming instance, that is the spreadsheet data, automatically co-evolve after a refactoring is applied at the model level. Our motivation for such research was to improve both the quality of the model and of its conforming instance: the spreadsheet data.
In this paper, we present an empirical study we designed and conducted in order to confirm our original intuition that these refactorings are effective in their aim. Our study focused on the productivity perspective of quality: we consider a model to have better quality than another one if the first ensures greater end user productivity than the last one, both in terms of efficiency and effectiveness.
Although our refactorings are proposed at the model level, in this paper we measure the productivity gain they allow when end users manipulate their conforming spreadsheet instances. In fact, the conforming instances are standard spreadsheets, and are the widely used software artifact used by millions of end users worldwide.
To assess the quality of a spreadsheet instance, we also evaluate the overall user experience with its refactored version (corresponding to a refactored model). Although the productivity aspect is quite important, the acceptance by the users is also of paramount importance.
The results of our study are overall very encouraging. Indeed, in almost all cases the refactorings improved end-users productivity, both in terms of efficiency and effectiveness. Moreover, in most cases users were more engaged with the refactored version of the spreadsheets they worked with. These results, which are statistical significant, show that the refactorings not only improve the productivity aspect of quality, but also please the spreadsheet end-users.
Using ClassSheets we have created MDSheet, a framework that provides a bidirectional model-driven spreadsheet environment. The techniques and language allow transformations/evolutions from models to be automatically applied to the corresponding instances and vice-versa.