Skip to main content

Refactoring Smelly Spreadsheet Models

  • Conference paper
Computational Science and Its Applications – ICCSA 2014 (ICCSA 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8583))

Included in the following conference series:

Abstract

Identifying bad design patterns in software is a successful and inspiring research trend. While these patterns do not necessarily correspond to software errors, the fact is that they raise potential problematic issues, often referred to as code smells, and that can for example compromise maintainability or evolution.

The identification of code smells in spreadsheets, which can be viewed as software development environments for non-professional programmers, has already been the subject of confluent researches by different groups.

While these research groups have focused on detecting smells on concrete spreadsheets, or spreadsheet instances, in this paper we propose a comprehensive set of smells for abstract representations of spreadsheets, or spreadsheet models. We also propose a set of refactorings suggesting how spreadsheet models can become simpler to understand, manipulate and evolve. Finally we present the integration of both smells and refactorings under the MDSheet framework.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arendt, T., Taentzer, G.: Integration of smells and refactorings within the eclipse modeling framework. In: Proceedings of the Fifth Workshop on Refactoring Tools, WRT 2012, pp. 8–15. ACM, New York (2012)

    Chapter  Google Scholar 

  2. Badame, S., Dig, D.: Refactoring meets spreadsheet formulas. In: Proceedings of the 2012 IEEE International Conference on Software Maintenance, ICSM 2012, pp. 399–409. IEEE Computer Society, Washington, DC (2012)

    Google Scholar 

  3. Beckwith, L., Cunha, J., Fernandes, J.P., Saraiva, J.: End-users productivity in model-based spreadsheets: An empirical study. In: Piccinno, A. (ed.) IS-EUD 2011. LNCS, vol. 6654, pp. 282–288. Springer, Heidelberg (2011)

    Google Scholar 

  4. Belo, O., Cunha, J., Fernandes, J.P., Mendes, J., Pereira, R., Saraiva, J.: Querysheet: A bidirectional query environment for model-driven spreadsheets. In: VL/HCC, pp. 199–200 (2013)

    Google Scholar 

  5. Cunha, J., Erwig, M., Saraiva, J.: Automatically inferring classsheet models from spreadsheets. In: Proceedings of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing, VLHCC 2010. IEEE Computer Society (2010)

    Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. Cunha, J., Fernandes, J.P., Ribeiro, H., Saraiva, J.: Towards a Catalog of Spreadsheet Smells. In: Murgante, B., Gervasi, O., Misra, S., Nedjah, N., Rocha, A.M.A.C., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2012, Part IV. LNCS, vol. 7336, pp. 202–216. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  8. Cunha, J., Fernandes, J.P., Mendes, J., Martins, P., Saraiva, J.: Smellsheet detective: A tool for detecting bad smells in spreadsheets. In: Proceedings of the 2012 IEEE Symposium on Visual Languages and Human-Centric Computing, VLHCC 2012, pp. 243–244. IEEE Computer Society, Washington, DC (2012)

    Chapter  Google Scholar 

  9. Cunha, J., Fernandes, J.P., Mendes, J., Pereira, R., Saraiva, J.: Querying model-driven spreadsheets. In: 2013 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pp. 83–86 (2013)

    Google Scholar 

  10. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Embedding and evolution of spreadsheet models in spreadsheet systems. In: 2011 IEEE Symposium on Visual Languages and Human-Centric Computing, VLHCC 2011, pp. 186–201 (2011)

    Google Scholar 

  11. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: A bidirectional model-driven spreadsheet environment. In: 34rd International Conference on Software Engineering, ICSE 2012, pp. 1443–1444 (June 2012)

    Google Scholar 

  12. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Extension and implementation of classsheet models. In: 2012 IEEE Symposium on Visual Languages and Human-Centric Computing, VLHCC 2012, pp. 19–22 (2012)

    Google Scholar 

  13. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: MDSheet: A Framework for Model-driven Spreadsheet Engineering. In: Proceedings of the 34rd International Conference on Software Engineering, ICSE 2012, pp. 1412–1415. ACM (2012)

    Google Scholar 

  14. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Towards an evaluation of bidirectional model-driven spreadsheets. In: User Evaluation for Software Engineering Researchers, USER 2012, pp. 25–28. ACM Digital Library (2012)

    Google Scholar 

  15. Cunha, J., Fernandes, J.P., Mendes, J., Saraiva, J.: Complexity Metrics for Classsheet Models. In: Murgante, B., Misra, S., Carlini, M., Torre, C.M., Nguyen, H.-Q., Taniar, D., Apduhan, B.O., Gervasi, O. (eds.) ICCSA 2013, Part II. LNCS, vol. 7972, pp. 459–474. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  16. Cunha, J., Fernandes, J.P., Peixoto, C., Saraiva, J.: A quality model for spreadsheets. In: 8th Int. Conf. on the Quality of Information and Communications Technology, Quality in ICT Evolution Track, QUATIC 2012, pp. 231–236 (2012)

    Google Scholar 

  17. Cunha, J., Fernandes, J.P., Pereira, R., Saraiva, J.: Graphical querying of model-driven spreadsheets. In: Yamamoto, S. (ed.) HCI 2014, Part I. LNCS, vol. 8521, pp. 419–430. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  18. Cunha, J., Fernandes, J.P., Saraiva, J.: From Relational ClassSheets to UML+OCL. In: Proceedings of the Software Engineering Track at the 27th Annual ACM Symposium On Applied Computing, SAC 2012, pp. 1151–1158. ACM (2012)

    Google Scholar 

  19. Cunha, J., Saraiva, J., Visser, J.: Discovery-based edit assistance for spreadsheets. In: 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pp. 233–237 (2009)

    Google Scholar 

  20. Cunha, J., Saraiva, J., Visser, J.: From spreadsheets to relational databases and back. In: Proceedings of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2009, pp. 179–188. ACM (2009)

    Google Scholar 

  21. Cunha, J., Saraiva, J., Visser, J.: Model-based programming environments for spreadsheets. In: de Carvalho Junior, F.H., Barbosa, L.S. (eds.) SBLP 2012. LNCS, vol. 7554, pp. 117–133. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. Engels, G., Erwig, M.: ClassSheets: automatic generation of spreadsheet applications from object-oriented specifications. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering. ACM (2005)

    Google Scholar 

  24. Erwig, M.: Software Engineering for Spreadsheets. IEEE Software 29(5) (2009)

    Google Scholar 

  25. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (August1999)

    Google Scholar 

  26. Hermans, F., Dig, D.: Bumblebee: A transformation environment for spreadsheet formulas. Tech. rep. (2013), http://dx.doi.org/10.6084/m9.figshare.813347

  27. Hermans, F., Pinzger, M., van Deursen, A.: Detecting and visualizing inter-worksheet smells in spreadsheets. In: Glinz, M., Murphy, G.C., Pezzè, M. (eds.) ICSE, pp. 441–451. IEEE (2012)

    Google Scholar 

  28. Hermans, F., Pinzger, M., Deursen, A.: Detecting and refactoring code smells in spreadsheet formulas. Empirical Software Engineering, 1–27 (2014)

    Google Scholar 

  29. McCabe, T.J.: A complexity measure. IEEE Trans. Software Eng. 2(4) (1976)

    Google Scholar 

  30. Mitchell, N., Runciman, C.: Uniform boilerplate and list processing. In: ACM SIGPLAN Workshop on Haskell Workshop, Haskell 2007, pp. 49–60. ACM (2007)

    Google Scholar 

  31. Nardi, B.A.: A Small Matter of Programming: Perspectives on End User Computing, 1st edn. MIT Press, Cambridge (1993)

    Google Scholar 

  32. Panko, R.: Facing the problem of spreadsheet errors. Decision Line 37(5) (2006)

    Google Scholar 

  33. Panko, R.: Spreadsheet errors: What we know. what we think we can do. In: Proceedings of the 2000 European Spreadsheet Risks Interest Group, EuSpRIG (2000)

    Google Scholar 

  34. Pereira, R.: Querying for Model-Driven Spreadsheets. Master’s thesis, University of Minho (2013)

    Google Scholar 

  35. Peyton Jones, S.: Haskell 98: Language and libraries. Journal of Functional Programming 13(1), 1–255 (2003)

    Google Scholar 

  36. Powell, S.G., Baker, K.R., Lawson, B.: A critical review of the literature on spreadsheet errors. Decision Support Systems 46(1), 128–138 (2008)

    Article  Google Scholar 

  37. Rajalingham, K., Chadwick, D.R., Knight, B.: Classification of spreadsheet errors. In: Proceedings of the 2001 European Spreadsheet Risks Interest Group (EuSpRIG), Amsterdam (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Martins, P., Pereira, R. (2014). Refactoring Smelly Spreadsheet Models. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2014. ICCSA 2014. Lecture Notes in Computer Science, vol 8583. Springer, Cham. https://doi.org/10.1007/978-3-319-09156-3_39

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-09156-3_39

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-09155-6

  • Online ISBN: 978-3-319-09156-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics