Graduation date: 2007
Spreadsheets are among the most widely used end-user programming systems. Unfortunately, there is a high incidence of errors in end-user spreadsheets, and some of
these errors have high impact. In this dissertation, we describe techniques we have
developed to help end users develop safer spreadsheets. As part of our research, we
have examined typical software development activities like programming, testing, and
debugging from an end-user software engineering perspective, and developed
approaches to support them better. To achieve this goal, we have drawn extensively
from research in the areas of software engineering and programming languages to
develop techniques for the following.
1. Prevention of reference, range, and type errors by generating spreadsheets from
user-defined templates.
2. Detection of unit errors by carrying out automatic consistency checking of
spreadsheet formulas using labels within spreadsheets.
3. Detection of faults within spreadsheets by helping end users test better using
constraint-based automatic test-case generation.
4. Correction of identified faults within spreadsheet formulas using a spreadsheet
debugger that exploits the user’s expectations about the output of their
spreadsheets.