Model-based programming environments for spreadsheets

Spreadsheets can be seen as a flexible programming environment. However, they lack some of the concepts of regular programming languages, such as structured data types. This can lead the user to edit the spreadsheet in a wrong way and perhaps cause corrupt or redundant data.We devised a method for extraction of a relational model from a spreadsheet and the subsequent embedding of the model back into the spreadsheet to create a model-based spreadsheet programming environment. The extraction algorithm is specific for spreadsheets since it considers particularities such as layout and column arrangement. The extracted model is used to generate formulas and visual elements that are then embedded in the spreadsheet helping the user to edit data in a correct way.We present preliminary experimental results from applying our approach to a sample of spreadsheets from the EUSES Spreadsheet Corpus.Finally, we conduct the first systematic empirical study to assess the effectiveness and efficiency of this approach. A set of spreadsheet end users worked with two different model-based spreadsheets, and we present and analyze here the results achieved. We infer a relational model from spreadsheet data.The extracted model is embedded into the spreadsheet.We develop a model-based spreadsheet programming environment.The environment provides advanced editing assistance.We validate our techniques via an empirical study.

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

[2]  Martin Erwig,et al.  Reasoning about spreadsheets with labels and dimensions , 2010, J. Vis. Lang. Comput..

[3]  Stéphane Bressan,et al.  Introduction to Database Systems , 2005 .

[4]  João Saraiva,et al.  Lrc - A Generator for Incremental Language-Oriented Tools , 1998, International Conference on Compiler Construction.

[5]  Martin Erwig,et al.  Header and Unit Inference for Spreadsheets Through Spatial Analyses , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[6]  Jácome Cunha,et al.  Discovery-based edit assistance for spreadsheets , 2009, 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

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

[8]  Margaret M. Burnett,et al.  Adding Apples and Oranges , 2002, PADL.

[9]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

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

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

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

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

[14]  Martin Erwig,et al.  Inferring templates from spreadsheets , 2006, ICSE '06.

[15]  E. F. CODD,et al.  A relational model of data for large shared data banks , 1970, CACM.

[16]  Paul Klint,et al.  Compilation and Memory Management for ASF+SDF , 1999, CC.

[17]  Stephen G. Powell,et al.  The Art of Modeling with Spreadsheets , 2003 .

[18]  Adam A. Porter,et al.  Empirical studies of software engineering: a roadmap , 2000, ICSE '00.

[19]  Jácome Cunha,et al.  Towards an evaluation of bidirectional model-driven spreadsheets , 2012, 2012 First International Workshop on User Evaluation for Software Engineering Researchers (USER).

[20]  Catriel Beeri,et al.  A complete axiomatization for functional and multivalued dependencies in database relations , 1977, SIGMOD '77.

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

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

[23]  Jennifer Widom,et al.  A First Course in Database Systems , 1997 .

[24]  João Saraiva,et al.  Generating Spreadsheet-Like Tools from Strong Attribute Grammars , 2003, GPCE.

[25]  Jácome Cunha,et al.  Model-based spreadsheet engineering , 2011 .

[26]  M. Fisher,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, WEUSE@ICSE.

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

[28]  Laura Schweitzer,et al.  Database Systems A Practical Approach To Design Implementation And Management , 2016 .

[29]  Martin Erwig,et al.  Type inference for spreadsheets , 2006, PPDP '06.

[30]  Reda Alhajj Extracting the extended entity-relationship model from a legacy relational database , 2003, Inf. Syst..

[31]  Gregg Rothermel,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, ACM SIGSOFT Softw. Eng. Notes.

[32]  Jácome Cunha,et al.  Model-Based Programming Environments for Spreadsheets , 2012, SBLP.

[33]  Simon L. Peyton Jones Haskell 98 Libraries: Bibliography , 2003, J. Funct. Program..

[34]  Jácome Cunha,et al.  Automatically Inferring ClassSheet Models from Spreadsheets , 2010, 2010 IEEE Symposium on Visual Languages and Human-Centric Computing.

[35]  Mary Shaw,et al.  Estimating the numbers of end users and end user programmers , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

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

[37]  Xavier Rival,et al.  An Abstract Domain to Infer Types over Zones in Spreadsheets , 2012, SAS.

[38]  Rui Abreu,et al.  On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets , 2013, FASE.

[39]  K. Barraclough Eclipse , 2006, BMJ : British Medical Journal.