Detecting and Visualizing Inter-worksheet Smells in Spreadsheets

Post on 09-May-2015

894 views 0 download

description

The slides for our ICSE 2012 paper on "Detecting and Visualizing Inter-worksheet Smells in Spreadsheets"

Transcript of Detecting and Visualizing Inter-worksheet Smells in Spreadsheets

Detecting and Visualizing Inter-worksheet Smells in Spreadsheets Felienne Hermans (@felienne)

Code smells

How did we get this idea?

By studying what business does in practice

Excel is running companies!

50% of spreadsheets form the basis for decisions

Spreadsheet users lack great tool support

We did not start coding!

We performed 27 interviews

We asked them: What annoys you?

And what makes you happy?

We found that especially support for understanding spreadsheets was missing

Then we started coding

Published at ICSE 2011

Users started diagnosing with the dfd’s

This led us to the idea of smells

We took Fowler’s smells and adapted them to be applicable on spreadsheets

Inappropriate Intimacy

Inappropriate Intimacy

Inappropriate Intimacy = number of couples between A and B

Feature Envy

Feature Envy

Feature Envy (calculated on a cell) =number of external connections

Middle man

Middle man

Middle man

Middle man = number of MMFs on a worksheet

Shotgun surgery

Shotgun surgery

Shotgun surgery =number of changing sheets and formulas

Then we set thresholds for the metrics Using the EUSES corpus as a bench mark

And implemented it into our visualization toolkit Breviz

We validated our implementation with a case study

“Are those worksheets really that connected?”

“Are you sure that arrow is correct?”

“this formula annoys me, I have to go back to the other sheet so many times to look up the references, it makes me dizzy”

Interesting fact about Middle Man: Our definition was ‘wrong’

We had not anticipated Middle Men within worksheets

The most extreme case was a worksheet on which 220 formulas depended, spread over 10 worksheets

The owner immediately recognized the risk

Conclusion: principles from software engineering transfer well to spreadsheets

Detecting and Visualizing Inter-worksheet Smells in Spreadsheets Felienne Hermans (@felienne)