Refactoring Meets Model-Driven Spreadsheet Evolution

Software refactoring is a well-known technique that provides transformations on software artifacts with the aim of improving their overall quality. In this paper we present a set of refactoring for Class Sheets, a modelling language that allows to specify the business logic of a spreadsheet in an object-oriented fashion. The set of refactoring that we propose allows us to improve the quality of these spreadsheet models. Moreover, it is implemented in a setting that guarantees that all model refactoring are automatically carried to all the corresponding (spreadsheet) instances, thus providing an automatic evolution of the data so it is always synchronized with the model.

[1]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[2]  Jácome Cunha,et al.  Complexity Metrics for ClassSheet Models , 2013, ICCSA.

[3]  Arie van Deursen,et al.  Detecting and visualizing inter-worksheet smells in spreadsheets , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[4]  Arie van Deursen,et al.  Detecting code smells in spreadsheet formulas , 2011, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[5]  Gregg Rothermel,et al.  WYSIWYT testing in the spreadsheet paradigm: an empirical evaluation , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[6]  Danny Dig,et al.  Refactoring meets spreadsheet formulas , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[7]  Jácome Cunha,et al.  A bidirectional model-driven spreadsheet environment , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[8]  David Maier,et al.  The Theory of Relational Databases , 1983 .

[9]  Jácome Cunha,et al.  From spreadsheets to relational databases and back , 2009, PEPM '09.

[10]  Gregg Rothermel,et al.  Integrating automated test generation into the WYSIWYT spreadsheet testing methodology , 2006, TSEM.

[11]  Helmut Neukirchen,et al.  An approach and tool for synchronous refactoring of UML diagrams and models using model-to-model transformations , 2012, WRT '12.

[12]  Gregor Engels,et al.  ClassSheets: automatic generation of spreadsheet applications from object-oriented specifications , 2005, ASE '05.

[13]  Jácome Cunha,et al.  SmellSheet detective: A tool for detecting bad smells in spreadsheets , 2012, 2012 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[14]  Jácome Cunha,et al.  MDSheet: A framework for model-driven spreadsheet engineering , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[15]  Cliff T. Ragsdale,et al.  Modeling Optimization Problems in the Unstructured World of Spreadsheets , 1997 .

[16]  Jácome Cunha,et al.  Bidirectional Transformation of Model-Driven Spreadsheets , 2012, ICMT@TOOLS.