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 book, 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.
These include techniques for (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, and (4)
correction of identified faults within
spreadsheet formulas using a spreadsheet debugger
that exploits the user's expectations about the
output of their spreadsheets.
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 book, 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.
These include techniques for (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, and (4)
correction of identified faults within
spreadsheet formulas using a spreadsheet debugger
that exploits the user's expectations about the
output of their spreadsheets.