Model-Based Programming Environments for Spreadsheets

  • Jácome Cunha
  • João Saraiva
  • Joost Visser
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7554)


Although spreadsheets can be seen as a flexible programming environment, 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.


Relational Database Functional Dependency Edit Assistance Visual Language Preliminary Experimental Result 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Saraiva, J.: Design, Implementation and Animation of Spreadsheets in the Lrc System. In: Erwig, M. (ed.) Int. Workshop on Foundations of Spreadsheet. ENTCS (2004)Google Scholar
  2. 2.
    Kuiper, M., Saraiva, J.: Lrc - A Generator for Incremental Language-Oriented Tools. In: Koskimies, K. (ed.) CC 1998. LNCS, vol. 1383, pp. 298–301. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  3. 3.
    Reps, T., Teitelbaum, T.: The synthesizer generator. SIGSOFT Softw. Eng. Notes 9(3), 42–48 (1984)CrossRefGoogle Scholar
  4. 4.
    van den Brand, M., Klint, P., Olivier, P.: Compilation and Memory Management for ASF+SDF. In: Jähnichen, S. (ed.) CC 1999. LNCS, vol. 1575, pp. 198–215. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  5. 5.
    Saraiva, J., Swierstra, S.D.: Generating Spreadsheet-Like Tools from Strong Attribute Grammars. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 307–323. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Holzner, S.: Eclipse. O’Reilly (May 2004)Google Scholar
  7. 7.
    Scaffidi, C., Shaw, M., Myers, B.: Estimating the numbers of end users and end user programmers. In: VLHCC 2005: Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing, pp. 207–214 (2005)Google Scholar
  8. 8.
    Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13(6), 377–387 (1970)zbMATHCrossRefGoogle Scholar
  9. 9.
    Fisher II, M., Rothermel, G.: The EUSES Spreadsheet Corpus: A shared resource for supporting experimentation with spreadsheet dependability mechanisms. In: Proceedings of the 1st Workshop on End-User Software Engineering, pp. 47–51 (2005)Google Scholar
  10. 10.
    Connolly, T., Begg, C.: Database Systems, A Practical Approach to Design, Implementation, and Management, 3rd edn. Addison-Wesley (2002)Google Scholar
  11. 11.
    Ullman, J.D., Widom, J.: A First Course in Database Systems. Prentice Hall (1997)Google Scholar
  12. 12.
    Date, C.J.: An Introduction to Database Systems. Addison-Wesley (1995)Google Scholar
  13. 13.
    Beeri, C., Fagin, R., Howard, J.: A complete axiomatization for functional and multivalued dependencies in database relations. In: Proc. of the ACM SIGMOD Int. Conf. on Management of Data, pp. 47–61 (1977)Google Scholar
  14. 14.
    Cunha, J., Saraiva, J., Visser, J.: From spreadsheets to relational databases and back. In: PEPM 2009: Proc. of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, pp. 179–188. ACM (2009)Google Scholar
  15. 15.
    Maier, D.: The Theory of Relational Databases. Computer Science Press (1983)Google Scholar
  16. 16.
    Peyton Jones, S.: Haskell 98: Language and libraries. J. Funct. Program. 13(1), 1–255 (2003)Google Scholar
  17. 17.
    Abraham, R., Erwig, M.: UCheck: A spreadsheet type checker for end users. J. Vis. Lang. Comput. 18(1), 71–95 (2007)CrossRefGoogle Scholar
  18. 18.
    Erwig, M., Burnett, M.: Adding Apples and Oranges. In: Adsul, B., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 173–191. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  19. 19.
    Abraham, R., Erwig, M.: Header and unit inference for spreadsheets through spatial analyses. In: 2004 IEEE Symposium on Visual Languages and Human Centric Computing, pp. 165–172 (September 2004)Google Scholar
  20. 20.
    Abraham, R., Erwig, M.: Type inference for spreadsheets. In: Bossi, A., Maher, M.J. (eds.) Proceedings of the 8th Int. ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, Venice, Italy, July 10-12, pp. 73–84. ACM (2006)Google Scholar
  21. 21.
    Engels, G., Erwig, M.: ClassSheets: automatic generation of spreadsheet applications from object-oriented specifications. In: ASE 2005: Proc. of the 20th IEEE/ACM International Conference on Automated Software Engineering, pp. 124–133. ACM (2005)Google Scholar
  22. 22.
    Cunha, J., Erwig, M., Saraiva, J.: Automatically inferring classsheet models from spreadsheets. In: VL/HCC 2010: IEEE Symp. on Visual Languages and Human-Centric Computing, pp. 93–100. IEEE Computer Society (2010)Google Scholar
  23. 23.
    Beckwith, L., Cunha, J., Paulo Fernandes, J., Saraiva, J.: End-users productivity in model-based spreadsheets: An empirical study. In: Proceedings of the Third International Symposium on End-User Development, IS-EUD 2011, pp. 282–288 (2011)Google Scholar
  24. 24.
    Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Towards an Evaluation of Bidirectional Model-driven Spreadsheets. In: USER 2012: User evaluation for Software Engineering Researchers (to appear, 2012)Google Scholar
  25. 25.
    Cunha, J., Fernandes, J.P., Mendes, J., Pacheco, H., Saraiva, J.: Bidirectional Transformation of Model-Driven Spreadsheets. In: Hu, Z., de Lara, J. (eds.) ICMT 2012. LNCS, vol. 7307, pp. 105–120. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  26. 26.
    Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: MDSheet: A framework for model-driven spreadsheet engineering. In: ICSE 2012: Proc. of the 34th International Conference on Software Engineering, pp. 1412–1415. ACM (2012)Google Scholar
  27. 27.
    Cunha, J., Visser, J., Alves, T., Saraiva, J.: Type-Safe Evolution of Spreadsheets. In: Giannakopoulou, D., Orejas, F. (eds.) FASE 2011. LNCS, vol. 6603, pp. 186–201. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  28. 28.
    Cunha, J., Mendes, J., Fernandes, J.P., Saraiva, J.: Extension and implementation of classsheet models. In: VL/HCC 2012: IEEE Symposium on Visual Languages and Human-Centric Computing. IEEE Computer Society (2011) (to appear)Google Scholar
  29. 29.
    Cunha, J., Saraiva, J., Visser, J.: Discovery-based edit assistance for spreadsheets. In: Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), VLHCC 2009, pp. 233–237. IEEE Computer Society, Washington, DC (2009)CrossRefGoogle Scholar
  30. 30.
    Abraham, R., Erwig, M.: Inferring templates from spreadsheets. In: Proc. of the 28th Int. Conf. on Software Engineering, pp. 182–191. ACM, New York (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jácome Cunha
    • 1
    • 3
  • João Saraiva
    • 1
  • Joost Visser
    • 2
  1. 1.HASLab / INESC TECUniversidade do MinhoPortugal
  2. 2.Software Improvement GroupRadboud UniversityNijmegenThe Netherlands
  3. 3.IPPEscola Superior de Tecnologia e Gestão de FelgueirasPortugal

Personalised recommendations