|
33 | 33 | % As a general rule, do not put math, special symbols or citations |
34 | 34 | % in the abstract |
35 | 35 | \begin{abstract} |
36 | | -The abstract goes here. |
| 36 | +Program navigation is a critical task for software developers. |
| 37 | +Unfortunately, the current state-of-the-art tools do not adequately support developers in simultaneously navigating both control flow and data flow (i.e. program flow). |
| 38 | +To assist developers in effectively navigating program flow we designed and implemented a tool that leverages powerful program analysis techniques while maintaining low barriers to invocation. |
| 39 | +Our tool enables developers to systematically navigate program flow upstream and downstream within the Eclipse IDE. |
| 40 | +Based on a preliminary evaluation, our tool is awesome! |
37 | 41 | \end{abstract} |
38 | 42 |
|
39 | 43 | % no keywords |
|
54 | 58 |
|
55 | 59 |
|
56 | 60 | \section{Introduction} |
57 | | -Modern software systems contain millions of lines of source code. Need tools to navigate |
| 61 | +Modern software systems contain millions of lines of source code. |
| 62 | +As software grows in size and complexity, developers increasingly rely on tools to help them navigate the programs they create. |
| 63 | +Program navigation is a central task tied to many critical activities, including exploring new code bases, debugging, and assessing security vulnerabilities. |
58 | 64 |
|
59 | | -Code nav is a central task tied to most critical activites |
60 | | - - Explore new code bases |
61 | | - - Debugging (whyline) |
62 | | - - Security vulnerabilities (mine) |
63 | 65 |
|
64 | 66 | Code navigation is a critical task for software developers. |
65 | 67 |
|
66 | | -Successful developers do not investigate source code line by line starting at the top of the file. Instead, they navigate the code's hierarchical semantic structures ~\cite{robillard2004investigate}. |
| 68 | +Successful developers do not investigate source code line by line starting at the top of the file. Instead, they navigate the code's hierarchical semantic structures ~\cite{robillard2004investigate}. Methodical and structured |
67 | 69 | Developers ask questions about control flow and data flow~\cite{latoza2010hard, Smith2015}. |
68 | | -\subsection{Subsection Heading Here} |
69 | | -Subsection text here. |
70 | 70 |
|
71 | | - |
72 | | -\subsubsection{Subsubsection Heading Here} |
73 | | -Subsubsection text here. |
74 | | - |
75 | | - |
76 | | -% An example of a floating figure using the graphicx package. |
77 | | -% Note that \label must occur AFTER (or within) \caption. |
78 | | -% For figures, \caption should occur after the \includegraphics. |
79 | | -% Note that IEEEtran v1.7 and later has special internal code that |
80 | | -% is designed to preserve the operation of \label within \caption |
81 | | -% even when the captionsoff option is in effect. However, because |
82 | | -% of issues like this, it may be the safest practice to put all your |
83 | | -% \label just after \caption rather than within \caption{}. |
84 | | -% |
85 | | -% Reminder: the "draftcls" or "draftclsnofoot", not "draft", class |
86 | | -% option should be used if it is desired that the figures are to be |
87 | | -% displayed while in draft mode. |
88 | | -% |
89 | | -%\begin{figure}[!t] |
90 | | -%\centering |
91 | | -%\includegraphics[width=2.5in]{myfigure} |
92 | | -% where an .eps filename suffix will be assumed under latex, |
93 | | -% and a .pdf suffix will be assumed for pdflatex; or what has been declared |
94 | | -% via \DeclareGraphicsExtensions. |
95 | | -%\caption{Simulation results for the network.} |
96 | | -%\label{fig_sim} |
97 | | -%\end{figure} |
98 | | - |
99 | | -% Note that the IEEE typically puts floats only at the top, even when this |
100 | | -% results in a large percentage of a column being occupied by floats. |
101 | | - |
102 | | - |
103 | | -% An example of a double column floating figure using two subfigures. |
104 | | -% (The subfig.sty package must be loaded for this to work.) |
105 | | -% The subfigure \label commands are set within each subfloat command, |
106 | | -% and the \label for the overall figure must come after \caption. |
107 | | -% \hfil is used as a separator to get equal spacing. |
108 | | -% Watch out that the combined width of all the subfigures on a |
109 | | -% line do not exceed the text width or a line break will occur. |
110 | | -% |
111 | | -%\begin{figure*}[!t] |
112 | | -%\centering |
113 | | -%\subfloat[Case I]{\includegraphics[width=2.5in]{box}% |
114 | | -%\label{fig_first_case}} |
115 | | -%\hfil |
116 | | -%\subfloat[Case II]{\includegraphics[width=2.5in]{box}% |
117 | | -%\label{fig_second_case}} |
118 | | -%\caption{Simulation results for the network.} |
119 | | -%\label{fig_sim} |
120 | | -%\end{figure*} |
121 | | -% |
122 | | -% Note that often IEEE papers with subfigures do not employ subfigure |
123 | | -% captions (using the optional argument to \subfloat[]), but instead will |
124 | | -% reference/describe all of them (a), (b), etc., within the main caption. |
125 | | -% Be aware that for subfig.sty to generate the (a), (b), etc., subfigure |
126 | | -% labels, the optional argument to \subfloat must be present. If a |
127 | | -% subcaption is not desired, just leave its contents blank, |
128 | | -% e.g., \subfloat[]. |
129 | | - |
130 | | - |
131 | | -% An example of a floating table. Note that, for IEEE style tables, the |
132 | | -% \caption command should come BEFORE the table and, given that table |
133 | | -% captions serve much like titles, are usually capitalized except for words |
134 | | -% such as a, an, and, as, at, but, by, for, in, nor, of, on, or, the, to |
135 | | -% and up, which are usually not capitalized unless they are the first or |
136 | | -% last word of the caption. Table text will default to \footnotesize as |
137 | | -% the IEEE normally uses this smaller font for tables. |
138 | | -% The \label must come after \caption as always. |
139 | | -% |
140 | | -%\begin{table}[!t] |
141 | | -%% increase table row spacing, adjust to taste |
142 | | -%\renewcommand{\arraystretch}{1.3} |
143 | | -% if using array.sty, it might be a good idea to tweak the value of |
144 | | -% \extrarowheight as needed to properly center the text within the cells |
145 | | -%\caption{An Example of a Table} |
146 | | -%\label{table_example} |
147 | | -%\centering |
148 | | -%% Some packages, such as MDW tools, offer better commands for making tables |
149 | | -%% than the plain LaTeX2e tabular which is used here. |
150 | | -%\begin{tabular}{|c||c|} |
151 | | -%\hline |
152 | | -%One & Two\\ |
153 | | -%\hline |
154 | | -%Three & Four\\ |
155 | | -%\hline |
156 | | -%\end{tabular} |
157 | | -%\end{table} |
158 | | - |
159 | | - |
160 | | -% Note that the IEEE does not put floats in the very first column |
161 | | -% - or typically anywhere on the first page for that matter. Also, |
162 | | -% in-text middle ("here") positioning is typically not used, but it |
163 | | -% is allowed and encouraged for Computer Society conferences (but |
164 | | -% not Computer Society journals). Most IEEE journals/conferences use |
165 | | -% top floats exclusively. |
166 | | -% Note that, LaTeX2e, unlike IEEE journals/conferences, places |
167 | | -% footnotes above bottom floats. This can be corrected via the |
168 | | -% \fnbelowfloat command of the stfloats package. |
| 71 | +Typically source code is presented to developers linearly. However, effective developers navigate |
169 | 72 |
|
170 | 73 | \section{Design Principles} |
171 | | -Description of the tool. Design principles |
| 74 | +Derived these design principles by evaluating the limitations of existing program navigation tools. |
172 | 75 | \subsection{Powerful Program Analysis} |
| 76 | +Program navigation tools should leverage powerful program analysis techniques. |
173 | 77 |
|
174 | 78 | \subsection{Low Barriers to Invocation} |
175 | 79 |
|
176 | 80 | \subsection{Full Program Navigation} |
177 | | -Something that says the same tool allows users to analyze data flow \textit{across} methods. |
| 81 | +Something that says the same tool allows users to analyze data flow \textit{across} methods upstream and downstream. |
178 | 82 |
|
179 | 83 | \subsection{Enables Systematic and Complete Evaluation} |
180 | 84 |
|
|
0 commit comments