Embedding, Evolution, and Validation of Model-Driven Spreadsheets

This paper proposes and validates a model-driven software engineering technique for spreadsheets. The technique that we envision builds on the embedding of spreadsheet models under a widely used spreadsheet system. This means that we enable the creation and evolution of spreadsheet models under a spreadsheet system. More precisely, we embed ClassSheets, a visual language with a syntax similar to the one offered by common spreadsheets, that was created with the aim of specifying spreadsheets. Our embedding allows models and their conforming instances to be developed under the same environment. In practice, this convenient environment enhances evolution steps at the model level while the corresponding instance is automatically co-evolved. Finally, we have designed and conducted an empirical study with human users in order to assess our technique in production environments. The results of this study are promising and suggest that productivity gains are realizable under our model-driven spreadsheet development setting.

[1]  Jean Bézivin,et al.  Managing Model Adaptation by Precise Detection of Metamodel Changes , 2009, ECMDA-FA.

[2]  Arie van Deursen,et al.  Supporting professional spreadsheet users by generating leveled dataflow diagrams , 2010, 2011 33rd International Conference on Software Engineering (ICSE).

[3]  José Nuno Oliveira Transforming Data by Calculation , 2007, GTTSE.

[4]  Carroll Morgan,et al.  Data refinement by calculation , 1990, Acta Informatica.

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

[6]  Mary Shaw,et al.  The state of the art in end-user software engineering , 2011, ACM Comput. Surv..

[7]  Jácome Cunha,et al.  Embedding and evolution of spreadsheet models in spreadsheet systems , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[8]  Davide Di Ruscio,et al.  Coupled Evolution in Model-Driven Engineering , 2012, IEEE Software.

[9]  Martin Erwig,et al.  Mutation Operators for Spreadsheets , 2009, IEEE Transactions on Software Engineering.

[10]  M. Erwig,et al.  Automatic generation and maintenance of correct spreadsheets , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[11]  Perdita Stevens,et al.  «UML» 2003 - The Unified Modeling Language. Modeling Languages and Applications , 2003, Lecture Notes in Computer Science.

[12]  Arie van Deursen,et al.  Automatically Extracting Class Diagrams from Spreadsheets , 2010, ECOOP.

[13]  Rui Abreu,et al.  Constraint-based Debugging of Spreadsheets , 2012, CIbSE.

[14]  Richard F. Paige,et al.  Comparing Model-Metamodel and Transformation-Metamodel Co-evolution , 2010 .

[15]  Jácome Cunha,et al.  FaultySheet Detective: When Smells Meet Fault Localization , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

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

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

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

[19]  Hugo Ribeiro,et al.  Towards a Catalog of Spreadsheet Smells , 2012, ICCSA.

[20]  Martin Erwig,et al.  Visual specifications of correct spreadsheets , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[21]  Dietmar Jannach Toward Interactive Spreadsheet Debugging , 2014 .

[22]  Willem P. de Roever,et al.  Data Refinement: Model-oriented Proof Theories and their Comparison , 1998, Cambridge Tracts in Theoretical Computer Science.

[23]  Gregor Engels,et al.  Systematic evolution of model-based spreadsheet applications , 2012, J. Vis. Lang. Comput..

[24]  Jácome Cunha,et al.  End-Users Productivity in Model-Based Spreadsheets: An Empirical Study , 2011, IS-EUD.

[25]  Jácome Cunha,et al.  Smelling Faults in Spreadsheets , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[26]  Jácome Cunha,et al.  Extension and implementation of ClassSheet models , 2012, 2012 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[27]  José Nuno Oliveira,et al.  Type-Safe Two-Level Data Transformation , 2006, FM.

[28]  Willem-Paul de Roever,et al.  Data Refinement: Theory , 1998 .

[29]  Raymond R. Panko Improving Methodology in Spreadsheet Error Research , 2014 .

[30]  Sander Vermolen,et al.  Heterogeneous Coupled Evolution of Software Languages , 2008, MoDELS.

