Skip to content

Commit bcf8c1f

Browse files
committed
Full page for project proposal. Sketch of abstract, intro, and design principles.
1 parent 7dc949c commit bcf8c1f

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

progNav Paper/progNav Paper.tex

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,23 +82,31 @@ \subsection{Powerful Program Analysis}
8282
Simple textual analysis may lead to inaccurate results, especially when programs include inheritance and duplicate variable names.
8383

8484
\subsection{Low Barriers to Invocation}
85-
85+
Barriers to invocation may inhibit adoption.
86+
As developers may wish to navigate multiple program paths concurrently, repetitively invoking the tool may be cumbersome, especially if barriers are high.
8687

8788
\subsection{Full Program Navigation}
88-
Something that says the same tool allows users to analyze data flow \textit{across} methods upstream and downstream.
89+
Developers are not only interested in traversing programs' call graph, but also how data flows through the call graph.
90+
To do so, developers must inspect the relationship between methods as well as the methods themselves.
91+
Often the methods of interest span across multiple source files.
92+
Furthermore, program navigation tools should support this traversal both upstream and downstream.
93+
That is, tools should highlight variable assignments and also subsequent variable uses.
8994

90-
\subsection{Enables Systematic and Complete Evaluation}
95+
\subsection{Enables Systematic Evaluation}
96+
Program navigation tools should help developers keep track of where they have been and where they are going. Especially while attempting to resolve complex defects, developers may want to thoroughly explore all program paths. Their navigation tools should help them keep track of their progress.
9197

9298
\subsection{In Situ Results}
93-
99+
Switching between views in the IDE can cause disorientation [Cite]. As developers navigate through code, navigation tools should present their results in that context.
100+
When navigation tools present results outside the code, developers are burdened with the cognitive load of translating those results back to the code.
94101

95102
\section{Related Work}
96103
Summary of related work, including a table evaluating existing tools on various design principles.
97104
Spoiler alert, none of the tools satisfy all of the principles.
98105

99106

100107
\section{[Name of Tool]}
101-
We implemented our tool as a plugin to the Eclipse IDE [cite]. We chose Eclipse because of its popularity and extensibility. Eclipse is one of the most widely used open source IDEs for Java development and it provides many extension points for plugins.
108+
We implemented our tool as a plugin to the Eclipse IDE [cite]. We chose Eclipse because of its popularity and extensibility.
109+
Eclipse is one of the most widely used open source IDEs for Java development and it provides many extension points for plugins.
102110

103111
\section{Preliminary Evaluation}
104112
We plan to perform a preliminary evaluation of our tool with approximately five to ten developers.

0 commit comments

Comments
 (0)