ger could probably stay at zero or a string value may
stay null. At this point it is up to the developer to
decide whether this is an unwanted and problematic
behaviour of the application or not. Additionally, a
tooltip is available if the attribute value of the instance
on each JVM is interesting for the user. In figure 4
the tooltip indicates, that the capacity property has in
both instances, in the Shuttle Node and the Shuttle
Management Node, the value 13.
9 CONCLUSIONS
In this paper the Visual Debugger and its usage with
distributed applications is presented. The main pur-
pose of the tool is to give a view on the current state of
an application by showing all relevant objects during
a debugging session. This is achieved with an UML2
object diagram visualizing objects on the Java heap.
Although the Visual Debugger has been proven to
be useful in a successful recent research project, there
are still open areas. During a debugging session a
regularly observed problem is that several changes in
the object diagram happen too fast to follow them.
Therefore an additional replay mode would be help-
ful where all changes in the object diagram during the
last debugging session can be repeated forwards and
backwards. If a debugging session must be repeated
several times to find the source of an unwanted be-
haviour, each restart forces the user to fill the object
diagram again with objects. An automatic restoration
of diagrams when the same debugging scenario is re-
peated would be helpful.
Nevertheless, the Visual Debugger should be seen
as addition to existing debugging tools and not as a
replacement. Thus, a tight integration into the Eclipse
IDE was an important design goal. During debug-
ging sessions which focus on supervising the state of
a specific, but known part of the application the Visual
Debugger delivers the most value.
One important lesson we learned so far is, that the
Visual Debugger has a steep learning curve; indepen-
dent from the experience of the software developer.
Students as well as professional developers (work-
ing in the industry for years) shared similar problems
when they are confronted with an unknown kind of
tool like the Visual Debugger. We currently develop a
tutorial addressing this problem.
REFERENCES
da Silva, G. J., Schnorr, L. M., and de Oliveira Stein, B.
(2003). Jrastro: A trace agent for debugging mul-
tithreaded and distributed java programs. In SBAC-
PAD, pages 46–54. IEEE Computer Society.
Geiger, L. and Z
¨
undorf, A. (2002). Graph Based Debugging
with Fujaba. Barcelona, Spain.
Geiger, L. and Z
¨
undorf, A. (2006). edobs - graphical de-
bugging for eclipse. ECEASST, 1.
Gestwicki, P. and Jayaraman, B. (2005). Methodology and
architecture of jive. In SoftVis ’05: Proceedings of
the 2005 ACM symposium on Software visualization,
pages 95–104, New York, NY, USA. ACM.
Layman, L., Diep, M., Nagappan, M., Singer, J., DeLine,
R., and Venolia, G. (2013). Debugging revisited: To-
ward understanding the debugging needs of contem-
porary software developers. In ESEM, pages 383–392.
IEEE.
Leroux, H., Rquil-Romanczuk, A., and Mingins, C. (2003).
Jacot: a tool to dynamically visualise the execution of
concurrent java programs. In Power, J. F. and Wal-
dron, J., editors, PPPJ, volume 42 of ACM Interna-
tional Conference Proceeding Series, pages 201–206.
ACM.
L
¨
ohr, K.-P. and Vratislavsky, A. (2003). Jan -java anima-
tion for program understanding. In HCC, pages 67–
75. IEEE Computer Society.
L
¨
onnberg, J., Ben-Ari, M., and Malmi, L. (2011). Java re-
play for dependence-based debugging. In Loureno, J.
and Farchi, E., editors, PADTAD, pages 15–25. ACM.
Mehner, K. (2001). Javis: A uml-based visualization and
debugging environment for concurrent java programs.
In Diehl, S., editor, Software Visualization, volume
2269 of Lecture Notes in Computer Science, pages
163–175. Springer.
Oechsle, R. and Schmitt, T. (2001). Javavis: Automatic pro-
gram visualization with object and sequence diagrams
using the java debug interface (jdi). In Diehl, S., ed-
itor, Software Visualization, volume 2269 of Lecture
Notes in Computer Science, pages 176–190. Springer.
MODELSWARD2015-3rdInternationalConferenceonModel-DrivenEngineeringandSoftwareDevelopment
230