Visualizing Object Oriented Software: Towards A Point of Reference For Developing Tools For Industry
Visualizing Object Oriented Software: Towards A Point of Reference For Developing Tools For Industry
Abstract ment process [8, 22]. This is inclusive of those that develop
software visualization tools. This nature of designing vi-
Developing a software visualization tool that gets high sualization tools under-utilizes the perceptual and cognitive
acceptability in the industry or research community would theories leading to tools that are not properly evaluated by
imply success for that particular tool. In the past, many the users for whom they are intended [16, 22]. As such
tools have been developed within the academic arena with many of the designed tools are not used in practice. To be
many more currently being developed. The rate of com- able to design a software visualization tool that is effective
mercial success for the developed tools however does not however, a proper needs assessment of the target users may
match their development rate. In this paper the views of need to be carried out [11].
expert programmers are sought on what should be incor- Sim [18] noticed this challenge and advocated for bench-
porated in a software visualization tool. These views are marking in an effort to better utilize the resources available
sought after exposing the programmers to three tools and in the software engineering field.
allowing them to use the tools for a period of time. The re- The work presented in this paper builds onto Sims work
sults from the observations show that many of the desires of and addresses a different perspective of the benchmark.
the expert programmers are not catered for in the currently Emphasis here is put on the potential need for a point of
existing tools. The potential need for a point of reference reference for developing tools for Industry.
for developing tools for Industry is also discussed. The rest of the sections in this paper are organized as
follows; Section 2 looks at previous work that is related to
what is presented in this paper while in section 3 the exper-
1. Introduction iment that was carried out is presented. In section four, the
results from the experiments are shown and finally section
five concludes and provides areas for future research.
Developers of software systems put a lot of effort in un-
derstanding the software they are working on especially if
they were not part of the team that designed it [2, 8].Many 2. Previous Work
times however, the developers can only rely on the source
code as the true representation of the program being worked In the past, comparison of software visualization tools,
on [13, 20]. developing tools based on user needs as well as benchmark-
Due to the complexity of source code, visualization has ing have all been looked at by different researchers.
been used to increase program understanding and many Notable in the tool comparison area is Pacione [13] who
tools have in effect been developed to respond to this de- compared five dynamic visualization tools and evaluated
mand [2, 16]. Plenty of techniques have been introduced them with one user in relation to comprehension questions.
with the many tools developed [2, 10] however, it is still a Pacione noted that identifying the views that were appropri-
challenge to choose the best one among them. In the ab- ate for particular comprehension tasks was still a challenge.
sence of a guide, new researchers and developers of tools He also stated that the usefulness of the multifaceted three-
may choose to design based on what they think is useful. dimensional model in software comprehension was yet to
Many times though, software developers do not involve be evaluated.
the final users as much as they should during the develop- There is also a body of work that advocates for the devel-
opment of tools based on the needs of the users since in the 3.2 Source Code
past, users of software visualization tools stated that their
desired features were not always available in the tools. Three different sets of source code were used for the
Bassil [3] identified the need to carry out a survey that three different tools. Code Crawler was evaluated using the
is targeted towards a more specific audience so as to get Lucene search engine source code, Creole was tested using
specific results for that group.This can then be followed by Apache beehive code whereas Source Navigator was tried
rapid prototyping which can help in reducing the time and using Apache tomcat code.
effort in designing a tool which may not be effective [22, A different subject system was assigned for each tool in
14]. Likewise, Cordy [5] used his experience in industry to order to ensure that there was no familiarity with the code
observe that it is an oversight to assume that a method that for each session. Using the same code could bias the par-
works well in academia would automatically be successful ticipants as knowledge from the previous session could be
in industry. carried forward.
Lucene Source Code Lucene is an information retrieval
Application Programming Interface (API), originally im-
3. The experiment plemented in Java by Doug Cutting. It is free, open source
and released under the Apache Software License [1].
This section looks at the results of observing five expert Apache beehive Apache Beehive is a Java Application
programmers using three visualization tools. Their likes Framework designed to make the development of Java En-
and queries with the tools used are discussed in an effort terprise Edition (EE) based applications quicker and easier
to show what the experts require if they are to adopt tool [1]. It was contained in 17 general packages with an average
support. of 7 sub-packages within each main package.
Apache Tomcat Code Apache Tomcat is a web con-
tainer that implements the servlet and the Java Server Pages
3.1 Tools (JSP) specifications from Sun Microsystems. It provides an
environment for Java code to run in cooperation with a web
Three tools were used for the study. These were Code server [1].
Crawler ([15], [9]), Creole ([4], [12]), and Source navigator
[19]. These tools were carefully selected based on the cri- 3.3 Participants
teria of being freely available, the ability to visualize object
oriented software and the difference between the techniques Five expert programmers from Industry participated in
used during visualization. the study. They were all male with over ten years experience
Selection of tools that utilize different techniques was both in programming and computer usage. They were expe-
very important in order to avoid results based on only a rienced with the object oriented paradigm with knowledge
given method of visualizing. of at least two object oriented languages The three projects
chosen were all in java - a language that all the participants
Code Crawler: This is a tool that combines the traditional had working knowledge of.
visualization graph display with simple metrics about the
software [6]. Code crawler is incorporated within Moose 3.4 Procedure
which is an extensible language independent environment
for re-engineering object oriented systems [7]. The five participants were all exposed to the three tools
one tool at a time. Each participant was given a 5 minutes
Creole: Creole is an Eclipse plug-in that integrates Shrimp introduction to a tool. After which they had 5 extra minutes
[21] with the Eclipse platform’s Java Development Tools for familiarizing with the tools themselves or seek any extra
(JDT) [4]. Its main purpose is to provide both the high level information. During this stage, sample tasks were given for
program views as well as different dependencies within the each tool in order to prepare for the actual experiment.
source code .It is able to display code using radial, grid, After the familiarization stage, 2 tasks for each tool were
and tree map techniques. given to the participants, one task at a time. The tasks given
out were;
Source Navigator: This is a source code analysis tool [19] i Describe the static structure of the system, ie the main
which enables code editing, display of classes and their re- classes and their relationships.
lationships as well as call trees. It uses a very simplistic
display format and does not use a lot of color and anima- ii What would be the effect of deleting a particular class
tion. or method from the source code?
Those tasks were replicated for all the three tools how- 5.1. IDE Integration
ever the second task was modified according to the source
code being analyzed. There was concern of integrating the visualization tools
with an IDE. The reasoning was that when one visualizes,
i For Code crawler the second task was What would be it is usually for a purpose. If the desire is to add more code
the effect of deleting the Hook class? to existing software, then it would be too much effort to
switch between the visualization tool and the environment
ii For Creole, the second task was changed to that is being used to program. So even if a tool is able to
What would be the effect of deleting the generate amazing visualizations, the effort and time spent
org.apache.beehive.netui.tags switching between the two environments may have an ef-
fect on the knowledge preservation for programming thus
iii Source Navigator’s second task was naming the effect the desire for integration. Creole is noted to have achieved
of deleting the DbStoreTest class. this well especially if the programmers development envi-
ronment is eclipse.
These tasks were chosen because they could test the tools
5.2. Fast responses
capacity to provide answers concerning the large scale and
small scale static make up of the source code. The second
The speed of achieving the visualization was also highly
task was able to test further the relationships and external
complained about. Having programmed for a while, code
references of given parts of the code. This was necessary as
was not as difficult for the experts to comprehend as it is
a typical programmer would need both [13]. The answers
for the novices. This meant that the switch to tool support
to these tasks were recorded on a pre-arranged answer sheet
had to be supported by the speed of achieving the respective
that covered all the three tools.
task. More than two users stopped the generation of call
After working with a particular tool, there was a 2- graphs because they felt it was taking too long and a third
minute break before proceeding to the next tool. This du- user said that they would have achieved better results even
ration was kept short so as to ensure that the participants with a plain IDE as opposed to waiting for a solution that
attention was not diverted form the experiments. At the end takes too long. So even after the visualization has been gen-
of the tasks for all the three experiments, a questionnaire erated but the timing is not right, it is not considered useful.
was filled followed by an interview before terminating the Source Navigator was appreciated by all the participants for
session. its speed of response.