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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Erwig, M.: Software Engineering for Spreadsheets. IEEE Software 29(5) (2009)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (August1999)
Hermans, F., Dig, D.: Bumblebee: A transformation environment for spreadsheet formulas. Tech. rep. (2013), http://dx.doi.org/10.6084/m9.figshare.813347
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)
Hermans, F., Pinzger, M., Deursen, A.: Detecting and refactoring code smells in spreadsheet formulas. Empirical Software Engineering, 1–27 (2014)
McCabe, T.J.: A complexity measure. IEEE Trans. Software Eng. 2(4) (1976)
Mitchell, N., Runciman, C.: Uniform boilerplate and list processing. In: ACM SIGPLAN Workshop on Haskell Workshop, Haskell 2007, pp. 49–60. ACM (2007)
Nardi, B.A.: A Small Matter of Programming: Perspectives on End User Computing, 1st edn. MIT Press, Cambridge (1993)
Panko, R.: Facing the problem of spreadsheet errors. Decision Line 37(5) (2006)
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)
Pereira, R.: Querying for Model-Driven Spreadsheets. Master’s thesis, University of Minho (2013)
Peyton Jones, S.: Haskell 98: Language and libraries. Journal of Functional Programming 13(1), 1–255 (2003)
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)
Rajalingham, K., Chadwick, D.R., Knight, B.: Classification of spreadsheet errors. In: Proceedings of the 2001 European Spreadsheet Risks Interest Group (EuSpRIG), Amsterdam (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)