Spreadsheet bibliography

Title Explaining spreadsheets with spreadsheets
Authors Jacome Cunha, Mihai Dan, Martin Erwig, Danila Fedorin, & Alex Grejuc
Year 2018
Type Proceedings
Publication 17th International Conference on Generative Programming (GPCE): Concepts & Experiences
Series November, pages 161-167

Based on the concept of explanation sheets, we present an approach to make spreadsheets easier to understand and thus easier to use and maintain.

We identify the notion of explanation soundness and show that explanation sheets which conform to simple rules of formula coverage provide sound explanations. We also present a practical evaluation of explanation sheets based on samples drawn from widely used spreadsheet corpora and based on a small user study.

In addition to supporting spreadsheet understanding and maintenance, our work on explanation sheets has also uncovered several general principles of explanation languages that can help guide the design of explanations for other programming and domain-specific languages.

Full version Available
Example explanation sheet
Example explanation sheet

Applying label abstraction to the example payroll spreadsheet results in the spreadsheet shown in the figure.

Label abstraction increases readability by giving context to computation, especially as formula complexity increases.

We have identified a number of general principles that we believe should guide the development of explanations:

  • Structure Preservation. An explanation language should retain key subject language structures.
  • Abstraction. An explanation language should aim at high-level descriptions that abstract from details of the subject language.
  • Partiality. An explanation language should support partial explanations.
  • Compositionality. An explanation language should support constructing bigger explanations from smaller ones.