Skip to content

Commit 29f1137

Browse files
committed
More details on Flower's implementation. Stating upfront (before example) what changes in the interface, and also two sentences about implementation specifics. Toward #110, #118, and #119.
1 parent fa399c9 commit 29f1137

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

progNav Paper/progNav Paper.tex

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,14 @@ \section{Flower}
232232
Flower was designed to realize all of the principles described in Section \ref{DesignPrinciples}.
233233
We implemented Flower as a plugin to the Eclipse IDE~\cite{Eclipse}.
234234
We chose Eclipse because it is one of the most widely used open source IDEs for Java development and it provides many extension points for plugins.
235+
Flower extends \emph{Call Hierarchy}, which allows it to reason about variables that are passed between methods.
236+
Leveraging Eclipse's incremental compiler and JDT core, Flower also implements several AST visitors to detect proper and up-to-date variable references.
235237

238+
When active, Flower makes two modifications to Eclipse's user interface.
239+
First, it highlights on-screen references to selected variables.
240+
Secondly, when references to the selected variable appear off-screen -- either elsewhere in the current method or in other methods -- Flower adds links to those locations to the code view.
236241
Figure \ref{fig:tool} depicts Flower invoked on a variable participants were asked to inspect as part of our evaluation. To visualize how a programmer would interact with Flower, consider the following scenario:
237242

238-
239243
Suppose you are a programmer and you notice that by tampering with the value of the \texttt{fileName} variable, malicious users could gain access to sensitive information in the database.
240244
You want to determine whether users can modify \texttt{fileName} before it gets passed into \texttt{parseAndCache}.
241245
First, you click on \texttt{fileName} (A).

0 commit comments

Comments
 (0)