Refactoring is an important part of building and
maintaining software. Refactoring tools guarantee semantics preserving
program transformations, but the user interface to refactoring tools is lacking.
Specifically, we have found that when a refactoring cannot be applied (that is,
when a precondition is violated), refactoring tools to a poor job of
communicating the problem. Refactoring Annotations seek to communicate the
consequences of a refactoring to a programmer.
Refactoring Annotations are implemented as a plugin for Eclipse.
When you select a piece of code to be extracted, and then press Alt+Shift+N, Refactoring Annotations display information about a specific refactoring. Each variable is assigned a distinct color, and each occurrence is highlighted. Across the top of the selection, an arrow points to the first use of a variable that will have to be passed as a parameter into the extracted method. Across the bottom, an arrow points from the last assignment of a variable that will have to be returned. L-values have black boxes around them, while r-values do not. An arrow to the left of the selection simply indicates that control flows from beginning to end.
Click on this link to get more detail: http://multiview.cs.pdx.edu/refactoring/refactoring_annotations
Recommend the tutorial