[31]  Pedro Rangel Henriques,et al.  Advanced Functional Programming, 6th International School, AFP 2008, Heijen, The Netherlands, May 2008, Revised Lectures , 1999, Advanced Functional Programming.

[32]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[33]  Gregg Rothermel,et al.  A methodology for testing spreadsheets , 2001, TSEM.

[34]  Ivar Jacobson,et al.  Unified Modeling Language , 2020, Definitions.

[35]  Jácome Cunha,et al.  From relational ClassSheets to UML+OCL , 2012, SAC '12.

[36]  Simon L. Peyton Jones,et al.  Scrap Your Boilerplate , 2003, APLAS.

[37]  Martin Erwig,et al.  UCheck: A spreadsheet type checker for end users , 2007, J. Vis. Lang. Comput..

[38]  Franz Wotawa,et al.  Avoiding, finding and fixing spreadsheet errors - A survey of automated approaches for spreadsheet QA , 2014, J. Syst. Softw..

[39]  Gregg Rothermel,et al.  An empirical evaluation of a testing and debugging methodology for Excel , 2006, ISESE '06.

[40]  Scott D. Fleming,et al.  The patchworks code editor: toward faster navigation with less code arranging and fewer navigation mistakes , 2014, CHI.

[41]  Raymond R. Panko,et al.  Sarbanes-Oxley: What About all the Spreadsheets? , 2008, ArXiv.

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

[43]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[44]  Jácome Cunha,et al.  Type-Safe Evolution of Spreadsheets , 2011, FASE.

[45]  Gregg Rothermel,et al.  Automated test case generation for spreadsheets , 2002, ICSE '02.

[46]  Joost Visser,et al.  Strongly Typed Rewriting For Coupled Software Transformation , 2007, Electron. Notes Theor. Comput. Sci..

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

[48]  Mark Rouncefield,et al.  The State of Practice in Model-Driven Engineering , 2014, IEEE Software.

[49]  Martin Erwig,et al.  AutoTest: A Tool for Automatic Test Case Generation in Spreadsheets , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).

[50]  Bruno C. d. S. Oliveira,et al.  "Scrap Your Boilerplate" Reloaded , 2006, FLOPS.

[51]  Raymond R. Panko,et al.  Spreadsheet Errors: What We Know. What We Think We Can Do , 2008, ArXiv.

[52]  José Nuno Oliveira,et al.  A reification calculus for model-oriented software specification , 1990, Formal Aspects of Computing.

[53]  Simon Peyton Jones,et al.  Wobbly types: type inference for generalised algebraic data types∗ , 2004 .

[54]  Bonnie A. Nardi,et al.  A Small Matter of Programming: Perspectives on End User Computing , 1993 .

[55]  Jácome Cunha,et al.  An Empirical Study on End-users Productivity Using Model-based Spreadsheets , 2011, ArXiv.

[56]  Ralf Lämmel,et al.  Typed Combinators for Generic Traversal , 2002, PADL.

[57]  Joost Visser,et al.  Constraint-aware Schema Transformation , 2012, Electron. Notes Theor. Comput. Sci..

[58]  Atipol Asavametha Detecting bad smells in spreadsheets , 2012 .

[59]  Martin Erwig,et al.  GoalDebug: A Spreadsheet Debugger for End Users , 2007, 29th International Conference on Software Engineering (ICSE'07).

[60]  Martin Erwig,et al.  Gencel: a program generator for correct spreadsheets , 2006, J. Funct. Program..

[61]  Willem-Paul de Roever,et al.  Data Refinement by Willem-Paul de Roever , 1998 .

[62]  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).

[63]  T. Cook,et al.  Quasi-experimentation: Design & analysis issues for field settings , 1979 .

[64]  R Core Team,et al.  R: A language and environment for statistical computing. , 2014 .

[65]  Rui Abreu,et al.  Debugging Spreadsheets: A CSP-based Approach , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering Workshops.

[66]  Joost Visser,et al.  Transformation of structure-shy programs: applied to XPath queries and strategic functions , 2007, PEPM '07.

[67]  Frank Weil,et al.  Model-Driven engineering in a large industrial context — motorola case study , 2005, MoDELS'05.