Integration with the Eclipse editor as a debug plug-in
carries significant schedule risk, and some functionality
An Eclipse debug plug-in would depend on the
org.eclipse.debug.* packages, rather than Sun's JDI
interface. Since the Eclipse packages appear to be
wrappers around JDI, there may be unexposed functionality
that the System requires.
Additionally, while the JDI interface is well documented
and relatively stable, the Eclipse debug interface is
under active development and is probably less stable.
The System could be implemented as a "view" plug-in with
no interaction with the Eclipse debug functionality,
relying instead directly on the JDI. This would mean
reduced Eclipse integration.
The process of tracing the execution, either with
real-time visualization or writing to the file system,
may cause such burden as to make the Target Program
unusable, especially if it has a user-interface
May make the System unusable with some Target Programs.
The System has control over the events it
chooses to listen to at any time, so we may be able to
modulate the impact based on System settings. As with
all optimization tasks, this will be postponed until the
means of tracing the application is better understood.
"Premature optimization is the root of all evil." --
The sheer amount of information generated by tracing a
running application may make the System unusable, or
require too much file system space.
Some Target Programs may be only watched in real-time,
because the resulting trace logs would be too cumbersome.
The format for storing the information must be designed
with several criteria in mind, including ease of
development. There is the possiblity of using common
command-line compression tools such as bzip or compress to
compress the resulting files. The Java libraries may
offer sufficient tools to ameliorate the risk.
The layout of displayed Software Entities within the
three-space is a complex task. There are several
competing constraints, such as sufficient distance to
allow visual distinction or minimizing the distance of
connecting edges. The algorithm for layout may also need
to change with user preferences or task.
An inappropriate layout algorithm may produce an illegible
display, rendering the System unusable.
Research is required to find available algorithms, or
toolkits to reduce the complexity of the task.
The utility of the System to the end user will depend on
a successful, intutive display of information relevent to
the debugging of concurrency issues. Although several
possible displays are being considered, the exact form of
this display has yet to be determined.
Reduction of the utility of the System to the Users.
Ultimately, failure of the Vision.
Review previous visualization projects and available
literature to better understand what types of
visualization tools are found to be most useful to
Review previous work on multi-threaded debugging tools.