Detecting and visualizing inter-worksheet smells in spreadsheets

Spreadsheets are often used in business, for simple tasks, as well as for mission critical tasks such as finance or forecasting. Similar to software, some spreadsheets are of better quality than others, for instance with respect to usability, maintainability or reliability. In contrast with software however, spreadsheets are rarely checked, tested or certified. In this paper, we aim at developing an approach for detecting smells that indicate weak points in a spreadsheet's design. To that end we first study code smells and transform these code smells to their spreadsheet counterparts. We then present an approach to detect the smells, and to communicate located smells to spreadsheet users with data flow diagrams. To evaluate our apporach, we analyzed occurrences of these smells in the Euses corpus. Furthermore we conducted ten case studies in an industrial setting. The results of the evaluation indicate that smells can indeed reveal weaknesses in a spreadsheet's design, and that data flow diagrams are an appropriate way to show those weaknesses.

[1]  Tiago L. Alves,et al.  Deriving metric thresholds from benchmark data , 2010, 2010 IEEE International Conference on Software Maintenance.

[2]  Joline Morrison,et al.  Using a structured design approach to reduce risks in end user spreadsheet development , 2000, Inf. Manag..

[3]  Roland Mittermeir,et al.  Metrics-Based Spreadsheet Visualization: Support for Focused Maintenance , 2008, ArXiv.

[4]  Raymond R. Panko,et al.  What we know about spreadsheet errors , 1998 .

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

[6]  Daniela Cruzes,et al.  The evolution and impact of code smells: A case study of two open source systems , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[7]  Cliff T. Ragsdale,et al.  Modeling Optimization Problems in the Unstructured World of Spreadsheets , 1997 .

[8]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

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

[10]  Duncan McPhee,et al.  Mining Spreadsheet Complexity Data to Classify End User Developers , 2009, DMIN.

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

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

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

[14]  Roland Mittermeir,et al.  Detecting Errors in Spreadsheets , 2008, ArXiv.

[15]  Stephen G. Powell,et al.  Errors in Operational Spreadsheets: A Review of the State of the Art , 2009 .

[16]  Radu Marinescu,et al.  Detecting design flaws via metrics in object-oriented systems , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[17]  Paul H. Cheney,et al.  Organizational Factors Affecting the Success of End-User Computing , 1986, J. Manag. Inf. Syst..

[18]  David G. Hendry,et al.  Creating, comprehending and explaining spreadsheets: a cognitive interpretation of what discretionary users think of the spreadsheet model , 1994, Int. J. Hum. Comput. Stud..

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

[20]  Andrej Bregar Complexity Metrics for Spreadsheet Models , 2008, ArXiv.

[21]  M. Lynne Markus,et al.  If we build it, they will come: Designing information systems that people want to use , 1994 .

[22]  Bonnie A. Nardi,et al.  The spreadsheet interface: A basis for end user programming , 1990, IFIP TC13 International Conference on Human-Computer Interaction.