  Spreadsheet users are often unaware of the risks imposed by poorly designed
spreadsheets. One way to assess spreadsheet quality is to detect smells which
attempt to identify parts of spreadsheets that are hard to comprehend or
maintain and which are more likely to be the root source of bugs.
Unfortunately, current spreadsheet smell detection techniques suffer from a
number of drawbacks that lead to incorrect or redundant smell reports. For
example, the same quality issue is often reported for every copy of a cell,
which may overwhelm users. To deal with these issues, we propose to refine
spreadsheet smells by exploiting inferred structural information for smell
detection. We therefore first provide a detailed description of our static
analysis approach to infer clusters and blocks of related cells. We then
elaborate on how to improve existing smells by providing three example
refinements of existing smells that incorporate information about cell groups
and computation blocks. Furthermore, we propose three novel smell detection
techniques that make use of the inferred spreadsheet structures. Empirical
evaluation of the proposed techniques suggests that the refinements
successfully reduce the number of incorrectly and redundantly reported smells,
and novel deficits are revealed by the newly introduced smells.
