Abstract:
explains how the tool works, and reports on some preliminary experience applying it to the code of a large realtime system. A maintainer can benefit in several ways from our tool. By running the tool after having made a change, he can correlate the tool's summary against his intent; discrepancies between the two are likely to indicate flaws. This might reduce the incidence of "fix on fix", when a modification's sole purpose is to fix a bug introduced in an earlier modification. A summary of the effects of a change is most important later, however, when the modified code is being modified again. Heavily modified code is far harder to understand than fresh code, often because maintainers fail adequately to document the effects of their changes. Our tool can relieve this burden substantially; it can provide the structure of the documentation for a change (which a maintainer might subsequently embellish).
Citations
| 672 | The program dependence graph and its use in optimization – Ferrante, Ottenstein, et al. - 1987 |
| 81 | Incremental program testing using program dependency graphs – Bates, Horiwitz - 1993 |
| 80 | Automated Assistance for Program Restructuring – Griswold - 1993 |
| 45 | The C++ information abstractor – Grass, Chen - 1990 |
| 38 | Using semantic differencing to reduce the cost of regression testing – Binkley - 1992 |
| 21 | SeeSoft: A Tool for Visualizing Line-Oriented Software Statistics – Eick, Steffen, et al. - 1992 |
| 12 | Chopping: A generalization of slicing – Jackson, Rollins - 1994 |
| 9 | Aspect: A formal specification language for detecting bugs – Jackson - 1992 |
| 8 | Abstract Analysis with Aspect – Jackson - 1993 |
| 2 | Cdiff: A Syntax Directed Diff for C++ Programs – Grass - 1992 |
| 1 | Phil Pfeiffer and Thomas Reps, "Dependency Analysis for Pointer Variables – Horwitz - 1989 |

